+
    iO                       ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHtHtH	t	H
t
 ^ RIHt ^ RIHtHt ^ RIHt ^ RIHtHtHtHtHtHt ^ R	IHt ^ R
IHtHt ^ RIHt ^ RI H!t!H"t" ^ RI#H$t$ ^ RI%H&t& ^ RI'H(t( ^RI)H*t*H+t+H,t, ]'       d   ^RI-H.t. ]P^                  ! ]04      t1]	R',          t2]
! ]R4      t3R R lt4R R lt5R R lt6R R lt7 ! R R]*4      t8 ! R  R]84      t9 ! R! R]84      t: ! R" R]*4      t; ! R# R$]*4      t< ! R% R&]*4      t=R# )(    )annotationsN)Iterable)TYPE_CHECKINGAnyUnioncast)InvalidRequirement)NormalizedNamecanonicalize_name)Version)FailedToPrepareCandidate	HashErrorInstallationSubprocessErrorInvalidInstalledPackageMetadataInconsistentMetadataInvalid)BaseDistribution)Linklinks_equivalent)Wheel)install_req_from_editableinstall_req_from_line)InstallRequirement)direct_url_from_link)normalize_version_info)	CandidateRequirementformat_name)FactoryAlreadyInstalledCandidateEditableCandidateLinkCandidatez<Python from Requires-Python>c                    V ^8  d   QhRRRR/# )   	candidater   returnzBaseCandidate | None )formats   "t/Users/ahmad/.openclaw/workspace/venv/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/candidates.py__annotate__r*   0   s     	 	 	/C 	    c                N    \         \        \        3p\        W4      '       d   V # R# )z%The runtime version of BaseCandidate.N)r    r!   r"   
isinstance)r%   base_candidate_classess   & r)   as_base_candidater/   0   s+     	"
 )44r+   c               $    V ^8  d   QhRRRRRR/# r$   linkr   templater   r&   r'   )r(   s   "r)   r*   r*   <   s$      
,r+   c           
        VP                   '       d   Q R 4       hVP                  '       d   \        VP                  4      pMV P                  p\	        VVP
                  VP                  VP                  VP                  VP                  VP                  R7      pVP                  Vn        Wn        VP                  Vn        V# )ztemplate is editableuser_supplied
comes_fromisolated
constrainthash_optionsconfig_settings)editablereqstrurlr   r6   r7   r8   r9   r:   r;   original_linkr2   extras)r2   r3   lineireqs   &&  r)   make_install_req_from_linkrD   <   s        8"88 |||8<< xx ,,&&""&&** 00D "//DI//DKKr+   c               $    V ^8  d   QhRRRRRR/# r1   r'   )r(   s   "r)   r*   r*   S   s$      
,r+   c                   VP                   '       g   Q R 4       hVP                  '       d   VP                   RV P                   2pMV P                  p\        VVP                  VP
                  VP                  VP                  VP                  VP                  VP                  R7      pVP                  Vn        V# )ztemplate not editable @ )r6   r7   r8   r9   permit_editable_wheelsr:   r;   )r<   namer?   r   r6   r7   r8   r9   rH   r:   r;   rA   )r2   r3   
req_stringrC   s   &&  r)   make_install_req_from_editablerK   S   s     555}}} c$((4
XX
$,,&&""&&'>>** 00	D //DKKr+   c               $    V ^8  d   QhRRRRRR/# )r$   distr   r3   r   r&   r'   )r(   s   "r)   r*   r*   i   s$      
&8r+   c           
        VP                   '       d   \        VP                   4      pMSVP                  '       d'   V P                   R VP                  P                   2pMV P                   RV P
                   2p\        VVP                  VP                  VP                  VP                  VP                  VP                  R7      pWn        V# )rG   z==r5   )r=   r>   r2   canonical_namer?   versionr   r6   r7   r8   r9   r:   r;   satisfied_by)rM   r3   rB   rC   s   &&  r)   _make_install_req_from_distrR   i   s     |||8<< 	%%&c(--*;*;)<=%%&b7 ,,&&""&&** 00D Kr+   c                  
   ] tR t^t$ RtR]R&   RtR%R R lltR R	 ltR
 R lt	R R lt
