Ë
    äØjjé  ã                   ó¢  — d Z ddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZ g d¢Z ed«      ZdZ ej                   d«      Z G d„ d	e«      Z	 dd
eeef   de
e   dede	e   de	e   f
d„Z	 dd
eeef   de
e   dede	e   def
d„Zdee	d      ddfd„Zdedeeef   fd„Z G d„ d«      Z G d„ d«      Z G d„ d«      Zeeeef   Z G d„ d«      Zy)z	 PEP 610 é    N)ÚAnyÚDictÚIterableÚOptionalÚTypeÚTypeVarÚUnion)Ú	DirectUrlÚDirectUrlValidationErrorÚDirInfoÚArchiveInfoÚVcsInfoÚTzdirect_url.jsonz.^\$\{[A-Za-z0-9-_]+\}(:\$\{[A-Za-z0-9-_]+\})?$c                   ó   — e Zd Zy)r   N)Ú__name__Ú
__module__Ú__qualname__© ó    úa/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_internal/models/direct_url.pyr   r      s   „ Ør   r   ÚdÚexpected_typeÚkeyÚdefaultÚreturnc                 ó\   — || vr|S | |   }t        ||«      st        |›d|› d|› d�«      ‚|S )z3Get value from dictionary and verify expected type.z has unexpected type for z (expected ú))Ú
isinstancer   ©r   r   r   r   Úvalues        r   Ú_getr!      sN   € ð �!�|ØˆØˆc‰F€EÜ�e˜]Ô+Ü&ØˆiÐ0°°°[ÀÀÈqÐQó
ð 	
ð €Lr   c                 óB   — t        | |||«      }|€t        |› d�«      ‚|S )Nz must have a value)r!   r   r   s        r   Ú_get_requiredr#   '   s1   € ô ��M 3¨Ó0€EØ€}Ü&¨#¨Ð.@Ð'AÓBÐBØ€Lr   ÚinfosÚInfoTypec                 ó”   — | D �cg c]  }|€Œ|‘Œ	 } }| st        d«      ‚t        | «      dkD  rt        d«      ‚| d   €J ‚| d   S c c}w )Nz/missing one of archive_info, dir_info, vcs_infoé   z1more than one of archive_info, dir_info, vcs_infor   )r   Úlen)r$   Úinfos     r   Ú_exactly_one_ofr*   0   sj   € Ø#Ö8�d tÑ'7ŠTÐ8€EÐ8ÙÜ&Ø=ó
ð 	
ô ˆ5ƒz�A‚~Ü&Ø?ó
ð 	
ð �‰8ÐÐÐØ�‰8€Oùò 9s
   …A�AÚkwargsc                  ó\   — | j                  «       D ��ci c]  \  }}|€Œ	||“Œ c}}S c c}}w )z Make dict excluding None values.)Úitems)r+   ÚkÚvs      r   Ú_filter_noner0   >   s(   € à#Ÿ\™\›^×=‘T�Q˜¨q©}ˆAˆq‰DÓ=Ð=ùÓ=s   ”
(Ÿ(c            	       óx   — e Zd ZdZ	 ddededee   ddfd„Zedeeee	f      ded    fd	„«       Z
deee	f   fd
„Zy)r   Úvcs_infoNÚvcsÚ	commit_idÚrequested_revisionr   c                 ó.   — || _         || _        || _        y ©N©r3   r5   r4   )Úselfr3   r4   r5   s       r   Ú__init__zVcsInfo.__init__F   s   € ð ˆŒØ"4ˆÔØ"ˆ�r   r   c           	      óx   — |€y  | t        |t        d«      t        |t        d«      t        |t        d«      ¬«      S )Nr3   r4   r5   )r3   r4   r5   )r#   Ústrr!   ©Úclsr   s     r   Ú
_from_dictzVcsInfo._from_dictP   s<   € àˆ9ØÙÜ˜a¤ eÓ,Ü# A¤s¨KÓ8Ü# A¤sÐ,@ÓAô
ð 	
r   c                 óZ   — t        | j                  | j                  | j                  ¬«      S )Nr8   )r0   r3   r5   r4   ©r9   s    r   Ú_to_dictzVcsInfo._to_dictZ   s&   € ÜØ—‘Ø#×6Ñ6Ø—n‘nô
ð 	
r   r7   )r   r   r   Únamer<   r   r:   Úclassmethodr   r   r?   rB   r   r   r   r   r   C   sƒ   „ Ø€Dð -1ñ	#àð#ð ð#ð % S™Mð	#ð
 
