ó
    Þ joM  ã                   ó$  • S SK r S SKrS SKJrJrJrJrJrJrJ	r	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Jr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"  S SK#J$r$  S SK%J&r&  SSK'J(r(J)r)J*r*  \(       a  SSK+J,r,  \ RZ                  " \.5      r/\	S   r0\
" \S5      r1S\(S\\0   4S jr2S\S\"S\"4S jr3S\S\"S\"4S jr4S\S\"S\"4S jr5 " S S\(5      r6 " S S\65      r7 " S  S!\65      r8 " S" S#\(5      r9 " S$ S%\(5      r: " S& S'\(5      r;g)(é    N)ÚTYPE_CHECKINGÚAnyÚ	FrozenSetÚIterableÚOptionalÚTupleÚUnionÚcast)ÚInvalidRequirement)ÚNormalizedNameÚcanonicalize_name)ÚVersion)Ú	HashErrorÚInstallationSubprocessErrorÚ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>Ú	candidateÚreturnc                 óJ   • [         [        [        4n[        X5      (       a  U $ g)z%The runtime version of BaseCandidate.N)r!   r"   r#   Ú
isinstance)r$   Úbase_candidate_classess     Úh/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_internal/resolution/resolvelib/candidates.pyÚas_base_candidater*   +   s+   € ô 	"ÜÜðÐô
 �)×4Ñ4ØÐØó    ÚlinkÚtemplatec                 ó®  • UR                   (       a   S5       eUR                  (       a  [        UR                  5      nOU R                  n[	        UUR
                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  S9	nUR                  Ul        Xl        UR                  Ul        U$ )Nztemplate is editable©Úuser_suppliedÚ
comes_fromÚ
use_pep517ÚisolatedÚ
constraintÚglobal_optionsÚhash_optionsÚconfig_settings)ÚeditableÚreqÚstrÚurlr   r0   r1   r2   r3   r4   r5   r6   r7   Úoriginal_linkr,   Úextras)r,   r-   ÚlineÚireqs       r)   Úmake_install_req_from_linkr@   7   s±   € ð × × Ð8Ð"8Ó8Ð Ø‡|‡|Ü�8—<‘<Ó ‰à�x‰xˆÜ ØØ×,Ñ,Ø×&Ñ&Ø×&Ñ&Ø×"Ñ"Ø×&Ñ&Ø×.Ñ.Ø×*Ñ*Ø ×0Ñ0ñ
€Dð "×/Ñ/€DÔØ„IØ—/‘/€D„KØ€Kr+   c                 óD  • UR                   (       d   S5       e[        U R                  UR                  UR                  UR
                  UR                  UR                  UR                  UR                  UR                  UR                  S9
nUR                  Ul        U$ )Nztemplate not editable)	r0   r1   r2   r3   r4   Úpermit_editable_wheelsr5   r6   r7   )r8   r   r;   r0   r1   r2   r3   r4   rB   r5   r6   r7   r=   )r,   r-   r?   s      r)   Úmake_install_req_from_editablerC   P   s�   € ð ××Ð5Ð5Ó5ÐÜ$Ø�‰Ø×,Ñ,Ø×&Ñ&Ø×&Ñ&Ø×"Ñ"Ø×&Ñ&Ø'×>Ñ>Ø×.Ñ.Ø×*Ñ*Ø ×0Ñ0ñ€Dð —/‘/€D„KØ€Kr+   Údistc                 óÆ  • UR                   (       a  [        UR                   5      nORUR                  (       a&  U R                   SUR                  R                   3nOU R                   SU R
                   3n[        UUR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  S9	nXl        U$ )Nz @ z==r/   )r9   r:   r,   Úcanonical_namer;   Úversionr   r0   r1   r2   r3   r4   r5   r6   r7   Úsatisfied_by)rD   r-   r>   r?   s       r)   Ú_make_install_req_from_distrI   d   s¿   € ð ‡|‡|Ü�8—<‘<Ó ‰Ø	��Ø×%Ñ%Ð& c¨(¯-©-×*;Ñ*;Ð)<Ð=‰à×%Ñ%Ð& b¨¯©¨Ð7ˆÜ ØØ×,Ñ,Ø×&Ñ&Ø×&Ñ&Ø×"Ñ"Ø×&Ñ&Ø×.Ñ.Ø×*Ñ*Ø ×0Ñ0ñ