R R lt]R R l4       t]R R l4       t]R R l4       t]R R l4       tR R ltR R ltR R ltR R ltR  R! ltR" R# ltR$tR# )&"_InstallRequirementBackedCandidatea  A candidate backed by an ``InstallRequirement``.

This represents a package request with the target not being already
in the environment, and needs to be fetched and installed. The backing
``InstallRequirement`` is responsible for most of the leg work; this
class exposes appropriate information to the resolver.

:param link: The link passed to the ``InstallRequirement``. The backing
    ``InstallRequirement`` will use this link to fetch the distribution.
:param source_link: The link this candidate "originates" from. This is
    different from ``link`` when the link is found in the wheel cache.
    ``link`` would point to the wheel cache, while this points to the
    found remote link (e.g. from pypi.org).
r   rM   FNc               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# )r$   r2   r   source_linkrC   r   factoryr   rI   NormalizedName | NonerP   Version | Noner&   Noner'   )r(   s   "r)   r*   /_InstallRequirementBackedCandidate.__annotate__   sP     & && & !	&
 & $&  & 
&r+   c                	    Wn         W n        W@n        W0n        WPn        W`n        V P                  4       V n        R V n        R # N)	_link_source_link_factory_ireq_name_version_preparerM   _hash)selfr2   rV   rC   rW   rI   rP   s   &&&&&&&r)   __init__+_InstallRequirementBackedCandidate.__init__   s7     
'

MMO	!%
r+   c                   V ^8  d   QhRR/# r$   r&   r>   r'   )r(   s   "r)   r*   r[      s     - - -r+   c                	8    V P                    R V P                   2# ) rI   rP   rf   s   &r)   __str__*_InstallRequirementBackedCandidate.__str__   s    ))Adll^,,r+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   r[      s     A A# Ar+   c                	b    V P                   P                   R \        V P                  4      : R2# ())	__class____name__r>   r^   rn   s   &r)   __repr__+_InstallRequirementBackedCandidate.__repr__   s)    ..))*!C

O+>a@@r+   c                   V ^8  d   QhRR/# r$   r&   intr'   )r(   s   "r)   r*   r[      s      # r+   c                	    V P                   e   V P                   # \        V P                  V P                  34      V n         V P                   # r]   )re   hashrv   r^   rn   s   &r)   __hash__+_InstallRequirementBackedCandidate.__hash__   s9    ::!::4>>4::67
zzr+   c                    V ^8  d   QhRRRR/# r$   otherr   r&   boolr'   )r(   s   "r)   r*   r[            C D r+   c                	|    \        WP                  4      '       d!   \        V P                  VP                  4      # R # F)r-   rv   r   r^   rf   r   s   &&r)   __eq__)_InstallRequirementBackedCandidate.__eq__   s)    e^^,,#DJJ<<r+   c                   V ^8  d   QhRR/# r$   r&   zLink | Noner'   )r(   s   "r)   r*   r[      s     ! ![ !r+   c                	    V P                   # r]   )r_   rn   s   &r)   rV   ._InstallRequirementBackedCandidate.source_link          r+   c                   V ^8  d   QhRR/# r$   r&   r
   r'   )r(   s   "r)   r*   r[      s      n r+   c                l    V P                   f   V P                  P                  V n         V P                   # z:The normalised name of the project the candidate refers to)rb   rM   rO   rn   s   &r)   project_name/_InstallRequirementBackedCandidate.project_name   s)     ::11DJzzr+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   r[           ! !c !r+   c                	    V P                   # r]   r   rn   s   &r)   rI   '_InstallRequirementBackedCandidate.name   r   r+   c                   V ^8  d   QhRR/# r$   r&   r   r'   )r(   s   "r)   r*   r[             r+   c                	l    V P                   f   V P                  P                  V n         V P                   # r]   rc   rM   rP   rn   s   &r)   rP   *_InstallRequirementBackedCandidate.version   '    ==  II--DM}}r+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   r[      s     
 
# 
r+   c                	    V P                    R V P                   RV P                  P                  '       d   V P                  P                  MV P                   R2# )rl   z (from ru   )rI   rP   r^   is_file	file_pathrn   s   &r)   format_for_error3_InstallRequirementBackedCandidate.format_for_error   sM    yyk4<<. )-1ZZ-?-?-?TZZ))TZZPPQS	
r+   c                   V ^8  d   QhRR/# r$   r&   r   r'   )r(   s   "r)   r*   r[      s     : :'7 :r+   c                	    \        R 4      h)zOverride in subclass)NotImplementedErrorrn   s   &r)   _prepare_distribution8_InstallRequirementBackedCandidate._prepare_distribution   s    !"899r+   c                    V ^8  d   QhRRRR/# )r$   rM   r   r&   rZ   r'   )r(   s   "r)   r*   r[      s     6 60@ 6T 6r+   c                F   V P                   eH   V P                   VP                  8w  d-   \        V P                  RV P                   VP                  4      hV P                  eZ   V P                  VP
                  8w  d?   \        V P                  R\        V P                  4      \        VP
                  4      4      h \        VP                  \        VP                  4       4      4      4       R#   \         d%   p\        T P                  \        T4      4      hRp?ii ; i)z:Check for consistency of project name and version of dist.NrI   rP   )rb   rO   r   ra   rc   rP   r>   listiter_dependenciesiter_provided_extrasr	   r   )rf   rM   es   && r)   _check_metadata_consistency>_InstallRequirementBackedCandidate._check_metadata_consistency   s    ::!djjD4G4G&G&



##	  ==$$,,)F&

DMM"DLL!	 	6''T-F-F-H(IJK! 	6!$**c!f55	6s   >1C1 1D <DD c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r[      s      * r+   c                	    V P                  4       pT P                  T4       T#   \         d   pT P                  Tn        h R p?i\         d   p\        T P                  P                  \        4      '       d&   T P                  P                  P                  4       pMT P                  P                  pTf   Rp\        T P                  P                  ;'       g    \        T P                  4      TTP                  R7      hR p?ii ; i)Nzdirectly requested)package_namerequirement_chainfailed_step)r   r   ra   r=   r   r-   r7   r   	from_pathr   rI   r>   r^   command_descriptionr   )rf   rM   r   excrequest_chains   &    r)   rd   +_InstallRequirementBackedCandidate._prepare   s    	--/D, 	((.-  	 JJAE* 	$**//1CDD $

 5 5 ? ? A $

 5 5$ 4*!ZZ__??DJJ"/33 	s-   % D	AD	D	BD'DD	c                    V ^8  d   QhRRRR/# r$   with_requiresr   r&   zIterable[Requirement | None]r'   )r(   s   "r)   r*   r[     s     U Ut U8T Ur+   c              #  	<  "   V P                   P                  V P                  P                  4      x  V'       d   V P                  P	                  4       MRpV F:  pV P                   P                  \        V4      V P                  4       R j  xL
  K<  	  R #  L
5iNr'   )r`    make_requires_python_requirementrM   requires_pythonr   make_requirements_from_specr>   ra   )rf   r   requiresrs   &&  r)   r   4_InstallRequirementBackedCandidate.iter_dependencies  sk      mm<<TYY=V=VWW4A499..0rA}}@@QTTT Ts   BBBBc                   V ^8  d   QhRR/# r$   r&   InstallRequirement | Noner'   )r(   s   "r)   r*   r[     s      )B r+   c                	    V P                   # r]   )ra   rn   s   &r)   get_install_requirement:_InstallRequirementBackedCandidate.get_install_requirement  s    zzr+   )r`   re   ra   r^   rb   r_   rc   rM   NN)rw   
__module____qualname____firstlineno____doc____annotations__is_installedrg   ro   rx   r   r   propertyrV   r   rI   rP   r   r   r   rd   r   r   __static_attributes__r'   r+   r)   rT   rT      s     L&$-A
 ! !   ! !  

