Ë
    äØjj–  ã                   óô  — d Z ddlZddlmZmZmZmZmZmZm	Z	 ddl
m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 ddlmZ  ej:                  e«      Z G d„ de«      Z eee f   Z!e	eef   Z"e	eeef   Z#eeee"   f   Z$eeee#   f   Z%e	e$e%f   Z&e	e!e&f   Z'de	e!e(f   fd„Z)	 dde!deee*ge(f      de&fd„Z+dee   de'fd„Z,dee   de!dee   fd„Z-dee   de!dee   fd„Z.de!ddfd„Z/y)z'Validation of dependencies of packages
é    N)ÚCallableÚDictÚListÚ
NamedTupleÚOptionalÚSetÚTuple)ÚRequirement)ÚLegacySpecifier)ÚNormalizedNameÚcanonicalize_name)ÚLegacyVersion)Ú)make_distribution_for_install_requirement)Úget_default_environment)ÚDistributionVersion)ÚInstallRequirement)Ú
deprecatedc                   ó(   — e Zd ZU eed<   ee   ed<   y)ÚPackageDetailsÚversionÚdependenciesN)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r   r
   © ó    ú`/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_internal/operations/check.pyr   r      s   … Ø Ó Ø�{Ñ#Ô#r   r   Úreturnc                  ó>  — i } d}t        «       }|j                  dd¬«      D ]A  }|j                  }	 t        |j	                  «       «      }t        |j                  |«      | |<   ŒC | |fS # t        t        f$ r#}t        j                  d||«       d}Y d}~Œud}~ww xY w)z3Converts a list of distributions into a PackageSet.Fr   )Ú
local_onlyÚskipz%Error parsing requirements for %s: %sTN)r   Úiter_installed_distributionsÚcanonical_nameÚlistÚiter_dependenciesr   r   ÚOSErrorÚ
ValueErrorÚloggerÚwarning)Úpackage_setÚproblemsÚenvÚdistÚnamer   Úes          r   Ú!create_package_set_from_installedr1   %   s¥   € à€KØ€HÜ
!Ó
#€CØ×0Ñ0¸EÈÐ0ÓKò ˆØ×"Ñ"ˆð	Ü × 6Ñ 6Ó 8Ó9ˆLÜ .¨t¯|©|¸\Ó JˆK˜Òð	ð ˜Ð Ð øô	 œÐ$ò 	ä�N‰NÐBÀDÈ!ÔLØ�Hûð	ús   ²2A*Á*BÁ9BÂBr+   Úshould_ignorec                 óH  — t        | «       i }i }| j                  «       D ]ý  \  }}t        «       }t        «       }|r	 ||«      rŒ%|j                  D ]�  }t	        |j
                  «      }	|	| vrAd}
|j                  �|j                  j                  ddi«      }
|
r|j                  |	|f«       Œ]| |	   j                  }|j                  j                  |d¬«      rŒŠ|j                  |	||f«       ŒŸ |rt        |t        ¬«      ||<   |sŒêt        |t        ¬«      ||<   Œÿ ||fS )z—Check if a package set is consistent

    If should_ignore is passed, it should be a callable that takes a
    package name and returns a boolean.
    TÚextraÚ )Úprereleases)Úkey)Ú#warn_legacy_versions_and_specifiersÚitemsÚsetr   r   r/   ÚmarkerÚevaluateÚaddr   Ú	specifierÚcontainsÚsortedÚstr)r+   r2   ÚmissingÚconflictingÚpackage_nameÚpackage_detailÚmissing_depsÚconflicting_depsÚreqr/   Úmissedr   s               r   Úcheck_package_setrJ   6   s3  € ô (¨Ô4à€GØ€Kà(3×(9Ñ(9Ó(;ò JÑ$ˆ�nä%(£UˆÜ-0«UÐá™]¨<Ô8Øà!×.Ñ.ò 	;ˆCÜ$ S§X¡XÓ.ˆDð ˜;Ñ&Ø�Ø—:‘:Ð)Ø ŸZ™Z×0Ñ0°'¸2°Ó?�FÙØ ×$Ñ$ d¨C [Ô1Øð " $Ñ'×/Ñ/ˆGØ—=‘=×)Ñ)¨'¸tÐ)ÕDØ ×$Ñ$ d¨G°SÐ%9Õ:ð	;ñ" Ü$*¨<¼SÔ$AˆG�LÑ!ÚÜ(.Ð/?ÄSÔ(IˆK˜Ò%ð9Jð< �KÐÐr   Ú
to_installc                 ór   ‡— t        «       \  }}t        | |«      }t        ||«      Š|t        |ˆfd„¬«      fS )zeFor checking if the dependency graph would be consistent after     installing given requirements
    c                 ó   •— | ‰vS ©Nr   )r/   Ú	whitelists    €r   ú<lambda>z)check_install_conflicts.<locals>.<lambda>t   s   ø€ °DÀ	Ð4I€ r   )r2   )r1   Ú_simulate_installation_ofÚ_create_whitelistrJ   )rK   r+   Ú_Úwould_be_installedrO   s       @r   Úcheck_install_conflictsrU   e   sJ   ø€ ô
 7Ó8�N€K�ä2°:¸{ÓKÐô "Ð"4°kÓB€Ið 	ÜØÓ'Iô	
ðð r   c                 óø   — t        «       }| D ]j  }t        |«      }|j                  «       }|j                  }t	        |j
                  t        |j                  «       «      «      ||<   |j                  |«       Œl |S )z=Computes the version of packages after installing to_install.)	r:   r   Úget_metadata_distributionr$   r   r   r%   r&   r=   )rK   r+   Ú	installedÚinst_reqÚabstract_distr.   r/   s          r   rQ   rQ   y   sv   € ô
 “€Ið ò ˆÜAÀ(ÓKˆØ×6Ñ6Ó8ˆØ×"Ñ"ˆÜ*¨4¯<©<¼¸d×>TÑ>TÓ>VÓ9WÓXˆ�DÑà�‰�dÕðð Ðr   rT   c                 ó°   — t        | «      }|D ]E  }||v rŒ||   j                  D ],  }t        |j                  «      |v sŒ|j	                  |«        ŒE ŒG |S rN   )r:   r   r   r/   r=   )rT   r+   Úpackages_affectedrD   rH   s        r   rR   rR   Œ   sp   € ô Ð.Ó/Ðà#ò ˆØÐ,Ñ,Øà˜|Ñ,×9Ñ9ò 	ˆCÜ  §¡Ó*Ð.?Ò?Ø!×%Ñ% lÔ3Ùñ	ð	ð Ðr   c           
      óV  — | j                  «       D ]–  \  }}t        |j                  t        «      r#t	        |› d|j                  › d�d|› d�dd¬«       |j
                  D ]E  }t        d„ |j                  D «       «      sŒ t	        |› d|j                  › d	|› d
�d|› d�dd¬«       ŒG Œ˜ y )Nú z# has a non-standard version number.z!to upgrade to a newer version of z^ or contact the author to suggest that they release a version with a conforming version numberi/  z24.1)ÚreasonÚreplacementÚissueÚgone_inc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrN   )Ú
isinstancer   )Ú.0Úspecs     r   ú	<genexpr>z6warn_legacy_versions_and_specifiers.<locals>.<genexpr>®   s   è ø€ ÒO¸”:˜d¤O×4ÑOùs   ‚z) has a non-standard dependency specifier ú.ze or contact the author to suggest that they release a version with a conforming dependency specifiers)r9   rd   r   r   r   r   Úanyr>   )r+   Úproject_nameÚpackage_detailsÚdeps       r   r8   r8   �   sæ   € Ø)4×):Ñ):Ó)<ò Ñ%ˆ�oÜ�o×-Ñ-¬}Ô=Üà#�n A o×&=Ñ&=Ð%>ð ?9ð :ð 8¸°~ð FIð Jð Øõð #×/Ñ/ò 	ˆCÜÑOÀÇÁÔOÕOÜà'˜.¨¨/×*AÑ*AÐ)Bð CCØCFÀ%ÀqðJð <¸L¸>ð JTð Uð  Ø"öñ	ñr   rN   )0Ú__doc__ÚloggingÚtypingr   r   r   r   r   r   r	   Ú"pip._vendor.packaging.requirementsr
   Ú pip._vendor.packaging.specifiersr   Úpip._vendor.packaging.utilsr   r   Úpip._vendor.packaging.versionr   Úpip._internal.distributionsr   Úpip._internal.metadatar   Úpip._internal.metadata.baser   Úpip._internal.req.req_installr   Úpip._internal.utils.deprecationr   Ú	getLoggerr   r)   r   Ú
PackageSetÚMissingÚConflictingÚMissingDictÚConflictingDictÚCheckResultÚConflictDetailsÚboolr1   rA   rJ   rU   rQ   rR   r8   r   r   r   ú<module>r‚      sŽ  ðñó ß I× IÑ Iå :Ý <ß IÝ 7å QÝ :Ý ;Ý <Ý 6à	ˆ×	Ñ	˜8Ó	$€ô$�Zô $ð �. .Ð0Ñ1€
Ø
� Ð+Ñ
,€Ø�NÐ$7¸ÐDÑE€à�> 4¨¡=Ð0Ñ1€Ø�~ t¨KÑ'8Ð8Ñ9€Ø�K Ð0Ñ1€Ø˜
 KÐ/Ñ0€ð!¨5°¸TÐ1AÑ+Bó !ð$ OSñ, Øð, Ø,4°X¸s¸eÀT¸kÑ5JÑ,Kð, àó, ð^¨Ð-?Ñ(@ð À_ó ð(ØÐ'Ñ(ðØ7AðàˆÑóð&Ø˜NÑ+ðØ:DðàˆÑóð"°Zð ÀDô r   