€Dð ÔØ€Kr+   c                   ór  • \ rS rSr% Sr\\S'   Sr  S S\S\S\	S	S
S\
\   S\
\   SS4S jjrS\4S jrS\4S jrS\4S jrS\S\4S jr\S\
\   4S j5       r\S\4S j5       r\S\4S j5       r\S\4S j5       rS\4S jrS\4S jrS\SS4S jrS\4S jrS\S\\
\       4S jr!S\
\	   4S jr"Sr#g)!Ú"_InstallRequirementBackedCandidateé|   aË  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).
rD   FNr,   Úsource_linkr?   Úfactoryr    ÚnamerG   r%   c                 ó„   • Xl         X l        X@l        X0l        XPl        X`l        U R                  5       U l        S U l        g ©N)	Ú_linkÚ_source_linkÚ_factoryÚ_ireqÚ_nameÚ_versionÚ_preparerD   Ú_hash)Úselfr,   rM   r?   rN   rO   rG   s          r)   Ú__init__Ú+_InstallRequirementBackedCandidate.__init__�   s7   € ð Œ
Ø'ÔØŒØŒ
ØŒ
ØŒØ—M‘M“OˆŒ	Ø$(ˆ�
r+   c                 ó8   • U R                    SU R                   3$ )NÚ ©rO   rG   ©rZ   s    r)   Ú__str__Ú*_InstallRequirementBackedCandidate.__str__¡   s   € Ø—)‘)�˜A˜dŸl™l˜^Ð,Ð,r+   c                 ób   • U R                   R                   S[        U R                  5      < S3$ ©NÚ(Ú))Ú	__class__Ú__name__r:   rR   r`   s    r)   Ú__repr__Ú+_InstallRequirementBackedCandidate.__repr__¤   s)   € Ø—.‘.×)Ñ)Ð*¨!¬C°·
±
«OÑ+>¸aÐ@Ð@r+   c                 ó˜   • U R                   b  U R                   $ [        U R                  U R                  45      U l         U R                   $ rQ   )rY   Úhashrg   rR   r`   s    r)   Ú__hash__Ú+_InstallRequirementBackedCandidate.__hash__§   s9   € Ø�:‰:Ñ!Ø—:‘:Ðä˜4Ÿ>™>¨4¯:©:Ð6Ó7ˆŒ
Ø�z‰zÐr+   Úotherc                 óx   • [        XR                  5      (       a   [        U R                  UR                  5      $ g©NF)r'   rg   r   rR   ©rZ   ro   s     r)   Ú__eq__Ú)_InstallRequirementBackedCandidate.__eq__®   s)   € Ü�eŸ^™^×,Ñ,Ü# D§J¡J°·±Ó<Ð<Ør+   c                 ó   • U R                   $ rQ   )rS   r`   s    r)   rM   Ú._InstallRequirementBackedCandidate.source_link³   ó   € à× Ñ Ð r+   c                 ój   • U R                   c  U R                  R                  U l         U R                   $ ©z:The normalised name of the project the candidate refers to)rV   rD   rF   r`   s    r)   Úproject_nameÚ/_InstallRequirementBackedCandidate.project_name·   s)   € ð �:‰:ÑØŸ™×1Ñ1ˆDŒJØ�z‰zÐr+   c                 ó   • U R                   $ rQ   ©rz   r`   s    r)   rO   Ú'_InstallRequirementBackedCandidate.name¾   rw   r+   c                 ój   • U R                   c  U R                  R                  U l         U R                   $ rQ   ©rW   rD   rG   r`   s    r)   rG   Ú*_InstallRequirementBackedCandidate.versionÂ   ó'   € à�=‰=Ñ Ø ŸI™I×-Ñ-ˆDŒMØ�}‰}Ðr+   c                 ó¶   • U R                    SU R                   SU R                  R                  (       a  U R                  R                  OU R                   S3$ )Nr^   z (from rf   )rO   rG   rR   Úis_fileÚ	file_pathr`   s    r)   Úformat_for_errorÚ3_InstallRequirementBackedCandidate.format_for_errorÈ   sJ   € à�y‰yˆk˜˜4Ÿ<™<˜.ð )Ø-1¯Z©Z×-?×-?�T—Z‘Z×)Ò)ÀTÇZÁZÐPÐPQðSð	
r+   c                 ó   • [        S5      e)NzOverride in subclass)ÚNotImplementedErrorr`   s    r)   Ú_prepare_distributionÚ8_InstallRequirementBackedCandidate._prepare_distributionÎ   s   € Ü!Ð"8Ó9Ð9r+   c                 ó:  • U R                   bF  U R                   UR                  :w  a,  [        U R                  SU R                   UR                  5      eU R                  bX  U R                  UR
                  :w  a>  [        U R                  S[        U R                  5      [        UR
                  5      5      e [        UR                  [        UR                  5       5      5      5        g! [         a$  n[        U R                  [        U5      5      eSnAff = f)z:Check for consistency of project name and version of dist.NrO   rG   )rV   rF   r   rU   rW   rG   r:   ÚlistÚiter_dependenciesÚiter_provided_extrasr   r   )rZ   rD   Úes      r)   Ú_check_metadata_consistencyÚ>_InstallRequirementBackedCandidate._check_metadata_consistencyÑ   sÙ   € à�:‰:Ñ! d§j¡j°D×4GÑ4GÓ&GÜ&Ø—
‘
ØØ—
‘
Ø×#Ñ#ó	ð ð �=‰=Ñ$¨¯©¸$¿,¹,Ó)FÜ&Ø—
‘
ØÜ�D—M‘MÓ"Ü�D—L‘LÓ!ó	ð ð	6Ü�×'Ñ'¬¨T×-FÑ-FÓ-HÓ(IÓJÕKøÜ!ó 	6Ü! $§*¡*¬c°!«fÓ5Ð5ûð	6ús   Â:1C, Ã,
DÃ6DÄDc                 ó¼   •  U R                  5       nU R                  U5        U$ ! [         a  nU R                  Ul        e S nAf[         a  nSUl        e S nAff = f)NzSee above for output.)rŠ   r   rU   r9   r   Úcontextr‘   )rZ   rD   r�   Úexcs       r)   rX   Ú+_InstallRequirementBackedCandidate._prepareé   s_   € ð	Ø×-Ñ-Ó/ˆDð 	×(Ñ(¨Ô.Øˆøô ó 	ð —J‘JˆAŒEØûÜ*ó 	à1ˆCŒKØûð	ús    ‚% ¥
A¯AÁAÁAÁAÚwith_requiresc              #   ó8  #   • U(       a  U R                   R                  5       OSnU H:  nU R                  R                  [	        U5      U R
                  5       S h  v•N   M<     U R                  R                  U R                   R                  5      v •  g  N:7f©N© )rD   rŽ   rT   Úmake_requirements_from_specr:   rU   Ú make_requires_python_requirementÚrequires_python)rZ   r—   ÚrequiresÚrs       r)   rŽ   Ú4_InstallRequirementBackedCandidate.iter_dependenciesú   sl   é € Þ4A�4—9‘9×.Ñ.Ô0ÀrˆÛˆAØ—}‘}×@Ñ@ÄÀQÃÈÏÉÓT×TÒTñ à�m‰m×<Ñ<¸T¿Y¹Y×=VÑ=VÓWÓWñ Uùs   ‚ABÁBÁ;Bc                 ó   • U R                   $ rQ   )rU   r`   s    r)   Úget_install_requirementÚ:_InstallRequirementBackedCandidate.get_install_requirement   s   € Ø�z‰zÐr+   )rT   rY   rU   rR   rV   rS   rW   rD   ©NN)$rh   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__annotations__Úis_installedr   r   r   r   r   r[   r:   ra   ri   Úintrm   r   Úboolrs   ÚpropertyrM   rz   rO   rG   r†   rŠ   r‘   rX   r   r   rŽ   r¢   Ú__static_attributes__rš   r+   r)   rK   rK   |   s„  ‡ ñð ÓØ€Lð *.Ø%)ñ)àð)ð ð)ð !ð	)ð
 ð)ð �~Ñ&ð)ð ˜'Ñ"ð)ð 
õ)ð$-˜ô -ðA˜#ô Að˜#ô ð˜Cð  Dô ð
 ð!˜X d™^ó !ó ð!ð ð˜nó ó ðð ð!�có !ó ð!ð ð˜ó ó ðð

 #ô 
ð:Ð'7ô :ð6Ð0@ð 6ÀTô 6ð0Ð*ô ð"X¨tð X¸ÀÈ+ÑAVÑ8Wô Xð¨Ð2DÑ)E÷ r+   rK   c                   ój   ^ • \ rS rSrSr  SS\S\SSS\\   S	\\	   S
S4U 4S jjjr
S
\4S jrSrU =r$ )r#   i  FNr,   r-   rN   r    rO   rG   r%   c           	      óˆ  >• UnUR                  Xd5      nUb,  [        R                  SUR                  5        UR                  n[	        X5      nUR                  U:X  d   eUR                  R
                  (       a‘  UR                  R                  (       dv  [        UR                  R                  5      n	[        U	R                  5      n
XJ:X  d   U< SU
< S35       eUb+  [        U	R                  5      nX[:X  d   U< SU< SU 35       eUb¡  UR                  R
                  (       d   eUR                  R                  (       d   eUR                  (       a  UR                  UR                  L a  Xhl        UR                   b  UR                   Ul        O[%        XgR                  S9Ul        [&        TU ]Q  UUUUUUS9  g )NzUsing cached wheel link: %sz != z
 for wheelz for wheel )Úlink_is_in_wheel_cache©r,   rM   r?   rN   rO   rG   )Úget_wheel_cache_entryÚloggerÚdebugr,   r@   Úis_wheelr„   r   Úfilenamer   rO   r   rG   Ú
persistentr<   Úcached_wheel_source_linkÚoriginÚdownload_infor   Úsuperr[   )rZ   r,   r-   rN   rO   rG   rM   Úcache_entryr?   ÚwheelÚ
wheel_nameÚwheel_versionrg   s               €r)   r[   ÚLinkCandidate.__init__  s™  ø€ ð ˆØ×3Ñ3°KÓFˆØÑ"Ü�L‰LÐ6¸×8HÑ8HÔIØ×#Ñ#ˆDÜ)¨$Ó9ˆØ�y‰y˜DÓ Ð Ð Ø�9‰9×× d§i¡i×&7×&7Ü˜$Ÿ)™)×,Ñ,Ó-ˆEÜ*¨5¯:©:Ó6ˆJØÓ%ÐN¨$©°°j±^À:Ð'NÓNÐ%àÑ"Ü '¨¯©Ó 6�àÓ,ðHà‘[  ]Ñ$5°[ÀÀÐGóHØ,ð Ñ"Ø—9‘9×%×%Ð%Ð%Ø—9‘9×$×$Ð$Ð$Ø×%×%¨(¯-©-¸8×;QÑ;QÒ*QØ0;Ô-Ø×!Ñ!Ñ-Ø%0×%7Ñ%7�Õ"ô &:Ø×8NÑ8Nñ&�Ô"ô 	‰ÑØØ#ØØØØð 	ò 	
r+   c                 ób   • U R                   R                  nUR                  U R                  SS9$ )NT)Úparallel_builds)rT   ÚpreparerÚprepare_linked_requirementrU   )rZ   rÄ   s     r)   rŠ   Ú#LinkCandidate._prepare_distribution8  s+   € Ø—=‘=×)Ñ)ˆØ×2Ñ2°4·:±:ÈtÐ2ÐTÐTr+   rš   r¤   ©rh   r¥   r¦   r§   Úis_editabler   r   r   r   r   r[   r   rŠ   r®   Ú__classcell__©rg   s   @r)   r#   r#     st   ø† Ø€Kð *.Ø%)ñ/
àð/
ð %ð/
ð ð	/
ð
 �~Ñ&ð/
ð ˜'Ñ"ð/
ð 
÷/
ð /
ðbUÐ'7÷ Uò Ur+   r#   c                   ój   ^ • \ rS rSrSr  SS\S\SSS\\   S	\\	   S
S4U 4S jjjr
S
\4S jrSrU =r$ )r"   i=  TNr,   r-   rN   r    rO   rG   r%   c           	      ó<   >• [         TU ]  UU[        X5      UUUS9  g )Nr²   )r¼   r[   rC   )rZ   r,   r-   rN   rO   rG   rg   s         €r)   r[   ÚEditableCandidate.__init__@  s.   ø€ ô 	‰ÑØØÜ/°Ó?ØØØð 	ò 	
r+   c                 ó`   • U R                   R                  R                  U R                  5      $ rQ   )rT   rÄ   Úprepare_editable_requirementrU   r`   s    r)   rŠ   Ú'EditableCandidate._prepare_distributionQ  s!   € Ø�}‰}×%Ñ%×BÑBÀ4Ç:Á:ÓNÐNr+   rš   r¤   rÇ   rÊ   s   @r)   r"   r"   =  ss   ø† Ø€Kð *.Ø%)ñ
àð
ð %ð
ð ð	
ð
 �~Ñ&ð
ð ˜'Ñ"ð
ð 
÷
ð 
ð"OÐ'7÷ Oò Or+   r"   c                   ó  • \ rS rSrSrSrS\S\SSSS4S	 jrS\	4S
 jr
S\	4S jrS\S\4S jrS\4S jr\S\4S j5       r\S\	4S j5       r\S\4S j5       r\S\4S j5       rS\	4S jrS\S\\\      4S jrS\\   4S jrSrg)r!   iU  TNrD   r-   rN   r    r%   c                 óš   • Xl         [        X5      U l        X0l        S U l        SnUR
                  R                  U R                  U5        g )Nzalready satisfied)rD   rI   rU   rT   rW   rÄ   Úprepare_installed_requirement)rZ   rD   r-   rN   Úskip_reasons        r)   r[   Ú"AlreadyInstalledCandidate.__init__Y  sB   € ð Œ	Ü0°Ó@ˆŒ
ØŒØˆŒð *ˆØ×Ñ×6Ñ6°t·z±zÀ;ÕOr+   c                 ó,   • [        U R                  5      $ rQ   )r:   rD   r`   s    r)   ra   Ú!AlreadyInstalledCandidate.__str__k  s   € Ü�4—9‘9‹~Ðr+   c                 óP   • U R                   R                   SU R                  < S3$ rd   )rg   rh   rD   r`   s    r)   ri   Ú"AlreadyInstalledCandidate.__repr__n  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯I©I©=¸Ð:Ð:r+   ro   c                 óª   • [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ rQ   )r'   r!   ÚNotImplementedrO   rG   rr   s     r)   rs   Ú AlreadyInstalledCandidate.__eq__q  s;   € Ü˜%Ô!:×;Ñ;Ü!Ð!Ø�y‰y˜EŸJ™JÑ&×H¨4¯<©<¸5¿=¹=Ñ+HÐHr+   c                 óD   • [        U R                  U R                  45      $ rQ   )rl   rO   rG   r`   s    r)   rm   Ú"AlreadyInstalledCandidate.__hash__v  s   € Ü�T—Y‘Y §¡Ð-Ó.Ð.r+   c                 ó.   • U R                   R                  $ rQ   )rD   rF   r`   s    r)   rz   Ú&AlreadyInstalledCandidate.project_namey  s   € à�y‰y×'Ñ'Ð'r+   c                 ó   • U R                   $ rQ   r}   r`   s    r)   rO   ÚAlreadyInstalledCandidate.name}  rw   r+   c                 ój   • U R                   c  U R                  R                  U l         U R                   $ rQ   r€   r`   s    r)   rG   Ú!AlreadyInstalledCandidate.version�  r‚   r+   c                 ó.   • U R                   R                  $ rQ   )rD   r8   r`   s    r)   rÈ   Ú%AlreadyInstalledCandidate.is_editable‡  s   € à�y‰y×!Ñ!Ð!r+   c                 ó:   • U R                    SU R                   S3$ )Nr^   z (Installed)r_   r`   s    r)   r†   Ú*AlreadyInstalledCandidate.format_for_error‹  s   € Ø—)‘)�˜A˜dŸl™l˜^¨<Ð8Ð8r+   r—   c              #   óÐ   #   • U(       d  g U R                   R                  5        H:  nU R                  R                  [	        U5      U R
                  5       S h  v•N   M<     g  N	7frQ   )rD   rŽ   rT   r›   r:   rU   )rZ   r—   rŸ   s      r)   rŽ   Ú+AlreadyInstalledCandidate.iter_dependenciesŽ  sG   é € ÞØØ—‘×,Ñ,Ö.ˆAØ—}‘}×@Ñ@ÄÀQÃÈÏÉÓT×TÒTò /ÙTùs   ‚AA&ÁA$Á