:606U r+   rT   c                  B   a  ] tR tRtRtRR V 3R llltR R ltRtV ;t# )	r"   i  Fc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r$   r2   r   r3   r   rW   r   rI   rX   rP   rY   r&   rZ   r'   )r(   s   "r)   r*   LinkCandidate.__annotate__  sF     /
 /
/
 %/
 	/

 $/
  /
 
/
r+   c           	     	  < TpVP                  Wd4      pVe-   \        P                  RVP                  4       VP                  p\	        W4      pVP                  V8X  g   Q hVP                  P
                  '       d   VP                  P                  '       gq   \        VP                  P                  4      p	V	P                  p
WJ8X  g   Q V: RV
: R24       hVe-   \        V	P                  4      pW[8X  g   Q V: RV: RV 24       hVe   VP                  P
                  '       g   Q hVP                  P                  '       g   Q hVP                  '       d!   VP                  VP                  J d   Whn        VP                  e   VP                  Vn        M\#        WgP                  R7      Vn        \$        SV `M  VVVVVVR7       R # )NzUsing cached wheel link: %sz != z
 for wheelz for wheel )link_is_in_wheel_cacher2   rV   rC   rW   rI   rP   )get_wheel_cache_entryloggerdebugr2   rD   is_wheelr   r   filenamerI   r   rP   
