Ë
    äØjj`  ã                   óœ   — d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ  e j                   e«      Z G d	„ d
«      Zy)é    N)ÚOrderedDict)ÚDictÚList)ÚLegacySpecifier)Úcanonicalize_name)ÚLegacyVersion)ÚInstallRequirement)Ú
deprecatedc                   ó¶   — e Zd Zddeddfd„Zdefd„Zdefd„Zdeddfd„Z	deddfd	„Z
d
edefd„Zd
edefd„Zedee   fd„«       Zedee   fd„«       Zdd„Zy)ÚRequirementSetÚcheck_supported_wheelsÚreturnNc                 ó>   — t        «       | _        || _        g | _        y)zCreate a RequirementSet.N)r   Úrequirementsr   Úunnamed_requirements)Úselfr   s     ú[/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_internal/req/req_set.pyÚ__init__zRequirementSet.__init__   s   € ô <G»=ˆÔØ&<ˆÔ#à>@ˆÕ!ó    c                 óŒ   — t        d„ | j                  j                  «       D «       d„ ¬«      }dj                  d„ |D «       «      S )Nc              3   ó:   K  — | ]  }|j                   rŒ|–— Œ y ­w©N)Ú
comes_from©Ú.0Úreqs     r   ú	<genexpr>z)RequirementSet.__str__.<locals>.<genexpr>   s   è ø€ ÒM�S¸c¿n»nŒSÑMùs   ‚”c                 ó4   — t        | j                  xs d«      S ©NÚ ©r   Úname©r   s    r   ú<lambda>z(RequirementSet.__str__.<locals>.<lambda>   ó   € Ô-¨c¯h©hªn¸"Ó=€ r   ©Úkeyú c              3   óF   K  — | ]  }t        |j                  «      –— Œ y ­wr   ©Ústrr   r   s     r   r   z)RequirementSet.__str__.<locals>.<genexpr>   s   è ø€ Ò=¨œ˜CŸG™GŸÑ=ùó   ‚!)Úsortedr   ÚvaluesÚjoin)r   r   s     r   Ú__str__zRequirementSet.__str__   s=   € ÜÙM˜D×-Ñ-×4Ñ4Ó6ÔMÙ=ô
ˆð �x‰xÑ=°Ô=Ó=Ð=r   c                 óà   — t        | j                  j                  «       d„ ¬«      }d}|j                  | j                  j
                  t        |«      dj                  d„ |D «       «      ¬«      S )Nc                 ó4   — t        | j                  xs d«      S r   r!   r#   s    r   r$   z)RequirementSet.__repr__.<locals>.<lambda>"   r%   r   r&   z4<{classname} object; {count} requirement(s): {reqs}>z, c              3   óF   K  — | ]  }t        |j                  «      –— Œ y ­wr   r*   r   s     r   r   z*RequirementSet.__repr__.<locals>.<genexpr>)   s   è ø€ Ò@¨Cœ3˜sŸw™wŸ<Ñ@ùr,   )Ú	classnameÚcountÚreqs)r-   r   r.   ÚformatÚ	__class__Ú__name__Úlenr/   )r   r   Úformat_strings      r   Ú__repr__zRequirementSet.__repr__   sh   € ÜØ×Ñ×$Ñ$Ó&Ù=ô
ˆð
 OˆØ×#Ñ#Ø—n‘n×-Ñ-Ü�lÓ#Ø—‘Ñ@°<Ô@Ó@ð $ó 
ð 	
r   Úinstall_reqc                 óV   — |j                   rJ ‚| j                  j                  |«       y r   )r"   r   Úappend©r   r=   s     r   Úadd_unnamed_requirementz&RequirementSet.add_unnamed_requirement,   s%   € Ø×#Ò#Ð#Ð#Ø×!Ñ!×(Ñ(¨Õ5r   c                 óh   — |j                   sJ ‚t        |j                   «      }|| j                  |<   y r   )r"   r   r   )r   r=   Úproject_names      r   Úadd_named_requirementz$RequirementSet.add_named_requirement0   s1   € Ø×ÒÐÐä(¨×)9Ñ)9Ó:ˆØ*5ˆ×Ñ˜,Ò'r   r"   c                 ól   — t        |«      }|| j                  v xr | j                  |   j                   S r   )r   r   Ú
constraint©r   r"   rC   s      r   Úhas_requirementzRequirementSet.has_requirement6   s=   € Ü(¨Ó.ˆð ˜D×-Ñ-Ð-ò ?Ø×%Ñ% lÑ3×>Ñ>Ð>ð	
r   c                 ón   — t        |«      }|| j                  v r| j                  |   S t        d|›�«      ‚)NzNo project with the name )r   r   ÚKeyErrorrG   s      r   Úget_requirementzRequirementSet.get_requirement>   s>   € Ü(¨Ó.ˆà˜4×,Ñ,Ñ,Ø×$Ñ$ \Ñ2Ð2äÐ2°4°(Ð;Ó<Ð<r   c                 ób   — | j                   t        | j                  j                  «       «      z   S r   )r   Úlistr   r.   )r   s    r   Úall_requirementszRequirementSet.all_requirementsF   s'   € à×(Ñ(¬4°×0AÑ0A×0HÑ0HÓ0JÓ+KÑKÐKr   c                 óp   — | j                   D �cg c]  }|j                  s|j                  s|‘Œ c}S c c}w )zâReturn the list of requirements that need to be installed.

        TODO remove this property together with the legacy resolver, since the new
             resolver only returns requirements that need to be installed.
        )rN   rF   Úsatisfied_byr@   s     r   Úrequirements_to_installz&RequirementSet.requirements_to_installJ   s;   € ð  $×4Ñ4ö
àØ×)Ò)°+×2JÒ2Jò ò
ð 	
ùò 
s   �!3c                 ó^  — | j                   D ]ž  }|j                  «       j                  }t        |t        «      rt        d|› d|› d�ddd¬«       |j                  «       j                  «       D ];  }t        d„ |j                  D «       «      sŒ t        d	|› d
|› d|› d|› d�	ddd¬«       Œ= Œ  y )Nz*pip has selected the non standard version z of zL. In the future this version will be ignored as it isn't standard compliant.zkset or update constraints to select another version or contact the package author to fix the version numberi/  z24.1)ÚreasonÚreplacementÚissueÚgone_inc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr   )Ú
isinstancer   )r   Úspecs     r   r   zERequirementSet.warn_legacy_versions_and_specifiers.<locals>.<genexpr>i   s   è ø€ ÒS¸T”z $¬×8ÑSùs   ‚zpip has selected r(   z- which has non standard dependency specifier z . In the future this version of z0 will be ignored as it isn't standard compliant.)	rQ   Úget_distÚversionrX   r   r
   Úiter_dependenciesÚanyÚ	specifier)r   r   r[   Údeps       r   Ú#warn_legacy_versions_and_specifiersz2RequirementSet.warn_legacy_versions_and_specifiersW   sÝ   € Ø×/Ñ/ò 	ˆCØ—l‘l“n×,Ñ,ˆGÜ˜'¤=Ô1ÜàDÀWÀIð NØ!˜Uð #BðCð
Rð  Ø"õð —|‘|“~×7Ñ7Ó9ò �ÜÑSÀSÇ]Á]ÔSÕSÜà/°¨u°A°g°Yð ?=Ø=@¸Eð B=Ø=@¸Eð BFðGðVð $Ø &öññ!	r   )T)r   N)r9   Ú
__module__Ú__qualname__Úboolr   r+   r0   r<   r	   rA   rD   rH   rK   Úpropertyr   rN   rQ   r`   © r   r   r   r      sÉ   „ ñA¨tð A¸tó Að>˜ó >ð
˜#ó 
ð6Ð3Eð 6È$ó 6ð6Ð1Cð 6Èó 6ð
 Cð 
¨Dó 
ð= Cð =Ð,>ó =ð ðL $Ð'9Ñ":ò Ló ðLð ð

¨Ð.@Ñ)Aò 

ó ð

ô r   r   )ÚloggingÚcollectionsr   Útypingr   r   Ú pip._vendor.packaging.specifiersr   Úpip._vendor.packaging.utilsr   Úpip._vendor.packaging.versionr   Úpip._internal.req.req_installr	   Úpip._internal.utils.deprecationr
   Ú	getLoggerr9   Úloggerr   re   r   r   ú<module>rp      s;   ðÛ Ý #ß å <Ý 9Ý 7å <Ý 6à	ˆ×	Ñ	˜8Ó	$€÷hò hr   