ó
    T=Œj  ã                  óâ  • S r SSKJr  SSKrSSKJrJrJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJr  SS	KJr  SS
KJrJr  SSKJrJr  SSKJr  SSKJr  SSKJr  SSKJr  SSK J!r!  \RD                  " \#5      r$ " S S\5      r%\&\\%4   r'\(\\4   r)\(\\\4   r*\&\\+\)   4   r,\&\\+\*   4   r-\(\,\-4   r.\(\'\.4   r/SS jr0 S     SS jjr1SS jr2      SS jr3      SS jr4      SS jr5g) z&Validation of dependencies of packagesé    )ÚannotationsN)ÚCallableÚ	GeneratorÚIterable)Úsuppress)ÚParser)Úreduce)Ú
NamedTuple)ÚRequirement)ÚTagÚ	parse_tag)ÚNormalizedNameÚcanonicalize_name)ÚVersion)Ú)make_distribution_for_install_requirement)Úget_default_environment)ÚBaseDistribution)ÚInstallRequirementc                  ó*   • \ rS rSr% S\S'   S\S'   Srg)ÚPackageDetailsé   r   Úversionzlist[Requirement]Údependencies© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__r   ó    Úb/Users/stevendouglas/BidBrain/.venv/lib/python3.13/site-packages/pip/_internal/operations/check.pyr   r      s   ‡ ØÓØ#Ö#r!   r   c                 ó:  • 0 n Sn[        5       nUR                  SSS9 HA  nUR                  n [        UR	                  5       5      n[        UR                  U5      X'   MC     X4$ ! [        [        4 a#  n[        R                  SXF5        Sn SnAMv  SnAff = f)z3Converts a list of distributions into a PackageSet.Fr   )Ú
local_onlyÚskipz$Error parsing dependencies of %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_installedr4   +   s›   € à€KØ€HÜ
!Ó
#€CØ×0Ñ0¸EÈÐ0ÓKˆØ×"Ñ"ˆð	Ü × 6Ñ 6Ó 8Ó9ˆLÜ .¨t¯|©|¸\Ó JˆKÓñ	 Lð Ð Ð øô	 œÐ$ó 	ä�N‰NÐAÀ4ÔKØŽHûð	ús   ¯1A'Á'BÁ7BÂBc                óh  • 0 n0 nU R                  5        GH  u  pE[        5       n[        5       nU(       a  U" U5      (       a  M0  UR                   H¦  n[        UR                  5      n	X�;  aG  Sn
UR
                  b  UR
                  R                  SS05      n
