
    d5                     f    d Z ddlmZmZmZmZmZmZ ddlm	Z	m
Z
  G d d          Zd Zd Zd	 Zd
S )zBundle format support.
    )DictListOptionalSequenceTupleUnion   )PackDatawrite_pack_datac                       e Zd ZU dZee         ed<   i Zee	e	f         ed<   g Z
eeee	f                  ed<   i Zee	ef         ed<   g Zeeee         f         ed<   d Zd ZdS )	BundleNversioncapabilitiesprerequisites
references	pack_datac                 r    dt          |           j         d| j         d| j         d| j         d| j         dS )N<z	(version=z, capabilities=z, prerequisites=z, references=z)>)type__name__r   r   r   r   )selfs    R/home/feoh/.local/pipx/venvs/poetry/lib/python3.11/site-packages/dulwich/bundle.py__repr__zBundle.__repr__&   se    2DJJ' 2 2$, 2 2 $ 12 2!%!32 2 #o2 2 2 	3    c                     t          |t          |                     sdS | j        |j        k    rdS | j        |j        k    rdS | j        |j        k    rdS | j        |j        k    rdS | j        |j        k    rdS dS )NFT)
isinstancer   r   r   r   r   r   )r   others     r   __eq__zBundle.__eq__,   s    %d,, 	5<5=((5 2225!4445?e...5>U_,,5tr   )r   
__module____qualname__r   r   int__annotations__r   r   strr   r   r   bytesr   r   r   r
   r   r   r    r   r   r   r      s         !GXc]!!!#%L$sCx.%%%-/M4eSj)*///#%JS%Z %%%24IuXx./4443 3 3    r   r   c                    i }g }i }|                                  }|dk    r|                    d          r|dd                              d          }	 |                    dd          \  }}|                    d          }n# t
          $ r |}d }Y nw xY w|||                    d          <   |                                  }|                    d          |                    d          r|dd                              d                              dd          \  }}	|                    ||	                    d          f           |                                  }|                    d          |dk    rK|                    d                              dd          \  }}
|||
<   |                                  }|dk    Kt          j        |           }t                      }||_
        ||_        ||_        ||_        ||_        |S )	N      @r	      
   =utf-8   -    )readline
startswithrstripsplitdecode
ValueErrorappendr
   	from_filer   r   r   r   r   r   )fr   r   r   r   linekeyvalueobj_idcommentrefr   rets                r   _read_bundler>   <   s   LMJ::<<D!||ood## 
	 8??5))D.!ZZa00
U
 W--	    
 16LG,,-::<<D ood## 
	  //$

  HOOE2288qAAfgnnW&=&=>???zz|| //$

  %--E**00q99 
3zz|| %-- "1%%I
((CCN#C%CCMCKJs   B BBc                     |                                  }|dk    rt          | d          S |dk    rt          | d          S t          d|z            )zRead a bundle file.   # v2 git bundle
      # v3 git bundle
r'   z$unsupported bundle format header: %r)r.   r>   AssertionError)r6   	firstlines     r   read_bundlerE   _   s[    

I(((Aq!!!(((Aq!!!
?)K
L
LLr   c                 x   |j         }||j        rd}nd}|dk    r|                     d           n.|dk    r|                     d           nt          d|z            |dk    r|j                                        D ]r\  }}|                     d|                    d          z              |+|                     d|                    d          z              |                     d	           s|j        D ]2\  }}|                     d
||                    d          fz             3|j                                        D ]\  }}|                     d||fz              |                     d	           t          | j        t          |j
                  |j
                                                   d S )Nr'   rA   r@   rB   zunknown version %dr(   r+   r*   r)   s   -%s %s
s   %s %s
)num_recordsrecords)r   r   writerC   itemsencoder   r   r   lenr   iter_unpacked)r6   bundler   r8   r9   r:   r;   r<   s           r   write_bundlerO   i   s   nG 	GGG!||	$%%%%	A	$%%%%1G;<<<!|| -3355 	 	JCGGD3::g.../// u||G444555GGENNNN#1 A A	vw~~g'>'>??@@@@(..00 , ,V	
fc]*++++GGENNNAGV-=)>)>HXHfHfHhHhiiiiiir   N)__doc__typingr   r   r   r   r   r   packr
   r   r   r>   rE   rO   r%   r   r   <module>rS      s   *  @ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? + + + + + + + +       >     FM M Mj j j j jr   