A&c                 ó   • g rQ   rš   r`   s    r)   r¢   Ú1AlreadyInstalledCandidate.get_install_requirement”  ó   € Ør+   )rT   rU   rW   rD   )rh   r¥   r¦   r§   rª   rM   r   r   r[   r:   ra   ri   Úobjectr¬   rs   r«   rm   r­   r   rz   rO   r   rG   rÈ   r†   r   r   r   rŽ   r¢   r®   rš   r+   r)   r!   r!   U  s   † Ø€LØ€KðPàðPð %ðPð ð	Pð
 
ôPð$˜ô ð;˜#ô ;ðI˜Fð I tô Ið
/˜#ô /ð ð(˜nó (ó ð(ð ð!�có !ó ð!ð ð˜ó ó ðð
 ð"˜Tó "ó ð"ð9 #ô 9ðU¨tð U¸ÀÈ+ÑAVÑ8Wô Uð¨Ð2DÑ)E÷ r+   r!   c            	       óX  • \ rS rSrSrSS.S\S\\   S\\	   SS4S	 jjr
S\4S
 jrS\4S jrS\4S jrS\S\4S jr\S\4S j5       r\S\4S j5       r\S\4S j5       rS\4S jr\S\4S j5       r\S\4S j5       r\S\\   4S j5       rS\S\\\      4S jrS\\	   4S jr Sr!g)Ú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.
N)r1   Úbaser=   r1   r%   c                óˆ   • Xl         [        S U 5       5      U l        Ub  X0l        gU R                   R                  U l        g)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   ó6   #   • U H  n[        U5      v •  M     g 7frQ   )r   )Ú.0r�   s     r)   Ú	<genexpr>Ú+ExtrasCandidate.__init__.<locals>.<genexpr>Á  s   é € ÐE¹f¸Ô 1°!× 4Ð 4ºfùó   ‚N)rñ   Ú	frozensetr=   rU   Ú_comes_from)rZ   rñ   r=   r1   s       r)   r[   ÚExtrasCandidate.__init__±  s5   € ð Œ	ÜÑE¹fÓEÓEˆŒØ)3Ñ)?˜:ÕÀTÇYÁYÇ_Á_ˆÕr+   c                 ó¨   • [        U R                  5      R                  SS5      u  pSR                  USR	                  U R
                  5      U5      $ )Nr^   r   z	{}[{}] {}Ú,)r:   rñ   ÚsplitÚformatÚjoinr=   )rZ   rO   Úrests      r)   ra   ÚExtrasCandidate.__str__Ä  s@   € Ü˜Ÿ™“^×)Ñ)¨#¨qÓ1‰
ˆØ×!Ñ! $¨¯©°·±Ó(=¸tÓDÐDr+   c                 ól   • U R                   R                   SU R                  < SU R                  < S3$ )Nz(base=z	, extras=rf   )rg   rh   rñ   r=   r`   s    r)   ri   ÚExtrasCandidate.__repr__È  s/   € Ø—.‘.×)Ñ)Ð*¨&°·±±¸YÀtÇ{Á{ÁoÐUVÐWÐWr+   c                 óD   • [        U R                  U R                  45      $ rQ   )rl   rñ   r=   r`   s    r)   rm   ÚExtrasCandidate.__hash__Ë  s   € Ü�T—Y‘Y §¡Ð,Ó-Ð-r+   ro   c                 óª   • [        XR                  5      (       a9  U R                  UR                  :H  =(       a    U R                  UR                  :H  $ grq   )r'   rg   rñ   r=   rr   s     r)   rs   ÚExtrasCandidate.__eq__Î  s9   € Ü�eŸ^™^×,Ñ,Ø—9‘9 §
¡
Ñ*×J¨t¯{©{¸e¿l¹lÑ/JÐJØr+   c                 ó.   • U R                   R                  $ rQ   )rñ   rz   r`   s    r)   rz   ÚExtrasCandidate.project_nameÓ  ó   € à�y‰y×%Ñ%Ð%r+   c                 óV   • [        U R                  R                  U R                  5      $ ry   )r   rñ   rz   r=   r`   s    r)   rO   ÚExtrasCandidate.name×  s   € ô ˜4Ÿ9™9×1Ñ1°4·;±;Ó?Ð?r+   c                 ó.   • U R                   R                  $ rQ   )rñ   rG   r`   s    r)   rG   ÚExtrasCandidate.versionÜ  s   € à�y‰y× Ñ Ð r+   c                 óš   • SR                  U R                  R                  5       SR                  [	        U R
                  5      5      5      $ )Nz{} [{}]z, )rþ   rñ   r†   rÿ   Úsortedr=   r`   s    r)   r†   Ú ExtrasCandidate.format_for_errorà  s9   € Ø×ÑØ�I‰I×&Ñ&Ó(¨$¯)©)´F¸4¿;¹;Ó4GÓ*Hó
ð 	
r+   c                 ó.   • U R                   R                  $ rQ   )rñ   rª   r`   s    r)   rª   ÚExtrasCandidate.is_installedå  r
  r+   c                 ó.   • U R                   R                  $ rQ   )rñ   rÈ   r`   s    r)   rÈ   ÚExtrasCandidate.is_editableé  ó   € à�y‰y×$Ñ$Ð$r+   c                 ó.   • U R                   R                  $ rQ   )rñ   rM   r`   s    r)   rM   ÚExtrasCandidate.source_linkí  r  r+   r—   c              #   ó¾  #   • U R                   R                  nUR                  U R                   5      v •  U(       d  g U R                  R	                  U R                   R
                  R                  5       5      nU R                  R                  U R                   R
                  R                  5       5      n[        U5       H9  n[        R                  SU R                   R                  U R                  U5        M;     U R                   R
                  R                  U5       H1  nUR                  [        U5      U R                   U5       S h  v•N   M3     g  N	7f)Nz%%s %s does not provide the extra '%s')rñ   rT   Úmake_requirement_from_candidater=   ÚintersectionrD   r�   Ú
differencer  r´   ÚwarningrO   rG   rŽ   r›   r:   rù   )rZ   r—   rN   Úvalid_extrasÚinvalid_extrasÚextrarŸ   s          r)   rŽ   Ú!ExtrasCandidate.iter_dependenciesñ  s   é € Ø—)‘)×$Ñ$ˆð ×5Ñ5°d·i±iÓ@Ò@ÞØð —{‘{×/Ñ/°·	±	·±×0SÑ0SÓ0UÓVˆØŸ™×/Ñ/°·	±	·±×0SÑ0SÓ0UÓVˆÜ˜NÖ+ˆEÜ�N‰NØ7Ø—	‘	—‘Ø—‘Øö	ñ ,ð —‘—‘×1Ñ1°,Ö?ˆAØ×:Ñ:Ü�A“Ø× Ñ Øó÷ ò ò @ñùs   ‚EEÅEÅ
Ec                 ó   • g rQ   rš   r`   s    r)   r¢   Ú'ExtrasCandidate.get_install_requirement  s   € ð r+   )rù   rñ   r=   )"rh   r¥   r¦   r§   r¨   ÚBaseCandidater   r:   r   r   r[   ra   ri   r«   rm   r   r¬   rs   r­   r   rz   rO   r   rG   r†   rª   rÈ   r   rM   r   r   rŽ   r¢   r®   rš   r+   r)   rð   rð   ˜  se  † ñð: 48òUàðUð ˜#‘ðUð
 Ð/Ñ0ðUð 
õUð&E˜ô EðX˜#ô Xð.˜#ô .ð˜Cð  Dô ð
 ð&˜nó &ó ð&ð ð@�có @ó ð@ð ð!˜ó !ó ð!ð
 #ô 
ð
 ð&˜dó &ó ð&ð ð%˜Tó %ó ð%ð ð%˜X d™^ó %ó ð%ð¨tð ¸ÀÈ+ÑAVÑ8Wô ð8¨Ð2DÑ)E÷ r+   rð   c                   óÔ   • \ rS rSrSrSrS\\\S4      SS4S jr	S\
4S jr\S\4S	 j5       r\S\
4S
 j5       r\S\4S j5       rS\
4S jrS\S\\\      4S jrS\\   4S jrSrg)ÚRequiresPythonCandidatei  FNÚpy_version_info.r%   c                 ó”   • Ub  [        U5      nO[        R                  S S n[        SR	                  S U 5       5      5      U l        g )Né   Ú.c              3   ó6   #   • U H  n[        U5      v •  M     g 7frQ   )r:   )rô   Úcs     r)   rõ   Ú3RequiresPythonCandidate.__init__.<locals>.<genexpr>  s   é € Ð(F¹°A¬¨Q¯¨ºùr÷   )r   ÚsysÚversion_infor   rÿ   rW   )rZ   r'  r/  s      r)   r[   Ú RequiresPythonCandidate.__init__  s?   € ØÑ&Ü1°/ÓB‰Lä×+Ñ+¨B¨QÐ/ˆLÜ §¡Ñ(F¹Ó(FÓ FÓGˆ�r+   c                 ó    • SU R                    3$ ©NzPython ©rW   r`   s    r)   ra   ÚRequiresPythonCandidate.__str__#  s   € Ø˜Ÿ™˜Ð(Ð(r+   c                 ó   • [         $ rQ   ©ÚREQUIRES_PYTHON_IDENTIFIERr`   s    r)   rz   Ú$RequiresPythonCandidate.project_name&  ó   € ä)Ð)r+   c                 ó   • [         $ rQ   r6  r`   s    r)   rO   ÚRequiresPythonCandidate.name*  r9  r+   c                 ó   • U R                   $ rQ   r3  r`   s    r)   rG   ÚRequiresPythonCandidate.version.  s   € à�}‰}Ðr+   c                 ó    • SU R                    3$ r2  )rG   r`   s    r)   r†   Ú(RequiresPythonCandidate.format_for_error2  s   € Ø˜Ÿ™˜Ð'Ð'r+   r—   c                 ó   • gr™   rš   )rZ   r—   s     r)   rŽ   Ú)RequiresPythonCandidate.iter_dependencies5  s   € Ør+   c                 ó   • g rQ   rš   r`   s    r)   r¢   Ú/RequiresPythonCandidate.get_install_requirement8  rí   r+   r3  )rh   r¥   r¦   r§   rª   rM   r   r   r«   r[   r:   ra   r­   r   rz   rO   r   rG   r†   r¬   r   r   rŽ   r   r¢   r®   rš   r+   r)   r&  r&    sÇ   † Ø€LØ€KðH¨°°s¸C°x±Ñ(Að HÀdô Hð)˜ô )ð ð*˜nó *ó ð*ð ð*�có *ó ð*ð ð˜ó ó ðð( #ô (ð¨tð ¸ÀÈ+ÑAVÑ8Wô ð¨Ð2DÑ)E÷ r+   r&  )<Úloggingr.  Útypingr   r   r   r   r   r   r	   r
   Ú"pip._vendor.packaging.requirementsr   Úpip._vendor.packaging.utilsr   r   Úpip._vendor.packaging.versionr   Úpip._internal.exceptionsr   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   rN   r    Ú	getLoggerrh   r´   r$  r7  r*   r@   rC   rI   rK   r#   r"   r!   rð   r&  rš   r+   r)   Ú<module>rR     sD  ðÛ Û 
ß X× XÓ Xå Aß IÝ 1÷ó õ 4ß <Ý ,÷õ =Ý GÝ ;ç 5Ñ 5æÝ à	×	Ò	˜8Ó	$€àðñ€ñ " .Ð2QÓRÐ ð	 ð 	¨x¸Ñ/Fô 	ðØ
ðØ,ðàôð2Ø
ðØ,ðàôð(Ø
ðØ&8ðàôô0E¨ô EôP6UÐ6ô 6UôrOÐ:ô Oô0@ 	ô @ôFy�iô yôx%˜iõ %r+   