persistentr@   cached_wheel_source_linkorigindownload_infor   superrg   )rf   r2   r3   rW   rI   rP   rV   cache_entryrC   wheel
wheel_namewheel_versionrv   s   &&&&&&      r)   rg   LinkCandidate.__init__  s    33KF"LL68H8HI##D)$9yyD   99dii&7&7&7$)),,-EJ%N$j^:'NN%" ' 6,H[]$5[GH, "99%%%%%99$$$$$%%%(--8;Q;Q*Q0;-!!-%0%7%7" &:8N8N&" 	# 	 	
r+   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r   G  s     U U'7 Ur+   c                	h    V P                   P                  pVP                  V P                  R R7      # )T)parallel_builds)r`   preparerprepare_linked_requirementra   )rf   r   s   & r)   r   #LinkCandidate._prepare_distributionG  s+    ==))224::t2TTr+   r'   r   	rw   r   r   r   is_editablerg   r   r   __classcell__rv   s   @r)   r"   r"     s    K/
 /
bU Ur+   c                  B   a  ] tR tRtRtRR V 3R llltR R ltRtV ;t# )	r!   iL  Tc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r   r'   )r(   s   "r)   r*   EditableCandidate.__annotate__O  sF     
 

 %
 	

 $
  
 

r+   c           	     	D   < \         SV `  VV\        W4      VVVR 7       R# )r   N)r   rg   rK   )rf   r2   r3   rW   rI   rP   rv   s   &&&&&&r)   rg   EditableCandidate.__init__O  s.     	/? 	 	
r+   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r   `  s     O O'7 Or+   c                	`    V P                   P                  P                  V P                  4      # r]   )r`   r   prepare_editable_requirementra   rn   s   &r)   r   'EditableCandidate._prepare_distribution`  s!    }}%%BB4::NNr+   r'   r   r   r   s   @r)   r!   r!   L  s    K
 
"O Or+   c                      ] tR tRtRtRtR R ltR R ltR R	 ltR
 R lt	R R lt
]R R l4       t]R R l4       t]R R l4       t]R R l4       tR R ltR R ltR R ltRtR# )r    id  TNc               (    V ^8  d   QhRRRRRRRR/# )	r$   rM   r   r3   r   rW   r   r&   rZ   r'   )r(   s   "r)   r*   &AlreadyInstalledCandidate.__annotate__h  s8     P PP %P 	P
 
Pr+   c                	    Wn         \        W4      V n        W0n        R V n        RpVP
                  P                  V P                  V4       R # )Nzalready satisfied)rM   rR   ra   r`   rc   r   prepare_installed_requirement)rf   rM   r3   rW   skip_reasons   &&&& r)   rg   "AlreadyInstalledCandidate.__init__h  sB     	0@
 *66tzz;Or+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   r  z  s       r+   c                	,    \        V P                  4      # r]   )r>   rM   rn   s   &r)   ro   !AlreadyInstalledCandidate.__str__z  s    499~r+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   r  }  s     ; ;# ;r+   c                	P    V P                   P                   R V P                  : R2# rs   )rv   rw   rM   rn   s   &r)   rx   "AlreadyInstalledCandidate.__repr__}  s$    ..))*!DII=::r+   c                    V ^8  d   QhRRRR/# )r$   r   objectr&   r   r'   )r(   s   "r)   r*   r    s     I IF It Ir+   c                	    \        V\        4      '       g   \        # V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r]   )r-   r    NotImplementedrI   rP   r   s   &&r)   r    AlreadyInstalledCandidate.__eq__  s>    %!:;;!!yyEJJ&HH4<<5==+HHr+   c                   V ^8  d   QhRR/# r{   r'   )r(   s   "r)   r*   r    s     / /# /r+   c                	D    \        V P                  V P                  34      # r]   )r~   rI   rP   rn   s   &r)   r   "AlreadyInstalledCandidate.__hash__  s    TYY-..r+   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r    s     ( (n (r+   c                	.    V P                   P                  # r]   )rM   rO   rn   s   &r)   r   &AlreadyInstalledCandidate.project_name  s    yy'''r+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   r    r   r+   c                	    V P                   # r]   r   rn   s   &r)   rI   AlreadyInstalledCandidate.name  r   r+   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r    r   r+   c                	l    V P                   f   V P                  P                  V n         V P                   # r]   r   rn   s   &r)   rP   !AlreadyInstalledCandidate.version  r   r+   c                   V ^8  d   QhRR/# r$   r&   r   r'   )r(   s   "r)   r*   r    s     " "T "r+   c                	.    V P                   P                  # r]   )rM   r<   rn   s   &r)   r   %AlreadyInstalledCandidate.is_editable  s    yy!!!r+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   r    s     9 9# 9r+   c                	:    V P                    R V P                   R2# )rl   z (Installed)rm   rn   s   &r)   r   *AlreadyInstalledCandidate.format_for_error  s    ))Adll^<88r+   c                    V ^8  d   QhRRRR/# r   r'   )r(   s   "r)   r*   r    s     U Ut U8T Ur+   c              #  	.  "   V'       g   R #  V P                   P                  4        F:  pV P                  P                  \	        V4      V P
                  4       R j  xL
  K<  	  R #  L
  \         d   p\        T P                   TR7      R hR p?ii ; i5i)N)rM   invalid_exc)rM   r   r`   r   r>   ra   r	   r   )rf   r   r   r   s   &&  r)   r   +AlreadyInstalledCandidate.iter_dependencies  sr     	UYY002==DDSVTZZXXX 3X! 	U)tyycJPTT	Us;   BAA* A(A* &B(A* *B5BBBc                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r          )B r+   c                	    R # r]   r'   rn   s   &r)   r   1AlreadyInstalledCandidate.get_install_requirement      r+   )r`   ra   rc   rM   )rw   r   r   r   r   rV   rg   ro   rx   r   r   r   r   rI   rP   r   r   r   r   r   r'   r+   r)   r    r    d  s    LKP$;I
