
    4Քh                       S r SSKJr  SSK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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)	GeneratorIterable)suppress)Parser)reduce)Callable
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       V/var/www/auris/envauris/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0E0K""	 6 6 89L .t||\ JK	 L   	 $ 	NNA4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                  X45        Md  X	   R                  nUR                  R                  USS9(       a  M  UR                  XU45        M     U(       a  [        U[        S9X$'   U(       d  GM  [        U[        S9X4'   GM     X#4$ )zCheck 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-0U]<88!..C$SXX.D &::) ZZ00'2?F $$d[1 "'//G==))'t)DD $$dS%9: /" $*<S$AG!(./?S(IK%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>y   s
    D	4Ir!   )rC   )r4   _simulate_installation_of_create_whitelistrL   )
to_installr.   _would_be_installedrP   s       @r"   check_install_conflictsrX   j   sD    
 78NK2:K ""4BI 	'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)/Ivx00<DDUB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>V9W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9C *.??!%%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   
contextlibr   email.parserr   	functoolsr   typingr	   r
   "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      sS   , "  /   
 ; 5 I 1 Q : 8 <			8	$$Z $ ..01

+
,NG[89>4=01~tK'889K01
K/0!$ LP* * ,H* * Z((! - (7A&+:Dr!   