ó#ð ð
˜8 D¨¨c¨¡NÑ3ð 
¸ÀÑ8Kò 
ó ð
ð
˜$˜s C˜x™.ô 
r   r   c                   óÖ   — e Zd ZdZ	 	 ddee   deeeef      ddfd„Zedee   fd„«       Z	e	j                  dee   ddfd	„«       Z	ed
eeeef      ded    fd„«       Zdeeef   fd„Zy)r   Úarchive_infoNÚhashÚhashesr   c                 ó    — || _         || _        y r7   )rH   rG   )r9   rG   rH   s      r   r:   zArchiveInfo.__init__e   s   € ð ˆŒØˆ�	r   c                 ó   — | j                   S r7   )Ú_hashrA   s    r   rG   zArchiveInfo.hashn   s   € à�z‰zÐr   r    c                 ó*  — |�o	 |j                  dd«      \  }}| j                  €||i| _        || _        y || j                  vr.| j                  j	                  «       | _        || j                  |<   || _        y # t        $ r t        d|›�«      ‚w xY w)Nú=r'   z"invalid archive_info.hash format: )ÚsplitÚ
ValueErrorr   rH   ÚcopyrK   )r9   r    Ú	hash_nameÚ
hash_values       r   rG   zArchiveInfo.hashr   s¢   € àÐðØ(-¯©°C¸Ó(;Ñ%�	˜:ð
 �{‰{Ð"Ø(¨*Ð5�”ð ˆ�
ð  $§+¡+Ñ-Ø"Ÿk™k×.Ñ.Ó0�”Ø)3�—‘˜IÑ&Øˆ�
øô ò Ü.Ø8¸¸	ÐBóð ðús   „A: Á:Br   c                 óX   — |€y  | t        |t        d«      t        |t        d«      ¬«      S )NrG   rH   ©rG   rH   )r!   r<   Údictr=   s     r   r?   zArchiveInfo._from_dict„   s)   € àˆ9ØÙœ˜Q¤ VÓ,´T¸!¼TÀ8Ó5LÔMÐMr   c                 óD   — t        | j                  | j                  ¬«      S )NrT   )r0   rG   rH   rA   s    r   rB   zArchiveInfo._to_dictŠ   s   € Ü §¡°4·;±;Ô?Ð?r   )NN)r   r   r   rC   r   r<   r   r:   ÚpropertyrG   ÚsetterrD   r   r?   rB   r   r   r   r   r   b   sØ   „ Ø€Dð #Ø+/ñà�s‰mðð ˜˜c 3˜h™Ñ(ðð 
ó	ð ð�h˜s‘mò ó ðð 
‡[�[ð˜( 3™-ð ¨Dò ó ðð" ðN˜8 D¨¨c¨¡NÑ3ð N¸ÀÑ8Oò Nó ðNð
@˜$˜s C˜x™.ô @r   r   c                   ój   — e Zd ZdZ	 d	deddfd„Zedeee	e
f      ded    fd„«       Zdee	e
f   fd„Zy)
r   Údir_infoÚeditabler   Nc                 ó   — || _         y r7   ©r[   )r9   r[   s     r   r:   zDirInfo.__init__‘   s   € ð !ˆ�r   r   c                 ó<   — |€y  | t        |t        dd¬«      ¬«      S )Nr[   F)r   r]   )r#   Úboolr=   s     r   r?   zDirInfo._from_dict—   s    € àˆ9ØÙœM¨!¬T°:ÀuÔMÔNÐNr   c                 ó6   — t        | j                  xs d ¬«      S )Nr]   )r0   r[   rA   s    r   rB   zDirInfo._to_dict�   s   € Ü T§]¡]Ò%:°dÔ;Ð;r   )F)r   r   r   rC   r_   r:   rD   r   r   r<   r   r?   rB   r   r   r   r   r   Ž   so   „ Ø€Dð ñ!àð!ð 
ó!ð ðO˜8 D¨¨c¨¡NÑ3ð O¸ÀÑ8Kò Oó ðOð
<˜$˜s C˜x™.ô <r   r   c            	       óÈ   — e Zd Z	 ddededee   ddfd„Zdedefd„Zedefd	„«       Z	dd
„Z
edeeef   dd fd„«       Zdeeef   fd„Zededd fd„«       Zdefd„Zdefd„Zy)r
   NÚurlr)   Úsubdirectoryr   c                 ó.   — || _         || _        || _        y r7   )rb   r)   rc   )r9   rb   r)   rc   s       r   r:   zDirectUrl.__init__¥   s   € ð ˆŒØˆŒ	Ø(ˆÕr   Únetlocc                 óÞ   — d|vr|S |j                  dd«      \  }}t        | j                  t        «      r | j                  j                  dk(  r|dk(  r|S t
        j                  |«      r|S |S )Nú@r'   Úgit)rN   r   r)   r   r3   Ú
ENV_VAR_REÚmatch)r9   re   Ú	user_passÚnetloc_no_user_passs       r   Ú_remove_auth_from_netlocz"DirectUrl._remove_auth_from_netloc¯   si   € Ø�fÑØˆMØ)/¯©°c¸1Ó)=Ñ&ˆ	Ð&ä�t—y‘y¤'Ô*Ø—	‘	—‘ Ò&Ø˜UÒ"àˆMÜ×Ñ˜IÔ&ØˆMØ"Ð"r   c                 ó&  — t         j                  j                  | j                  «      }| j	                  |j
                  «      }t         j                  j                  |j                  ||j                  |j                  |j                  f«      }|S )z¯url with user:password part removed unless it is formed with
        environment variables as specified in PEP 610, or it is ``git``
        in the case of a git URL.
        )ÚurllibÚparseÚurlsplitrb   rm   re   Ú
