+
    BiN                       ^ 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 ^ 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\                  ! ]/4      t0]	R',          t1]
! ]R4      t2R R lt3R R lt4R R lt5R R lt6 ! R R])4      t7 ! R  R]74      t8 ! R! R]74      t9 ! 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)	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   "S/usr/lib/python3.14/site-packages/pip/_internal/resolution/resolvelib/candidates.py__annotate__r)   /   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.   /   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                  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
use_pep517isolated
constraintglobal_optionshash_optionsconfig_settings)editablereqstrurlr   r5   r6   r7   r8   r9   r:   r;   r<   original_linkr1   extras)r1   r2   lineireqs   &&  r(   make_install_req_from_linkrE   ;   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/# r0   r&   )r'   s   "r(   r)   r)   T   s$      
,r*   c                L   VP                   '       g   Q R 4       h\        V P                  VP                  VP                  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)	r5   r6   r7   r8   r9   permit_editable_wheelsr:   r;   r<   )r=   r   r@   r5   r6   r7   r8   r9   rH   r:   r;   r<   rB   )r1   r2   rD   s   && r(   make_install_req_from_editablerI   T   s     555$,,&&&&""&&'>>..** 00D //DKKr*   c               $    V ^8  d   QhRRRRRR/# )r#   distr   r2   r   r%   r&   )r'   s   "r(   r)   r)   h   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                  VP                  VP                  R7	      pWn        V# )z @ z==r4   )r>   r?   r1   canonical_namer@   versionr   r5   r6   r7   r8   r9   r:   r;   r<   satisfied_by)rK   r2   rC   rD   s   &&  r(   _make_install_req_from_distrP   h   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   rK   FNc               4    V ^8  d   QhRRRRRRRRRR	R
RRR/# )r#   r1   r   source_linkrD   r   factoryr   nameNormalizedName | NonerN   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_preparerK   _hash)selfr1   rT   rD   rU   rV   rN   s   &&&&&&&r(   __init__+_InstallRequirementBackedCandidate.__init__   s7     
'

MMO	!%
r*   c                   V ^8  d   QhRR/# r#   r%   r?   r&   )r'   s   "r(   r)   rZ      s     - - -r*   c                	8    V P                    R V P                   2# ) rV   rN   re   s   &r(   __str__*_InstallRequirementBackedCandidate.__str__   s    ))Adll^,,r*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   rZ      s     A A# Ar*   c                	b    V P                   P                   R \        V P                  4      : R2# ())	__class____name__r?   r]   rm   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)   rZ      s      # r*   c                	    V P                   e   V P                   # \        V P                  V P                  34      V n         V P                   # r\   )rd   hashru   r]   rm   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)   rZ            C D r*   c                	|    \        WP                  4      '       d!   \        V P                  VP                  4      # R # F)r,   ru   r   r]   re   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)   rZ      s     ! ![ !r*   c                	    V P                   # r\   )r^   rm   s   &r(   rT   ._InstallRequirementBackedCandidate.source_link          r*   c                   V ^8  d   QhRR/# r#   r%   r
   r&   )r'   s   "r(   r)   rZ      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)ra   rK   rM   rm   s   &r(   project_name/_InstallRequirementBackedCandidate.project_name   s)     ::11DJzzr*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   rZ           ! !c !r*   c                	    V P                   # r\   r   rm   s   &r(   rV   '_InstallRequirementBackedCandidate.name   r   r*   c                   V ^8  d   QhRR/# r#   r%   r   r&   )r'   s   "r(   r)   rZ             r*   c                	l    V P                   f   V P                  P                  V n         V P                   # r\   rb   rK   rN   rm   s   &r(   rN   *_InstallRequirementBackedCandidate.version   '    ==  II--DM}}r*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   rZ      s     
 