/ ( ( ! !  
 " "9U r+   c                     ] tR tRtRtRR/R R lltR R ltR	 R
 ltR R ltR R lt	]
R R l4       t]
R R l4       t]
R R l4       tR R lt]
R R l4       t]
R R l4       t]
R R l4       tR R ltR R  ltR!tR# )"ExtrasCandidatei  a  A candidate that has 'extras', indicating additional dependencies.

Requirements can be for a project with dependencies, something like
foo[extra].  The extras don't affect the project/version being installed
directly, but indicate that we need additional dependencies. We model that
by having an artificial ExtrasCandidate that wraps the "base" candidate.

The ExtrasCandidate differs from the base in the following ways:

1. It has a unique name, of the form foo[extra]. This causes the resolver
   to treat it as a separate node in the dependency graph.
2. When we're getting the candidate's dependencies,
   a) We specify that we want the extra dependencies as well.
   b) We add a dependency on the base candidate.
      See below for why this is needed.
3. We return None for the underlying InstallRequirement, as the base
   candidate will provide it, and we don't want to end up with duplicates.

The dependency on the base candidate is needed so that the resolver can't
decide that it should recommend foo[extra1] version 1.0 and foo[extra2]
version 2.0. Having those candidates depend on foo=1.0 and foo=2.0
respectively forces the resolver to recognise that this is a conflict.
r7   Nc               (    V ^8  d   QhRRRRRRRR/# )	r$   baseBaseCandidaterA   zfrozenset[str]r7   r   r&   rZ   r'   )r(   s   "r)   r*   ExtrasCandidate.__annotate__  s8     U UU U
 .U 
Ur+   c                   Wn         \        R V 4       4      V n        Ve	   W0n        R# V P                   P                  V n        R# )a  
:param comes_from: the InstallRequirement that led to this candidate if it
    differs from the base's InstallRequirement. This will often be the
    case in the sense that this candidate's requirement has the extras
    while the base's does not. Unlike the InstallRequirement backed
    candidates, this requirement is used solely for reporting purposes,
    it does not do any leg work.
c              3  8   "   T F  p\        V4      x  K  	  R # 5ir]   )r   ).0r   s   & r)   	<genexpr>+ExtrasCandidate.__init__.<locals>.<genexpr>  s     Ef 1! 4 4f   N)r4  	frozensetrA   ra   _comes_from)rf   r4  rA   r7   s   &&&$r)   rg   ExtrasCandidate.__init__  s5     	EfEE)3)?:TYY__r+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   r6    s     E E Er+   c                	    \        V P                  4      P                  R ^4      w  rRP                  VRP	                  V P
                  4      V4      # )rl   z	{}[{}] {},)r>   r4  splitr(   joinrA   )rf   rI   rests   &  r)   ro   ExtrasCandidate.__str__  s@    ^))#q1
!!$(=tDDr+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   r6    s     X X# Xr+   c                	l    V P                   P                   R V P                  : RV P                  : R2# )z(base=z	, extras=ru   )rv   rw   r4  rA   rn   s   &r)   rx   ExtrasCandidate.__repr__  s/    ..))*&Yt{{oUVWWr+   c                   V ^8  d   QhRR/# r{   r'   )r(   s   "r)   r*   r6    s     . .# .r+   c                	D    \        V P                  V P                  34      # r]   )r~   r4  rA   rn   s   &r)   r   ExtrasCandidate.__hash__  s    TYY,--r+   c                    V ^8  d   QhRRRR/# r   r'   )r(   s   "r)   r*   r6    r   r+   c                	    \        WP                  4      '       d;   V P                  VP                  8H  ;'       d    V P                  VP                  8H  # R # r   )r-   rv   r4  rA   r   s   &&r)   r   ExtrasCandidate.__eq__  s<    e^^,,99

*JJt{{ell/JJr+   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r6    s     & &n &r+   c                	.    V P                   P                  # r]   )r4  r   rn   s   &r)   r   ExtrasCandidate.project_name      yy%%%r+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   r6    s     @ @c @r+   c                V    \        V P                  P                  V P                  4      # r   )r   r4  r   rA   rn   s   &r)   rI   ExtrasCandidate.name  s     499114;;??r+   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r6    s     ! ! !r+   c                	.    V P                   P                  # r]   )r4  rP   rn   s   &r)   rP   ExtrasCandidate.version  s    yy   r+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   r6    s     
 
# 
r+   c                	    R P                  V P                  P                  4       RP                  \	        V P
                  4      4      4      # )z{} [{}]z, )r(   r4  r   rD  sortedrA   rn   s   &r)   r    ExtrasCandidate.format_for_error  s9    II&&($))F4;;4G*H
 	
r+   c                   V ^8  d   QhRR/# r"  r'   )r(   s   "r)   r*   r6    s     & &d &r+   c                	.    V P                   P                  # r]   )r4  r   rn   s   &r)   r   ExtrasCandidate.is_installed  rS  r+   c                   V ^8  d   QhRR/# r"  r'   )r(   s   "r)   r*   r6    s     % %T %r+   c                	.    V P                   P                  # r]   )r4  r   rn   s   &r)   r   ExtrasCandidate.is_editable      yy$$$r+   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r6    s     % %[ %r+   c                	.    V P                   P                  # r]   )r4  rV   rn   s   &r)   rV   ExtrasCandidate.source_link   rd  r+   c                    V ^8  d   QhRRRR/# r   r'   )r(   s   "r)   r*   r6    s      t 8T r+   c              #  	  "   V P                   P                  pVP                  V P                   4      x  V'       g   R # V P                  P	                  V P                   P
                  P                  4       4      pV P                  P                  V P                   P
                  P                  4       4      p\        V4       F9  p\        P                  RV P                   P                  V P                  V4       K;  	  V P                   P
                  P                  V4       F1  pVP                  \        V4      V P                   V4       R j  xL
  K3  	  R #  L
5i)Nz%%s %s does not provide the extra '%s')r4  r`   make_requirement_from_candidaterA   intersectionrM   r   
differencer\  r   warningrI   rP   r   r   r>   r>  )rf   r   rW   valid_extrasinvalid_extrasextrar   s   &&     r)   r   !ExtrasCandidate.iter_dependencies  s     ))$$ 55dii@@ {{//		0S0S0UV//		0S0S0UVN+ENN7			 , 11,?A::A     @s   EE EE c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   r6     s      )B r+   c                	    R # r]   r'   rn   s   &r)   r   'ExtrasCandidate.get_install_requirement   s     r+   )r>  r4  rA   )rw   r   r   r   r   rg   ro   rx   r   r   r   r   rI   rP   r   r   r   rV   r   r   r   r'   r+   r)   r2  r2    s    0U
 15U&EX.
 & & @ @ ! !

 & & % % % %8 r+   r2  c                      ] tR tRtRtRtR R ltR R ltR R	 lt]	R
 R l4       t
]	R R l4       t]	R R l4       tR R ltR R ltR R ltRtR# )RequiresPythonCandidatei'  FNc                    V ^8  d   QhRRRR/# )r$   py_version_infoztuple[int, ...] | Noner&   rZ   r'   )r(   s   "r)   r*   $RequiresPythonCandidate.__annotate__+  s     H H(> H4 Hr+   c                	    Ve   \        V4      pM\        P                  R,          p\        RP	                  R V 4       4      4      V n        R # )N:N   N.c              3  8   "   T F  p\        V4      x  K  	  R # 5ir]   )r>   )r9  cs   & r)   r:  3RequiresPythonCandidate.__init__.<locals>.<genexpr>0  s     (FAQr<  )r   sysversion_infor   rD  rc   )rf   rx  r  s   && r)   rg    RequiresPythonCandidate.__init__+  s=    &1/BL++B/L(F(F FGr+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   ry  6  s     ) ) )r+   c                	     R V P                    2# zPython rc   rn   s   &r)   ro   RequiresPythonCandidate.__str__6  s    ((r+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   ry  9  s     ? ?# ?r+   c                	P    V P                   P                   R V P                  : R2# rs   )rv   rw   rc   rn   s   &r)   rx    RequiresPythonCandidate.__repr__9  s%    ..))*!DMM+<A>>r+   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   ry  =  s     * *n *r+   c                	    \         # r]   REQUIRES_PYTHON_IDENTIFIERrn   s   &r)   r   $RequiresPythonCandidate.project_name<      ))r+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   ry  A  s     * *c *r+   c                	    \         # r]   r  rn   s   &r)   rI   RequiresPythonCandidate.name@  r  r+   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   ry  E  s       r+   c                	    V P                   # r]   r  rn   s   &r)   rP   RequiresPythonCandidate.versionD  s    }}r+   c                   V ^8  d   QhRR/# rj   r'   )r(   s   "r)   r*   ry  H  s     ( (# (r+   c                	     R V P                    2# r  )rP   rn   s   &r)   r   (RequiresPythonCandidate.format_for_errorH  s    ''r+   c                    V ^8  d   QhRRRR/# r   r'   )r(   s   "r)   r*   ry  K  s      t 8T r+   c                	    R# r   r'   )rf   r   s   &&r)   r   )RequiresPythonCandidate.iter_dependenciesK  s    	r+   c                   V ^8  d   QhRR/# r   r'   )r(   s   "r)   r*   ry  N  r-  r+   c                	    R # r]   r'   rn   s   &r)   r   /RequiresPythonCandidate.get_install_requirementN  r0  r+   r  )rw   r   r   r   r   rV   rg   ro   rx   r   r   rI   rP   r   r   r   r   r'   r+   r)   rv  rv  '  sl    LKH)? * * * *  ( r+   rv  )r    r!   r"   )>
__future__r   loggingr  collections.abcr   typingr   r   r   r   "pip._vendor.packaging.requirementsr	   pip._vendor.packaging.utilsr
   r   pip._vendor.packaging.versionr   pip._internal.exceptionsr   r   r   r   r   r   pip._internal.metadatar   pip._internal.models.linkr   r   pip._internal.models.wheelr   pip._internal.req.constructorsr   r   pip._internal.req.req_installr   &pip._internal.utils.direct_url_helpersr   pip._internal.utils.miscr   r4  r   r   r   rW   r   	getLoggerrw   r   r5  r  r/   rD   rK   rR   rT   r"   r!   r    r2  rv  r'   r+   r)   <module>r     s    "  
 $ 2 2 A I 1  4 < , = G ; 5 5 			8	$ ".2QR 	.,,Q Qh6U6 6UrO: O0D	 DNyi yx(i (r+   