urlunsplitÚschemeÚpathÚqueryÚfragment)r9   Úpurlre   Úsurls       r   Úredacted_urlzDirectUrl.redacted_url½   si   € ô �|‰|×$Ñ$ T§X¡XÓ.ˆØ×.Ñ.¨t¯{©{Ó;ˆÜ�|‰|×&Ñ&Ø�[‰[˜& $§)¡)¨T¯Z©Z¸¿¹ÐGó
ˆð ˆr   c                 óB   — | j                  | j                  «       «       y r7   )Ú	from_dictÚto_dictrA   s    r   ÚvalidatezDirectUrl.validateÊ   s   € Ø�‰�t—|‘|“~Õ&r   r   c                 ó>  — t        t        |t        d«      t        |t        d«      t	        t
        j                  t        |t        d«      «      t        j                  t        |t        d«      «      t        j                  t        |t        d«      «      g«      ¬«      S )Nrb   rc   rF   rZ   r2   )rb   rc   r)   )
r
   r#   r<   r!   r*   r   r?   rU   r   r   r=   s     r   r{   zDirectUrl.from_dictÍ   sy   € äÜ˜a¤ eÓ,Ü˜a¤ nÓ5Ü ä×*Ñ*¬4°´4¸Ó+HÓIÜ×&Ñ&¤t¨A¬t°ZÓ'@ÓAÜ×&Ñ&¤t¨A¬t°ZÓ'@ÓAðóô

ð 
	
r   c                 óª   — t        | j                  | j                  ¬«      }| j                  j	                  «       || j                  j
                  <   |S )N)rb   rc   )r0   ry   rc   r)   rB   rC   )r9   Úress     r   r|   zDirectUrl.to_dictÛ   sD   € ÜØ×!Ñ!Ø×*Ñ*ô
ˆð #Ÿi™i×0Ñ0Ó2ˆˆD�I‰I�N‰NÑØˆ
r   Úsc                 óJ   — | j                  t        j                  |«      «      S r7   )r{   ÚjsonÚloads)r>   r�   s     r   Ú	from_jsonzDirectUrl.from_jsonã   s   € à�}‰}œTŸZ™Z¨›]Ó+Ð+r   c                 óL   — t        j                  | j                  «       d¬«      S )NT)Ú	sort_keys)rƒ   Údumpsr|   rA   s    r   Úto_jsonzDirectUrl.to_jsonç   s   € Ü�z‰z˜$Ÿ,™,›.°DÔ9Ð9r   c                 óf   — t        | j                  t        «      xr | j                  j                  S r7   )r   r)   r   r[   rA   s    r   Úis_local_editablezDirectUrl.is_local_editableê   s"   € Ü˜$Ÿ)™)¤WÓ-ÒD°$·)±)×2DÑ2DÐDr   r7   )r   N)r   r   r   r<   r%   r   r:   rm   rW   ry   r}   rD   r   r   r{   r|   r…   r‰   r_   r‹   r   r   r   r
   r
   ¤   sã   „ ð
 '+ñ	)àð)ð ð)ð ˜s‘mð	)ð
 
ó)ð#¨sð #°só #ð ð
˜cò 
ó ð
ó'ð ð
˜$˜s C˜x™.ð 
¨[ò 
ó ð
ð˜˜c 3˜h™ó ð ð,˜#ð , +ò ,ó ð,ð:˜ó :ðE 4ô Er   r
   r7   )Ú__doc__rƒ   ÚreÚurllib.parsero   Útypingr   r   r   r   r   r   r	   Ú__all__r   ÚDIRECT_URL_METADATA_NAMEÚcompileri   Ú	Exceptionr   r<   r!   r#   r*   r0   r   r   r   r%   r
   r   r   r   ú<module>r”      sU  ðÙ Û Û 	Û ß F× FÑ Fò€ñ ˆCƒL€à,Ð ØˆR�Z‰ZÐIÓJ€
ô	˜yô 	ð
 QUñØˆC�ˆH�~ðØ&*¨1¡gðØ47ðØBJÈ1Á+ðàˆa�[óð QUñØˆC�ˆH�~ðØ&*¨1¡gðØ47ðØBJÈ1Á+ðàóð˜8 H¨ZÑ$8Ñ9ð ¸jó ð>˜3ð > 4¨¨S¨¡>ó >÷

ñ 
÷>)@ñ )@÷X<ñ <ð& �˜g wÐ.Ñ/€÷GEò GEr   