ó
    �RjO  ã                   ó(  • 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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-  \ R\                  " \/5      r0\	S   r1\
" \S5      r2S\)S\\1   4S jr3S\S\#S\#4S jr4S\S\#S\#4S jr5S\S\#S\#4S jr6 " S S\)5      r7 " S S\75      r8 " S  S!\75      r9 " S" S#\)5      r: " 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Ú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>Ú	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     ÚZD:\diplom_project\venv\Lib\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   r1   r2   r3   r4   r5   r6   r7   r8   Úoriginal_linkr-   Úextras)r-   r.   ÚlineÚireqs       r*   Úmake_install_req_from_linkrA   8   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)	r1   r2   r3   r4   r5   Úpermit_editable_wheelsr6   r7   r8   )r9   r   r<   r1   r2   r3   r4   r5   rC   r6   r7   r8   r>   )r-   r.   r@   s      r*   Úmake_install_req_from_editablerD   Q   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==r0   )r:   r;   r-   Úcanonical_namer<   Úversionr   r1   r2   r3   r4   r5   r6   r7   r8   Úsatisfied_by)rE   r.   r?   r@   s       r*   Ú_make_install_req_from_distrJ   e   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).
rE   FNr-   Úsource_linkr@   Úfactoryr!   ÚnamerH   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Ú_preparerE   Ú_hash)Úselfr-   rN   r@   rO   rP   rH   s          r*   Ú__init__Ú+_InstallRequirementBackedCandidate.__init__�   s7   € ð Œ
Ø'ÔØŒØŒ
ØŒ
ØŒØ—M‘M“OˆŒ	Ø$(ˆ�
r,   c                 ó8   • U R                    SU R                   3$ )NÚ ©rP   rH   ©r[   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;   rS   ra   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                   $ rR   )rZ   Úhashrh   rS   ra   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(   rh   r   rS   ©r[   rp   s     r*   Ú__eq__Ú)_InstallRequirementBackedCandidate.__eq__¯   s)   € Ü�eŸ^™^×,Ñ,Ü# D§J¡J°·±Ó<Ð<Ør,   c                 ó   • U R                   $ rR   )rT   ra   s    r*   rN   Ú._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)rW   rE   rG   ra   s    r*   Úproject_nameÚ/_InstallRequirementBackedCandidate.project_name¸   s)   € ð �:‰:ÑØŸ™×1Ñ1ˆDŒJØ�z‰zÐr,   c                 ó   • U R                   $ rR   ©r{   ra   s    r*   rP   Ú'_InstallRequirementBackedCandidate.name¿   rx   r,   c                 ój   • U R                   c  U R                  R                  U l         U R                   $ rR   ©rX   rE   rH   ra   s    r*   rH   Ú*_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 rg   )rP   rH   rS   Úis_fileÚ	file_pathra   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)ÚNotImplementedErrorra   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.NrP   rH   )rW   rG   r   rV   rX   rH   r;   ÚlistÚiter_dependenciesÚiter_provided_extrasr   r   )r[   rE   Ú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   rV   r:   r   Úcontextr’   )r[   rE   r‘   Úexcs       r*   rY   Ú+_InstallRequirementBackedCandidate._prepareê   s_   € ð	Ø×-Ñ-Ó/ˆDð 	×(Ñ(¨Ô.Øˆøô ó 	ð —J‘JˆAŒEØûÜ*ó 	à1ˆCŒKØûð	ús    ‚% ¥
A¯AÁAÁAÁAÚwith_requiresc              #   ó8  #   • U R                   R                  U R                  R                  5      v •  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<     g  N	7f©N© )rU   Ú make_requires_python_requirementrE   Úrequires_pythonr�   Úmake_requirements_from_specr;   rV   )r[   r˜   ÚrequiresÚrs       r*   r�   Ú4_InstallRequirementBackedCandidate.iter_dependenciesû   sk   é € ð �m‰m×<Ñ<¸T¿Y¹Y×=VÑ=VÓWÒWÞ4A�4—9‘9×.Ñ.Ô0ÀrˆÛˆAØ—}‘}×@Ñ@ÄÀQÃÈÏÉÓT×TÒTò ÙTùs   ‚BBÂBÂ
Bc                 ó   • U R                   $ rR   )rV   ra   s    r*   Úget_install_requirementÚ:_InstallRequirementBackedCandidate.get_install_requirement  s   € Ø�z‰zÐr,   )rU   rZ   rV   rS   rW   rT   rX   rE   ©NN)$ri   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__annotations__Úis_installedr   r   r   r   r   r\   r;   rb   rj   Úintrn   r   Úboolrt   ÚpropertyrN   r{   rP   rH   r‡   r‹   r’   rY   r   r   r�   r£   Ú__static_attributes__r›   r,   r*   rL   rL   }   s„  ‡ ñð ÓØ€Lð *.Ø%)ñ)àð)ð ð)ð !ð	)ð
 ð)ð �~Ñ&ð)ð ˜'Ñ"ð)ð 