# 
r*   c                	    V P                    R V P                   RV P                  P                  '       d   V P                  P                  MV P                   R2# )rk   z (from rt   )rV   rN   r]   is_file	file_pathrm   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)   rZ      s     : :'7 :r*   c                	    \        R 4      h)zOverride in subclass)NotImplementedErrorrm   s   &r(   _prepare_distribution8_InstallRequirementBackedCandidate._prepare_distribution   s    !"899r*   c                    V ^8  d   QhRRRR/# )r#   rK   r   r%   rY   r&   )r'   s   "r(   r)   rZ      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.NrV   rN   )ra   rM   r   r`   rb   rN   r?   listiter_dependenciesiter_provided_extrasr	   r   )re   rK   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)   rZ      s      * r*   c                	     V P                  4       pT P                  T4       T#   \         d   pT P                  Tn        h R p?i\         d   pRTn        h R p?ii ; i)NzSee above for output.)r   r   r`   r>   r   contextr   )re   rK   r   excs   &   r(   rc   +_InstallRequirementBackedCandidate._prepare   s_    	--/D 	((.  	 JJAE* 	1CK	s&   % AAAAAAc                    V ^8  d   QhRRRR/# r#   with_requiresr   r%   zIterable[Requirement | None]r&   )r'   s   "r(   r)   rZ      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_requirementrK   requires_pythonr   make_requirements_from_specr?   r`   )re   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)   rZ     s      )B r*   c                	    V P                   # r\   )r`   rm   s   &r(   get_install_requirement:_InstallRequirementBackedCandidate.get_install_requirement  s    zzr*   )r_   rd   r`   r]   ra   r^   rb   rK   NN)rv   
__module____qualname____firstlineno____doc____annotations__is_installedrf   rn   rw   r~   r   propertyrT   r   rV   rN   r   r   r   rc   r   r   __static_attributes__r&   r*   r(   rR   rR      s     L&$-A
 ! !   ! !  

:60"U r*   rR   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#   r1   r   r2   r   rU   r   rV   rW   rN   rX   r%   rY   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                  '       gz   \        VP                  P                  4      p	\        V	P                  4      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 `Q  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r1   rT   rD   rU   rV   rN   )get_wheel_cache_entryloggerdebugr1   rE   is_wheelr   r   filenamer   rV   r   rN   
persistentrA   cached_wheel_source_linkorigindownload_infor   superrf   )re   r1   r2   rU   rV   rN   rT   cache_entryrD   wheel
wheel_namewheel_versionru   s   &&&&&&      r(   rf   LinkCandidate.__init__  s    33KF"LL68H8HI##D)$9yyD   99dii&7&7&7$)),,-E*5::6J%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   >  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_requirementr`   )re   r   s   & r(   r   #LinkCandidate._prepare_distribution>  s+    ==))224::t2TTr*   r&   r   	rv   r   r   r   is_editablerf   r   r   __classcell__ru   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    iC  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__F  sF     
 

 %
 	

 $
  
 

r*   c           	     	D   < \         SV `  VV\        W4      VVVR 7       R# )r   N)r   rf   rI   )re   r1   r2   rU   rV   rN   ru   s   &&&&&&r(   rf   EditableCandidate.__init__F  s.     	/? 	 	
r*   c                   V ^8  d   QhRR/# r   r&   )r'   s   "r(   r)   r   W  s     O O'7 Or*   c                	`    V P                   P                  P                  V P                  4      # r\   )r_   r   prepare_editable_requirementr`   rm   s   &r(   r   'EditableCandidate._prepare_distributionW  s!    }}%%BB4::NNr*   r&   r   r   r   s   @r(   r    r    C  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   i[  TNc               (    V ^8  d   QhRRRRRRRR/# )	r#   rK   r   r2   r   rU   r   r%   rY   r&   )r'   s   "r(   r)   &AlreadyInstalledCandidate.__annotate___  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)rK   rP   r`   r_   rb   r   prepare_installed_requirement)re   rK   r2   rU   skip_reasons   &&&& r(   rf   "AlreadyInstalledCandidate.__init___  sB     	0@
 *66tzz;Or*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   r   q  s       r*   c                	,    \        V P                  4      # r\   )r?   rK   rm   s   &r(   rn   !AlreadyInstalledCandidate.__str__q  s    499~r*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   r   t  s     ; ;# ;r*   c                	P    V P                   P                   R V P                  : R2# rr   )ru   rv   rK   rm   s   &r(   rw   "AlreadyInstalledCandidate.__repr__t  s$    ..))*!DII=::r*   c                    V ^8  d   QhRRRR/# )r#   r   objectr%   r   r&   )r'   s   "r(   r)   r   w  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   NotImplementedrV   rN   r   s   &&r(   r    AlreadyInstalledCandidate.__eq__w  s>    %!:;;!!yyEJJ&HH4<<5==+HHr*   c                   V ^8  d   QhRR/# rz   r&   )r'   s   "r(   r)   r   |  s     / /# /r*   c                	D    \        V P                  V P                  34      # r\   )r}   rV   rN   rm   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\   )rK   rM   rm   s   &r(   r   &AlreadyInstalledCandidate.project_name  s    yy'''r*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   r     r   r*   c                	    V P                   # r\   r   rm   s   &r(   rV   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   rm   s   &r(   rN   !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\   )rK   r=   rm   s   &r(   r   %AlreadyInstalledCandidate.is_editable  s    yy!!!r*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   r     s     9 9# 9r*   c                	:    V P                    R V P                   R2# )rk   z (Installed)rl   rm   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)rK   invalid_exc)rK   r   r_   r   r?   r`   r	   r   )re   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&   rm   s   &r(   r   1AlreadyInstalledCandidate.get_install_requirement      r*   )r_   r`   rb   rK   )rv   r   r   r   r   rT   rf   rn   rw   r   r~   r   r   rV   rN   r   r   r   r   r   r&   r*   r(   r   r   [  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.
r6   Nc               (    V ^8  d   QhRRRRRRRR/# )	r#   baseBaseCandidaterB   zfrozenset[str]r6   r   r%   rY   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)r.  	frozensetrB   r`   _comes_from)re   r.  rB   r6   s   &&&$r(   rf   ExtrasCandidate.__init__  s5     	EfEE)3)?:TYY__r*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   r0    s     E E Er*   c                	    \        V P                  4      P                  R ^4      w  rRP                  VRP	                  V P
                  4      V4      # )rk   z	{}[{}] {},)r?   r.  splitr'   joinrB   )re   rV   rests   &  r(   rn   ExtrasCandidate.__str__  s@    ^))#q1
!!$(=tDDr*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   r0    s     X X# Xr*   c                	l    V P                   P                   R V P                  : RV P                  : R2# )z(base=z	, extras=rt   )ru   rv   r.  rB   rm   s   &r(   rw   ExtrasCandidate.__repr__  s/    ..))*&Yt{{oUVWWr*   c                   V ^8  d   QhRR/# rz   r&   )r'   s   "r(   r)   r0    s     . .# .r*   c                	D    \        V P                  V P                  34      # r\   )r}   r.  rB   rm   s   &r(   r~   ExtrasCandidate.__hash__  s    TYY,--r*   c                    V ^8  d   QhRRRR/# r   r&   )r'   s   "r(   r)   r0    r   r*   c                	    \        WP                  4      '       d;   V P                  VP                  8H  ;'       d    V P                  VP                  8H  # R # r   )r,   ru   r.  rB   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)   r0    s     & &n &r*   c                	.    V P                   P                  # r\   )r.  r   rm   s   &r(   r   ExtrasCandidate.project_name      yy%%%r*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   r0    s     @ @c @r*   c                V    \        V P                  P                  V P                  4      # r   )r   r.  r   rB   rm   s   &r(   rV   ExtrasCandidate.name  s     499114;;??r*   c                   V ^8  d   QhRR/# r   r&   )r'   s   "r(   r)   r0    s     ! ! !r*   c                	.    V P                   P                  # r\   )r.  rN   rm   s   &r(   rN   ExtrasCandidate.version  s    yy   r*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   r0    s     
 
# 
r*   c                	    R P                  V P                  P                  4       RP                  \	        V P
                  4      4      4      # )z{} [{}]z, )r'   r.  r   r>  sortedrB   rm   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)   r0    s     & &d &r*   c                	.    V P                   P                  # r\   )r.  r   rm   s   &r(   r   ExtrasCandidate.is_installed  rM  r*   c                   V ^8  d   QhRR/# r  r&   )r'   s   "r(   r)   r0    s     % %T %r*   c                	.    V P                   P                  # r\   )r.  r   rm   s   &r(   r   ExtrasCandidate.is_editable      yy$$$r*   c                   V ^8  d   QhRR/# r   r&   )r'   s   "r(   r)   r0    s     % %[ %r*   c                	.    V P                   P                  # r\   )r.  rT   rm   s   &r(   rT   ExtrasCandidate.source_link  r^  r*   c                    V ^8  d   QhRRRR/# r   r&   )r'   s   "r(   r)   r0    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')r.  r_   make_requirement_from_candidaterB   intersectionrK   r   
differencerV  r   warningrV   rN   r   r   r?   r8  )re   r   rU   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)   r0    s      )B r*   c                	    R # r\   r&   rm   s   &r(   r   'ExtrasCandidate.get_install_requirement  s     r*   )r8  r.  rB   )rv   r   r   r   r   rf   rn   rw   r~   r   r   r   rV   rN   r   r   r   rT   r   r   r   r&   r*   r(   r,  r,    s    0U
 15U&EX.
 & & @ @ ! !

 & & % % % %8 r*   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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%   rY   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?   )r3  cs   & r(   r4  3RequiresPythonCandidate.__init__.<locals>.<genexpr>'  s     (FAQr6  )r   sysversion_infor   r>  rb   )re   rr  r{  s   && r(   rf    RequiresPythonCandidate.__init__"  s=    &1/BL++B/L(F(F FGr*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   rs  -  s     ) ) )r*   c                	     R V P                    2# zPython rb   rm   s   &r(   rn   RequiresPythonCandidate.__str__-  s    ((r*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   rs  0  s     ? ?# ?r*   c                	P    V P                   P                   R V P                  : R2# rr   )ru   rv   rb   rm   s   &r(   rw    RequiresPythonCandidate.__repr__0  s%    ..))*!DMM+<A>>r*   c                   V ^8  d   QhRR/# r   r&   )r'   s   "r(   r)   rs  4  s     * *n *r*   c                	    \         # r\   REQUIRES_PYTHON_IDENTIFIERrm   s   &r(   r   $RequiresPythonCandidate.project_name3      ))r*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   rs  8  s     * *c *r*   c                	    \         # r\   r  rm   s   &r(   rV   RequiresPythonCandidate.name7  r  r*   c                   V ^8  d   QhRR/# r   r&   )r'   s   "r(   r)   rs  <  s       r*   c                	    V P                   # r\   r  rm   s   &r(   rN   RequiresPythonCandidate.version;  s    }}r*   c                   V ^8  d   QhRR/# ri   r&   )r'   s   "r(   r)   rs  ?  s     ( (# (r*   c                	     R V P                    2# r  )rN   rm   s   &r(   r   (RequiresPythonCandidate.format_for_error?  s    ''r*   c                    V ^8  d   QhRRRR/# r   r&   )r'   s   "r(   r)   rs  B  s      t 8T r*   c                	    R# r   r&   )re   r   s   &&r(   r   )RequiresPythonCandidate.iter_dependenciesB  s    	r*   c                   V ^8  d   QhRR/# r   r&   )r'   s   "r(   r)   rs  E  r'  r*   c                	    R # r\   r&   rm   s   &r(   r   /RequiresPythonCandidate.get_install_requirementE  r*  r*   r  )rv   r   r   r   r   rT   rf   rn   rw   r   r   rV   rN   r   r   r   r   r&   r*   r(   rp  rp    sl    LKH)? * * * *  ( r*   rp  )r   r    r!   )=
__future__r   loggingrz  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   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   r.  r   r   r   rU   r   	getLoggerrv   r   r/  r  r.   rE   rI   rP   rR   r!   r    r   r,  rp  r&   r*   r(   <module>r     s    "  
 $ 2 2 A I 1  4 < , = G ; 5 5 			8	$ ".2QR 	2(0G GT6U6 6UrO: O0D	 DNyi yx(i (r*   