o
    Uh                     @   s\   d Z ddlmZ ddlmZmZ ddlmZmZ G dd dZ	dd	 Z
d
d ZdddZdS )zBundle format support.    )Sequence)OptionalUnion   )PackDatawrite_pack_datac                   @   sx   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dZd	d
 ZdS )Bundleversioncapabilitiesprerequisites
references	pack_datareturnc                 C   s2   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   )self r   b/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/dulwich/bundle.py__repr__&   s   zBundle.__repr__c                 C   sf   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r1dS dS )NFT)
isinstancer   r	   r
   r   r   r   )r   otherr   r   r   __eq__.   s   zBundle.__eq__N)r   
__module____qualname__r   int__annotations__dictstrlisttuplebytesr   r   r   r   r   r   r   r   r   r      s   
 r   c                 C   sH  i }g }i }|   }|dkrI|drI|dd  d}z
|dd\}}W n ty3   |}d }Y nw |d}|||d< |   }|ds|drp|dd  ddd\}}	|||	df |   }|dsN|dkr|ddd\}}
|||
< |   }|dkstt| }t	 }||_
||_||_||_||_|S )	N      @r      
   =utf-8   -    )readline
startswithrstripsplit
ValueErrordecodeappendr   	from_filer   r   r
   r   r   r	   )fr	   r
   r   r   linekeyvalueobj_idcommentrefr   retr   r   r   _read_bundle>   sF   





r9   c                 C   s:   |   }|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)   r9   AssertionError)r1   	firstliner   r   r   read_bundlea   s   

r?   r   Nc                 C   s"  |j }|d u r|jrd}nd}|dkr| d n|dkr#| d ntd| |dkrU|j D ]!\}}| d|d  |d urO| d|d  | d	 q3|jD ]\}}| d
||df  qX|j D ]\}}| d||f  qn| d	 t| jt	|j
|j
 d d S )Nr"   r;   r:   r<   zunknown version r#   r&   r%   r$   s   -%s %s
s   %s %s
)num_recordsrecords)r	   r
   writer=   itemsencoder   r   r   lenr   iter_unpacked)r1   bundler	   r3   r4   r5   r6   r7   r   r   r   write_bundlek   s4   

rH   )r   N)__doc__collections.abcr   typingr   r   packr   r   r   r9   r?   rH   r   r   r   r   <module>   s    #