õ)ð$-˜ô -ðA˜#ô Að˜#ô ð˜Cð  Dô ð
 ð!˜X d™^ó !ó ð!ð ð˜nó ó ðð ð!�có !ó ð!ð ð˜ó ó ðð

 #ô 
ð:Ð'7ô :ð6Ð0@ð 6ÀTô 6ð0Ð*ô ð"U¨tð U¸ÀÈ+ÑAVÑ8Wô Uð¨Ð2DÑ)E÷ r,   rL   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.   rO   r!   rP   rH   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-   rN   r@   rO   rP   rH   )Úget_wheel_cache_entryÚloggerÚdebugr-   rA   Úis_wheelr…   r   Úfilenamer   rP   r   rH   Ú
persistentr=   Úcached_wheel_source_linkÚoriginÚdownload_infor   Úsuperr\   )r[   r-   r.   rO   rP   rH   rN   Úcache_entryr@   ÚwheelÚ
wheel_nameÚwheel_versionrh   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)rU   ÚpreparerÚprepare_linked_requirementrV   )r[   rÅ   s     r*   r‹   Ú#LinkCandidate._prepare_distribution;  s+   € Ø—=‘=×)Ñ)ˆØ×2Ñ2°4·:±:ÈtÐ2ÐTÐTr,   r›   r¥   ©ri   r¦   r§   r¨   Úis_editabler   r   r   r   r   r\   r   r‹   r¯   Ú__classcell__©rh   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.   rO   r!   rP   rH   r&   c           	      ó<   >• [         TU ]  UU[        X5      UUUS9  g )Nr³   )r½   r\   rD   )r[   r-   r.   rO   rP   rH   rh   s         €r*   r\   ÚEditableCandidate.__init__C  s.   ø€ ô 	‰ÑØØÜ/°Ó?ØØØð 	ò 	
r,   c                 ó`   • U R                   R                  R                  U R                  5      $ rR   )rU   rÅ   Úprepare_editable_requirementrV   ra   s    r*   r‹   Ú'EditableCandidate._prepare_distributionT  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"   iX  TNrE   r.   rO   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)rE   rJ   rV   rU   rX   rÅ   Úprepare_installed_requirement)r[   rE   r.   rO   Úskip_reasons        r*   r\   Ú"AlreadyInstalledCandidate.__init__\  sB   € ð Œ	Ü0°Ó@ˆŒ
ØŒØˆŒð *ˆØ×Ñ×6Ñ6°t·z±zÀ;ÕOr,   c                 ó,   • [        U R                  5      $ rR   )r;   rE   ra   s    r*   rb   Ú!AlreadyInstalledCandidate.__str__n  s   € Ü�4—9‘9‹~Ðr,   c                 óP   • U R                   R                   SU R                  < S3$ re   )rh   ri   rE   ra   s    r*   rj   Ú"AlreadyInstalledCandidate.__repr__q  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯I©I©=¸Ð:Ð:r,   rp   c                 óª   • [        U[        5      (       d  [        $ U R                  UR                  :H  =(       a    U R                  UR                  :H  $ rR   )r(   r"   ÚNotImplementedrP   rH   rs   s     r*   rt   Ú AlreadyInstalledCandidate.__eq__t  s;   € Ü˜%Ô!:×;Ñ;Ü!Ð!Ø�y‰y˜EŸJ™JÑ&×H¨4¯<©<¸5¿=¹=Ñ+HÐHr,   c                 óD   • [        U R                  U R                  45      $ rR   )rm   rP   rH   ra   s    r*   rn   Ú"AlreadyInstalledCandidate.__hash__y  s   € Ü�T—Y‘Y §¡Ð-Ó.Ð.r,   c                 ó.   • U R                   R                  $ rR   )rE   rG   ra   s    r*   r{   Ú&AlreadyInstalledCandidate.project_name|  s   € à�y‰y×'Ñ'Ð'r,   c                 ó   • U R                   $ rR   r~   ra   s    r*   rP   ÚAlreadyInstalledCandidate.name€  rx   r,   c                 ój   • U R                   c  U R                  R                  U l         U R                   $ rR   r�   ra   s    r*   rH   Ú!AlreadyInstalledCandidate.version„  rƒ   r,   c                 ó.   • U R                   R                  $ rR   )rE   r9   ra   s    r*   rÉ   Ú%AlreadyInstalledCandidate.is_editableŠ  s   € à�y‰y×!Ñ!Ð!r,   c                 ó:   • U R                    SU R                   S3$ )Nr_   z (Installed)r`   ra   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	! [         a  n[        U R                   US9S eS nAff = f7f)N)rE   Úinvalid_exc)rE   r�   rU   rž   r;   rV   r   r   )r[   r˜   r    r–   s       r*   r�   Ú+AlreadyInstalledCandidate.iter_dependencies‘  sr   é € ÞØð	UØ—Y‘Y×0Ñ0Ö2�ØŸ=™=×DÑDÄSÈÃVÈTÏZÉZÓX×XÒXò 3ÙXøÜ!ó 	UÜ)¨t¯y©yÀcÑJÐPTÐTûð	Uüs;   ‚	BŒAA' ÁA%ÁA' Á$BÁ%A' Á'
BÁ1BÂBÂBc                 ó   • g rR   r›   ra   s    r*   r£   Ú1AlreadyInstalledCandidate.get_install_requirement›  ó   € Ør,   )rU   rV   rX   rE   )ri   r¦   r§   r¨   r«   rN   r   r   r\   r;   rb   rj   Úobjectr­   rt   r¬   rn   r®   r   r{   rP   r   rH   rÉ   r‡   r   r   r   r�   r£   r¯   r›   r,   r*   r"   r"   X  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)r2   Úbaser>   r2   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   ó8   #   • U  H  n[        U5      v •  M     g 7frR   )r   )Ú.0r‘   s     r*   Ú	<genexpr>Ú+ExtrasCandidate.__init__.<locals>.<genexpr>È  s   é € ÐEºf¸Ô 1°!× 4Ð 4ºfùó   ‚N)ró   Ú	frozensetr>   rV   Ú_comes_from)r[   ró   r>   r2   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>   )r[   rP   Úrests      r*   rb   Ú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=rg   )rh   ri   ró   r>   ra   s    r*   rj   ÚExtrasCandidate.__repr__Ï  s/   € Ø—.‘.×)Ñ)Ð*¨&°·±±¸YÀtÇ{Á{ÁoÐUVÐWÐWr,   c                 óD   • [        U R                  U R                  45      $ rR   )rm   ró   r>   ra   s    r*   rn   ÚExtrasCandidate.__hash__Ò  s   € Ü�T—Y‘Y §¡Ð,Ó-Ð-r,   rp   c                 óª   • [        XR                  5      (       a9  U R                  UR                  :H  =(       a    U R                  UR                  :H  $ grr   )r(   rh   ró   r>   rs   s     r*   rt   ÚExtrasCandidate.__eq__Õ  s9   € Ü�eŸ^™^×,Ñ,Ø—9‘9 §
¡
Ñ*×J¨t¯{©{¸e¿l¹lÑ/JÐJØr,   c                 ó.   • U R                   R                  $ rR   )ró   r{   ra   s    r*   r{   ÚExtrasCandidate.project_nameÚ  ó   € à�y‰y×%Ñ%Ð%r,   c                 óV   • [        U R                  R                  U R                  5      $ rz   )r    ró   r{   r>   ra   s    r*   rP   ÚExtrasCandidate.nameÞ  s   € ô ˜4Ÿ9™9×1Ñ1°4·;±;Ó?Ð?r,   c                 ó.   • U R                   R                  $ rR   )ró   rH   ra   s    r*   rH   Ú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>   ra   s    r*   r‡   Ú ExtrasCandidate.format_for_errorç  s9   € Ø×ÑØ�I‰I×&Ñ&Ó(¨$¯)©)´F¸4¿;¹;Ó4GÓ*Hó
ð 	
r,   c                 ó.   • U R                   R                  $ rR   )ró   r«   ra   s    r*   r«   ÚExtrasCandidate.is_installedì  r  r,   c                 ó.   • U R                   R                  $ rR   )ró   rÉ   ra   s    r*   rÉ   ÚExtrasCandidate.is_editableð  ó   € à�y‰y×$Ñ$Ð$r,   c                 ó.   • U R                   R                  $ rR   )ró   rN   ra   s    r*   rN   Ú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ó   rU   Úmake_requirement_from_candidater>   ÚintersectionrE   r�   Ú
differencer  rµ   ÚwarningrP   rH   r�   rž   r;   rû   )r[   r˜   rO   Ú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 rR   r›   ra   s    r*   r£   Ú'ExtrasCandidate.get_install_requirement  s   € ð r,   )rû   ró   r>   )"ri   r¦   r§   r¨   r©   ÚBaseCandidater   r;   r   r   r\   rb   rj   r¬   rn   r   r­   rt   r®   r   r{   rP   r   rH   r‡   r«   rÉ   r   rN   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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   ó8   #   • U  H  n[        U5      v •  M     g 7frR   )r;   )rö   Úcs     r*   r÷   Ú3RequiresPythonCandidate.__init__.<locals>.<genexpr>$  s   é € Ð(Fº°A¬¨Q¯¨ºùrù   )r   ÚsysÚversion_infor   r  rX   )r[   r)  r1  s      r*   r\   Ú RequiresPythonCandidate.__init__  s?   € ØÑ&Ü1°/ÓB‰Lä×+Ñ+¨B¨QÐ/ˆLÜ §¡Ñ(F¹Ó(FÓ FÓGˆ�r,   c                 ó    • SU R                    3$ ©NzPython ©rX   ra   s    r*   rb   ÚRequiresPythonCandidate.__str__*  s   € Ø˜Ÿ™˜Ð(Ð(r,   c                 óP   • U R                   R                   SU R                  < S3$ re   )rh   ri   rX   ra   s    r*   rj   Ú RequiresPythonCandidate.__repr__-  s%   € Ø—.‘.×)Ñ)Ð*¨!¨D¯M©MÑ+<¸AÐ>Ð>r,   c                 ó   • [         $ rR   ©ÚREQUIRES_PYTHON_IDENTIFIERra   s    r*   r{   Ú$RequiresPythonCandidate.project_name0  ó   € ä)Ð)r,   c                 ó   • [         $ rR   r:  ra   s    r*   rP   ÚRequiresPythonCandidate.name4  r=  r,   c                 ó   • U R                   $ rR   r5  ra   s    r*   rH   ÚRequiresPythonCandidate.version8  s   € à�}‰}Ðr,   c                 ó    • SU R                    3$ r4  )rH   ra   s    r*   r‡   Ú(RequiresPythonCandidate.format_for_error<  s   € Ø˜Ÿ™˜Ð'Ð'r,   r˜   c                 ó   • grš   r›   )r[   r˜   s     r*   r�   Ú)RequiresPythonCandidate.iter_dependencies?  s   € Ør,   c                 ó   • g rR   r›   ra   s    r*   r£   Ú/RequiresPythonCandidate.get_install_requirementB  rï   r,   r5  )ri   r¦   r§   r¨   r«   rN   r   r   r¬   r\   r;   rb   rj   r®   r   r{   rP   r   rH   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(  )=Úloggingr0  Ú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   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    rO   r!   Ú	getLoggerri   rµ   r&  r;  r+   rA   rD   rJ   rL   r$   r#   r"   rò   r(  r›   r,   r*   Ú<module>rV     sD  ðÛ Û 
ß X× XÓ Xå Aß IÝ 1÷õ õ 4ß <Ý ,÷õ =Ý GÝ ;ç 5Ñ 5æÝ à	×	Ò	˜8Ó	$€àðñ€ñ " .Ð2QÓRÐ ð	 ð 	¨x¸Ñ/Fô 	ðØ
ðØ,ðàôð2Ø
ðØ,ðàôð(Ø
ðØ&8ðàôô0G¨ô GôT6UÐ6ô 6UôrOÐ:ô Oô0D 	ô DôNy�iô yôx(˜iõ (r,   