
    .Ph                     d    d Z ddlmZ ddlmZmZ ddlmZmZ  G d d          Z	d Z
d	 ZddZdS )zBundle format support.    )Sequence)OptionalUnion   )PackDatawrite_pack_datac                       e Zd ZU ee         ed<   eeef         ed<   ee	e
ef                  ed<   eee
f         ed<   eeee
         f         ed<   defdZd Zd	S )
Bundleversioncapabilitiesprerequisites
references	pack_datareturnc                 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    N/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/dulwich/bundle.py__repr__zBundle.__repr__&   se    .T

# . .dl . . -. .!/. . /. . .	
    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   N)r   
__module____qualname__r   int__annotations__dictstrlisttuplebytesr   r   r   r   r    r   r   r
   r
      s         c]sCx.   eSj)****S%Z    Xx.////
# 
 
 
 
    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Read a bundle file.   # v2 git bundle
      # v3 git bundle
r(   z"unsupported bundle format header: )r/   r?   AssertionError)r7   	firstlines     r   read_bundlerF   a   s^    

I(((Aq!!!(((Aq!!!
KiKK
L
LLr   r   Nc                 x   |j         }||j        rd}nd}|dk    r|                     d           n.|dk    r|                     d           nt          d|           |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(   rB   rA   rC   zunknown version r)   r,   r+   r*   s   -%s %s
s   %s %s
)num_recordsrecords)r   r   writerD   itemsencoder   r   r   lenr   iter_unpacked)r7   bundler   r9   r:   r;   r<   r=   s           r   write_bundlerP   k   s   nG 	GGG!||	$%%%%	A	$%%%%999:::!|| -3355 	 	JCGGD3::g.../// u||G444555GGENNNN!/ A A	vw~~g'>'>??@@@@(..00 , ,V	
fc]*++++GGENNN	()) ..00     r   )r   N)__doc__collections.abcr   typingr   r   packr   r   r
   r?   rF   rP   r&   r   r   <module>rU      s   ,   $ $ $ $ $ $ " " " " " " " " + + + + + + + +       @     FM M M     r   