U
(       a  UR                  X˜45        Md  X	   R                  nUR                  R                  USS9(       a  M“  UR                  X›U45        M¨     U(       a  [        U[        S9X$'   U(       d  GM  [        U[        S9X4'   GM     X#4$ )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)ÚitemsÚsetr   r   r2   ÚmarkerÚevaluateÚaddr   Ú	specifierÚcontainsÚsortedÚstr)r.   Úshould_ignoreÚmissingÚconflictingÚpackage_nameÚpackage_detailÚmissing_depsÚconflicting_depsÚreqr2   Úmissedr   s               r"   Úcheck_package_setrL   <   s  € ð €GØ€Kà(3×(9Ñ(9×(;Ñ$ˆä%(£UˆÜ-0«UÐæ™]¨<×8Ñ8Ùà!×.Ô.ˆCÜ$ S§X¡XÓ.ˆDð Ó&Ø�Ø—:‘:Ñ)Ø ŸZ™Z×0Ñ0°'¸2°Ó?�FÞØ ×$Ñ$ d [Ô1Ùð "Ñ'×/Ñ/ˆGØ—=‘=×)Ñ)¨'¸tÐ)×DÐDØ ×$Ñ$ d°SÐ%9Ö:ñ /ö" Ü$*¨<¼SÑ$AˆGÑ!ßÑÜ(.Ð/?ÄSÑ(IˆKÔ%ñ9 )<ð< ÐÐr!   c                óh   ^• [        5       u  p[        X5      n[        X15      mU[        UU4S jS94$ )zeFor checking if the dependency graph would be consistent after     installing given requirements
    c                ó   >• U T;  $ ©Nr   )r2   Ú	whitelists    €r"   Ú<lambda>Ú)check_install_conflicts.<locals>.<lambda>x   s
   ø€ °DÀ	Ò4Ir!   )rC   )r4   Ú_simulate_installation_ofÚ_create_whitelistrL   )Ú
to_installr.   Ú_Úwould_be_installedrP   s       @r"   Úcheck_install_conflictsrX   i   sD   ø€ ô
 7Ó8�N€Kä2°:ÓKÐô "Ð"4ÓB€Ið 	ÜØÔ'Iñ	
ðð r!   c              #  óx  #   • U  Hž  n[        [        5         UR                  S5      n[        [        R
                  [        [        [        5       R                  U5      R                  S/ 5      5      [	        5       5      nUR                  U5      (       a  Uv •  S S S 5        M      g ! , (       d  f       M²  = f7f)NÚWHEELr   )r   ÚFileNotFoundErrorÚ	read_textr	   Ú	frozensetÚunionÚmapr   r   ÚparsestrÚget_allÚ
isdisjoint)ÚpackagesÚsupported_tagsÚpÚ
wheel_fileÚ
wheel_tagss        r"   Úcheck_unsupportedrh   }   sˆ   é € ó ˆÜÔ'Õ(ØŸ™ WÓ-ˆJÜ)/Ü—‘Ü”Iœv›x×0Ñ0°Ó<×DÑDÀUÈBÓOÓPÜ“ó*ˆJð
 ×$Ñ$ ^×4Ñ4Ø’÷ )Ñ(ò ß(Ö(üs   ‚B:—BB(ÂB:Â(
B7	Â2B:c                óú   • [        5       nU  Hj  n[        U5      nUR                  5       nUR                  n[	        UR
                  [        UR                  5       5      5      X'   UR                  U5        Ml     U$ )z=Computes the version of packages after installing to_install.)	r;   r   Úget_metadata_distributionr'   r   r   r(   r)   r>   )rU   r.   Ú	installedÚinst_reqÚabstract_distr1   r2   s          r"   rS   rS   �   so   € ô
 “€Ió ˆÜAÀ(ÓKˆØ×6Ñ6Ó8ˆØ×"Ñ"ˆÜ*¨4¯<©<¼¸d×>TÑ>TÓ>VÓ9WÓXˆÑà�‰�dÖñ ð Ðr!   c                óÀ   • [        U 5      nU HL  nX2;   a  M
  X   R                   H0  n[        UR                  5      U ;   d  M  UR	                  U5          MJ     MN     U$ rO   )r;   r   r   r2   r>   )rW   r.   Úpackages_affectedrF   rJ   s        r"   rT   rT       sa   € ô Ð.Ó/Ðã#ˆØÓ,ÙàÑ,×9Ô9ˆCÜ  §¡Ó*Ð.@Õ@Ø!×%Ñ% lÔ3Úó :ñ	 $ð Ðr!   )Úreturnztuple[PackageSet, bool]rO   )r.   Ú
PackageSetrC   zCallable[[str], bool] | Nonerp   ÚCheckResult)rU   úlist[InstallRequirement]rp   ÚConflictDetails)rc   zIterable[BaseDistribution]rd   zIterable[Tag]rp   z'Generator[BaseDistribution, None, None])rU   rs   r.   rq   rp   úset[NormalizedName])rW   ru   r.   rq   rp   ru   )6Ú__doc__Ú
__future__r   ÚloggingÚcollections.abcr   r   r   Ú
contextlibr   Úemail.parserr   Ú	functoolsr	   Útypingr
   Ú"pip._vendor.packaging.requirementsr   Úpip._vendor.packaging.tagsr   r   Úpip._vendor.packaging.utilsr   r   Úpip._vendor.packaging.versionr   Úpip._internal.distributionsr   Úpip._internal.metadatar   Úpip._internal.metadata.baser   Úpip._internal.req.req_installr   Ú	getLoggerr   r,   r   Údictrq   ÚtupleÚMissingÚConflictingr(   ÚMissingDictÚConflictingDictrr   rt   r4   rL   rX   rh   rS   rT   r   r!   r"   Ú<module>r�      sV  ðÙ ,å "ã ß 9Ñ 9Ý Ý Ý õõ ;ß 5ß IÝ 1å QÝ :Ý 8Ý <à	×	Ò	˜8Ó	$€ô$�Zô $ð �. .Ð0Ñ1€
Ø
� Ð+Ñ
,€Ø�N G¨[Ð8Ñ9€à�> 4¨¡=Ð0Ñ1€Ø�~ t¨KÑ'8Ð8Ñ9€Ø�K Ð0Ñ1€Ø˜
 KÐ/Ñ0€ô!ð$ LPð* Øð* Ø,Hð* àõ* ôZð(Ø(ðà!ðð -ôð Ø(ðØ7Aðàôð&Ø+ðØ:Dðàõr!   