Ë
    ��hO  ã                   ó  — d dl Z d dlZd dlmZmZmZmZmZmZm	Z	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZmZmZmZmZ d dlmZ d dlmZmZ d d	lmZ d d
lm Z m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z' ddl(m)Z)m*Z*m+Z+ erddl,m-Z-  e j\                  e/«      Z0e	d   Z1 e
ed«      Z2de)dee1   fd„Z3dede#de#fd„Z4dede#de#fd„Z5dede#de#fd„Z6 G d„ de)«      Z7 G d„ de7«      Z8 G d „ d!e7«      Z9 G d"„ d#e)«      Z: G d$„ d%e)«      Z; G d&„ d'e)«      Z<y)(é    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                 óB   — t         t        t        f}t        | |«      r| S y)z%The runtime version of BaseCandidate.N)r"   r#   r$   Ú
isinstance)r%   Úbase_candidate_classess     úl/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.pyÚas_base_candidater+   ,   s+   € ô 	"ÜÜðÐô
 �)Ð3Ô4ØÐØó    ÚlinkÚtemplatec                 ó¢  — |j                   rJ d«       ‚|j                  rt        |j                  «      }n| j                  }t	        ||j
                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  ¬«	      }|j                  |_        | |_        |j                  |_        |S )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ÔØ€D„IØ—/‘/€D„KØ€Kr,   c                 ó@  — |j                   sJ d«       ‚t        | j                  |j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                  |j                  ¬«
      }|j                  |_        |S )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                 óº  — |j                   rt        |j                   «      }nM|j                  r&| j                  › d|j                  j                  › �}n| j                  › d| j
                  › �}t        ||j                  |j                  |j                  |j                  |j                  |j                  |j                  |j                  ¬«	      }| |_        |S )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ð €DÔØ€Kr,   c                   óJ  — e Zd ZU dZeed<   dZ	 	 ddedededd	d
e	e
   de	e   ddfd„Zdefd„Zdefd„Zdefd„Zdedefd„Zede	e   fd„«       Zede
fd„«       Zedefd„«       Zedefd„«       Zdefd„Zdefd„Zdeddfd„Zdefd„Zdedee	e      fd„Z de	e   fd„Z!y)Ú"_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).
    rE   FNr-   Úsource_linkr@   Úfactoryr!   ÚnamerH   r&   c                 ó�   — || _         || _        || _        || _        || _        || _        | j                  «       | _        d | _        y ©N)	Ú_linkÚ_source_linkÚ_factoryÚ_ireqÚ_nameÚ_versionÚ_preparerE   Ú_hash)Úselfr-   rM   r@   rN   rO   rH   s          r*   Ú__init__z+_InstallRequirementBackedCandidate.__init__�   sC   € ð ˆŒ
Ø'ˆÔØˆŒØˆŒ
ØˆŒ
ØˆŒØ—M‘M“OˆŒ	Ø$(ˆ�
r,   c                 ó8   — | j                   › d| j                  › �S )Nú ©rO   rH   ©rZ   s    r*   Ú__str__z*_InstallRequirementBackedCandidate.__str__¢   s   € Ø—)‘)�˜A˜dŸl™l˜^Ð,Ð,r,   c                 ó`   — | j                   j                  › dt        | j                  «      ›d�S ©Nú(ú))Ú	__class__Ú__name__r;   rR   r_   s    r*   Ú__repr__z+_InstallRequirementBackedCandidate.__repr__¥   s)   € Ø—.‘.×)Ñ)Ð*¨!¬C°·
±
«OÐ+>¸aÐ@Ð@r,   c                 ó–   — | j                   �| j                   S t        | j                  | j                  f«      | _         | j                   S rQ   )rY   Úhashre   rR   r_   s    r*   Ú__hash__z+_InstallRequirementBackedCandidate.__hash__¨   s9   € Ø�:‰:Ð!Ø—:‘:Ðä˜4Ÿ>™>¨4¯:©:Ð6Ó7ˆŒ
Ø�z‰zÐr,   Úotherc                 óp   — t        || j                  «      r t        | j                  |j                  «      S y©NF)r(   re   r   rR   ©rZ   rk   s     r*   Ú__eq__z)_InstallRequirementBackedCandidate.__eq__¯   s(   € Ü�e˜TŸ^™^Ô,Ü# D§J¡J°·±Ó<Ð<Ør,   c                 ó   — | j                   S rQ   )rS   r_   s    r*   rM   z._InstallRequirementBackedCandidate.source_link´   ó   € à× Ñ Ð r,   c                 óh   — | j                   €| j                  j                  | _         | j                   S ©z:The normalised name of the project the candidate refers to)rV   rE   rG   r_   s    r*   Úproject_namez/_InstallRequirementBackedCandidate.project_name¸   s)   € ð �:‰:ÐØŸ™×1Ñ1ˆDŒJØ�z‰zÐr,   c                 ó   — | j                   S rQ   ©rt   r_   s    r*   rO   z'_InstallRequirementBackedCandidate.name¿   rq   r,   c                 óh   — | j                   €| j                  j                  | _         | j                   S rQ   ©rW   rE   rH   r_   s    r*   rH   z*_InstallRequirementBackedCandidate.versionÃ   ó'   € à�=‰=Ð Ø ŸI™I×-Ñ-ˆDŒMØ�}‰}Ðr,   c                 ó²   — | j                   › d| j                  › d| j                  j                  r| j                  j                  › d�S | j                  › d�S )Nr]   z (from rd   )rO   rH   rR   Úis_fileÚ	file_pathr_   s    r*   Úformat_for_errorz3_InstallRequirementBackedCandidate.format_for_errorÉ   s\   € à�y‰yˆk˜˜4Ÿ<™<˜.ð )Ø-1¯Z©Z×-?Ò-?�T—Z‘Z×)Ñ)ÐPÐPQðSð	
àEIÇZÁZÐPÐPQðSð	
r,   c                 ó   — t        d«      ‚)NzOverride in subclass)ÚNotImplementedErrorr_   s    r*   Ú_prepare_distributionz8_InstallRequirementBackedCandidate._prepare_distributionÏ   s   € Ü!Ð"8Ó9Ð9r,   c                 ó0  — | j                   �E| j                   |j                  k7  r,t        | j                  d| j                   |j                  «      ‚| j                  �W| j                  |j
                  k7  r>t        | j                  dt        | j                  «      t        |j
                  «      «      ‚	 t        |j                  t        |j                  «       «      «      «       y# t        $ r$}t        | j                  t        |«      «      ‚d}~ww xY w)z:Check for consistency of project name and version of dist.NrO   rH   )rV   rG   r   rU   rW   rH   r;   ÚlistÚiter_dependenciesÚiter_provided_extrasr   r   )rZ   rE   Úes      r*   Ú_check_metadata_consistencyz>_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   Â61C( Ã(	DÃ1DÄDc                 ó¸   — 	 | j                  «       }| j                  |«       |S # t        $ r}| j                  |_        ‚ d }~wt        $ r}d|_        ‚ d }~ww xY w)NzSee above for output.)r€   r   rU   r:   r   Úcontextr†   )rZ   rE   r…   Úexcs       r*   rX   z+_InstallRequirementBackedCandidate._prepareê   s_   € ð	Ø×-Ñ-Ó/ˆDð 	×(Ñ(¨Ô.Øˆøô ò 	ð —J‘JˆAŒEØûÜ*ò 	à1ˆCŒKØûð	ús    ‚% ¥	A®A Á AÁAÁAÚwith_requiresc              #   ó*  K  — | j                   j                  | j                  j                  «      –— |r| j                  j	                  «       nd}|D ]9  }| j                   j                  t        |«      | j                  «      E d {  –—†  Œ; y 7 Œ­w©N© )rT   Ú make_requires_python_requirementrE   Úrequires_pythonrƒ   Úmake_requirements_from_specr;   rU   )rZ   rŠ   ÚrequiresÚrs       r*   rƒ   z4_InstallRequirementBackedCandidate.iter_dependenciesû   ss   è ø€ ð �m‰m×<Ñ<¸T¿Y¹Y×=VÑ=VÓWÒWÙ4A�4—9‘9×.Ñ.Ô0ÀrˆØò 	UˆAØ—}‘}×@Ñ@ÄÀQÃÈÏÉÓT×TÑTñ	UØTús   ‚BBÂ	BÂ
Bc                 ó   — | j                   S rQ   )rU   r_   s    r*   Úget_install_requirementz:_InstallRequirementBackedCandidate.get_install_requirement  s   € Ø�z‰zÐr,   ©NN)"rf   Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__Úis_installedr   r   r   r   r   r[   r;   r`   rg   Úintrj   r   Úboolro   ÚpropertyrM   rt   rO   rH   r}   r€   r†   rX   r   r   rƒ   r”   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                   óZ   ‡ — e Zd ZdZ	 	 ddededddee   dee   d	dfˆ fd
„Z	d	e
fd„Zˆ xZS )r$   FNr-   r.   rN   r!   rO   rH   r&   c                 óV  •— |}|j                  ||«      }|�,t        j                  d|j                  «       |j                  }t	        ||«      }|j                  |k(  sJ ‚|j                  j
                  r‡|j                  j                  sqt        |j                  j                  «      }	t        |	j                  «      }
||
k(  sJ |›d|
›d�«       ‚|�)t        |	j                  «      }||k(  sJ |›d|›d|› �«       ‚|�•|j                  j
                  sJ ‚|j                  j                  sJ ‚|j                  r|j                  |j                  u r||_        |j                   �|j                   |_        nt%        ||j                  ¬«      |_        t&        ‰| �Q  ||||||¬«       y )NzUsing cached wheel link: %sz != z
 for wheelz for wheel )Úlink_is_in_wheel_cache©r-   rM   r@   rN   rO   rH   )Úget_wheel_cache_entryÚloggerÚdebugr-   rA   Úis_wheelr{   r   Úfilenamer   rO   r   rH   Ú
persistentr=   Úcached_wheel_source_linkÚoriginÚdownload_infor   Úsuperr[   )rZ   r-   r.   rN   rO   rH   rM   Úcache_entryr@   ÚwheelÚ
wheel_nameÚwheel_versionre   s               €r*   r[   z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                 óh   — | j                   j                  }|j                  | j                  d¬«      S )NT)Úparallel_builds)rT   ÚpreparerÚprepare_linked_requirementrU   )rZ   r²   s     r*   r€   z#LinkCandidate._prepare_distribution;  s+   € Ø—=‘=×)Ñ)ˆØ×2Ñ2°4·:±:ÈtÐ2ÓTÐTr,   r•   ©rf   r–   r—   Úis_editabler   r   r   r   r   r[   r   r€   Ú__classcell__©re   s   @r*   r$   r$     si   ø„ Ø€Kð *.Ø%)ñ/
àð/
ð %ð/
ð ð	/
ð
 �~Ñ&ð/
ð ˜'Ñ"ð/
ð 
õ/
ðbUÐ'7÷ Ur,   r$   c                   óZ   ‡ — e Zd ZdZ	 	 ddededddee   dee   d	dfˆ fd
„Z	d	e
fd„Zˆ xZS )r#   TNr-   r.   rN   r!   rO   rH   r&   c                 óD   •— t         ‰| �  ||t        ||«      |||¬«       y )Nr¡   )r«   r[   rD   )rZ   r-   r.   rN   rO   rH   re   s         €r*   r[   zEditableCandidate.__init__C  s0   ø€ ô 	‰ÑØØÜ/°°hÓ?ØØØð 	õ 	
r,   c                 ó`   — | j                   j                  j                  | j                  «      S rQ   )rT   r²   Úprepare_editable_requirementrU   r_   s    r*   r€   z'EditableCandidate._prepare_distributionT  s!   € Ø�}‰}×%Ñ%×BÑBÀ4Ç:Á:ÓNÐNr,   r•   r´   r·   s   @r*   r#   r#   @  sh   ø„ Ø€Kð *.Ø%)ñ
àð
ð %ð
ð ð	
ð
 �~Ñ&ð
ð ˜'Ñ"ð
ð 
õ
ð"OÐ'7÷ Or,   r#   c                   óò   — e Zd ZdZdZdededdddfd„Zdefd	„Z	defd
„Z
dedefd„Zdefd„Zedefd„«       Zedefd„«       Zedefd„«       Zedefd„«       Zdefd„Zdedeee      fd„Zdee   fd„Zy)r"   TNrE   r.   rN   r!   r&   c                 ó    — || _         t        ||«      | _        || _        d | _        d}|j
                  j                  | j                  |«       y )Nzalready satisfied)rE   rJ   rU   rT   rW   r²   Úprepare_installed_requirement)rZ   rE   r.   rN   Úskip_reasons        r*   r[   z"AlreadyInstalledCandidate.__init__\  sH   € ð ˆŒ	Ü0°°xÓ@ˆŒ
ØˆŒØˆŒð *ˆØ×Ñ×6Ñ6°t·z±zÀ;ÕOr,   c                 ó,   — t        | j                  «      S rQ   )r;   rE   r_   s    r*   r`   z!AlreadyInstalledCandidate.__str__n  s   € Ü�4—9‘9‹~Ðr,   c                 óN   — | j                   j                  › d| j                  ›d�S rb   )re   rf   rE   r_   s    r*   rg   z"AlreadyInstalledCandidate.__repr__q  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯I©I¨=¸Ð:Ð:r,   rk   c                 ó–   — t        |t        «      st        S | j                  |j                  k(  xr | j                  |j                  k(  S rQ   )r(   r"   ÚNotImplementedrO   rH   rn   s     r*   ro   z AlreadyInstalledCandidate.__eq__t  s8   € Ü˜%Ô!:Ô;Ü!Ð!Ø�y‰y˜EŸJ™JÑ&ÒH¨4¯<©<¸5¿=¹=Ñ+HÐHr,   c                 óD   — t        | j                  | j                  f«      S rQ   )ri   rO   rH   r_   s    r*   rj   z"AlreadyInstalledCandidate.__hash__y  s   € Ü�T—Y‘Y §¡Ð-Ó.Ð.r,   c                 ó.   — | j                   j                  S rQ   )rE   rG   r_   s    r*   rt   z&AlreadyInstalledCandidate.project_name|  s   € à�y‰y×'Ñ'Ð'r,   c                 ó   — | j                   S rQ   rv   r_   s    r*   rO   zAlreadyInstalledCandidate.name€  rq   r,   c                 óh   — | j                   €| j                  j                  | _         | j                   S rQ   rx   r_   s    r*   rH   z!AlreadyInstalledCandidate.version„  ry   r,   c                 ó.   — | j                   j                  S rQ   )rE   r9   r_   s    r*   rµ   z%AlreadyInstalledCandidate.is_editableŠ  s   € à�y‰y×!Ñ!Ð!r,   c                 ó:   — | j                   › d| j                  › d�S )Nr]   z (Installed)r^   r_   s    r*   r}   z*AlreadyInstalledCandidate.format_for_errorŽ  s   € Ø—)‘)�˜A˜dŸl™l˜^¨<Ð8Ð8r,   rŠ   c              #   ó  K  — |sy 	 | j                   j                  «       D ]9  }| j                  j                  t	        |«      | j
                  «      E d {  –—†  Œ; y 7 Œ# t        $ r}t        | j                   |¬«      d ‚d }~ww xY w­w)N)rE   Úinvalid_exc)rE   rƒ   rT   r�   r;   rU   r   r   )rZ   rŠ   r’   r‰   s       r*   rƒ   z+AlreadyInstalledCandidate.iter_dependencies‘  sz   è ø€ ÙØð	UØ—Y‘Y×0Ñ0Ó2ò Y�ØŸ=™=×DÑDÄSÈÃVÈTÏZÉZÓX×XÑXñYØXùÜ!ò 	UÜ)¨t¯y©yÀcÔJÐPTÐTûð	Uüs;   ‚B	‡AA  ÁAÁA  ÁB	ÁA  Á 	BÁ)BÂBÂB	c                  ó   — y rQ   r�   r_   s    r*   r”   z1AlreadyInstalledCandidate.get_install_requirement›  ó   € Ør,   )rf   r–   r—   rš   rM   r   r   r[   r;   r`   rg   Úobjectrœ   ro   r›   rj   r�   r   rt   rO   r   rH   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            	       ó2  — e Zd ZdZddœdedee   dee   ddfd„Z	defd	„Z
defd
„Zdefd„Zdedefd„Zedefd„«       Zedefd„«       Zedefd„«       Zdefd„Zedefd„«       Zedefd„«       Zedee   fd„«       Zdedeee      fd„Zdee   fd„Zy)ÚExtrasCandidateaí  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                óŠ   — || _         t        d„ |D «       «      | _        |�|| _        y| j                   j                  | _        y)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   ó2   K  — | ]  }t        |«      –— Œ y ­wrQ   )r   )Ú.0r…   s     r*   ú	<genexpr>z+ExtrasCandidate.__init__.<locals>.<genexpr>È  s   è ø€ ÒE¸Ô 1°!× 4ÑEùó   ‚N)rÑ   Ú	frozensetr>   rU   Ú_comes_from)rZ   rÑ   r>   r2   s       r*   r[   zExtrasCandidate.__init__¸  s9   € ð ˆŒ	ÜÑE¸fÔEÓEˆŒØ)3Ð)?˜:ˆÕÀTÇYÁYÇ_Á_ˆÕr,   c                 óª   — t        | j                  «      j                  dd«      \  }}dj                  |dj	                  | j
                  «      |«      S )Nr]   r   z	{}[{}] {}ú,)r;   rÑ   ÚsplitÚformatÚjoinr>   )rZ   rO   Úrests      r*   r`   zExtrasCandidate.__str__Ë  sB   € Ü˜Ÿ™“^×)Ñ)¨#¨qÓ1‰
ˆˆdØ×!Ñ! $¨¯©°·±Ó(=¸tÓDÐDr,   c                 óh   — | j                   j                  › d| j                  ›d| j                  ›d�S )Nz(base=z	, extras=rd   )re   rf   rÑ   r>   r_   s    r*   rg   zExtrasCandidate.__repr__Ï  s/   € Ø—.‘.×)Ñ)Ð*¨&°·±°¸YÀtÇ{Á{ÀoÐUVÐWÐWr,   c                 óD   — t        | j                  | j                  f«      S rQ   )ri   rÑ   r>   r_   s    r*   rj   zExtrasCandidate.__hash__Ò  s   € Ü�T—Y‘Y §¡Ð,Ó-Ð-r,   rk   c                 ó˜   — t        || j                  «      r4| j                  |j                  k(  xr | j                  |j                  k(  S yrm   )r(   re   rÑ   r>   rn   s     r*   ro   zExtrasCandidate.__eq__Õ  s8   € Ü�e˜TŸ^™^Ô,Ø—9‘9 §
¡
Ñ*ÒJ¨t¯{©{¸e¿l¹lÑ/JÐJØr,   c                 ó.   — | j                   j                  S rQ   )rÑ   rt   r_   s    r*   rt   zExtrasCandidate.project_nameÚ  ó   € à�y‰y×%Ñ%Ð%r,   c                 óV   — t        | j                  j                  | j                  «      S rs   )r    rÑ   rt   r>   r_   s    r*   rO   zExtrasCandidate.nameÞ  s   € ô ˜4Ÿ9™9×1Ñ1°4·;±;Ó?Ð?r,   c                 ó.   — | j                   j                  S rQ   )rÑ   rH   r_   s    r*   rH   zExtrasCandidate.versionã  s   € à�y‰y× Ñ Ð r,   c                 óš   — dj                  | j                  j                  «       dj                  t	        | j
                  «      «      «      S )Nz{} [{}]z, )rÜ   rÑ   r}   rÝ   Úsortedr>   r_   s    r*   r}   z ExtrasCandidate.format_for_errorç  s9   € Ø×ÑØ�I‰I×&Ñ&Ó(¨$¯)©)´F¸4¿;¹;Ó4GÓ*Hó
ð 	
r,   c                 ó.   — | j                   j                  S rQ   )rÑ   rš   r_   s    r*   rš   zExtrasCandidate.is_installedì  rã   r,   c                 ó.   — | j                   j                  S rQ   )rÑ   rµ   r_   s    r*   rµ   zExtrasCandidate.is_editableð  ó   € à�y‰y×$Ñ$Ð$r,   c                 ó.   — | j                   j                  S rQ   )rÑ   rM   r_   s    r*   rM   zExtrasCandidate.source_linkô  rê   r,   rŠ   c              #   ó¬  K  — | j                   j                  }|j                  | j                   «      –— |sy | j                  j	                  | j                   j
                  j                  «       «      }| j                  j                  | j                   j
                  j                  «       «      }t        |«      D ]8  }t        j                  d| j                   j                  | j                  |«       Œ: | j                   j
                  j                  |«      D ]0  }|j                  t        |«      | j                   |«      E d {  –—†  Œ2 y 7 Œ­w)Nz%%s %s does not provide the extra '%s')rÑ   rT   Úmake_requirement_from_candidater>   ÚintersectionrE   r„   Ú
differencerç   r£   ÚwarningrO   rH   rƒ   r�   r;   rØ   )rZ   rŠ   rN   Úvalid_extrasÚinvalid_extrasÚextrar’   s          r*   rƒ   z!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                  ó   — y rQ   r�   r_   s    r*   r”   z'ExtrasCandidate.get_install_requirement  s   € ð r,   ) rf   r–   r—   r˜   ÚBaseCandidater   r;   r   r   r[   r`   rg   r›   rj   r   rœ   ro   r�   r   rt   rO   r   rH   r}   rš   rµ   r   rM   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                   óÈ   — e Zd ZdZdZdeeedf      ddfd„Zde	fd„Z
de	fd„Zedefd	„«       Zede	fd
„«       Zedefd„«       Zde	fd„Zdedeee      fd„Zdee   fd„Zy)ÚRequiresPythonCandidateFNÚpy_version_info.r&   c                 ó’   — |�t        |«      }nt        j                  d d }t        dj	                  d„ |D «       «      «      | _        y )Né   ú.c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrQ   )r;   )rÔ   Úcs     r*   rÕ   z3RequiresPythonCandidate.__init__.<locals>.<genexpr>$  s   è ø€ Ò(F°A¬¨Q¯Ñ(FùrÖ   )r   ÚsysÚversion_infor   rÝ   rW   )rZ   rø   rÿ   s      r*   r[   z RequiresPythonCandidate.__init__  s?   € ØÐ&Ü1°/ÓB‰Lä×+Ñ+¨B¨QÐ/ˆLÜ §¡Ñ(F¸Ô(FÓ FÓGˆ�r,   c                 ó    — d| j                   › �S ©NzPython ©rW   r_   s    r*   r`   zRequiresPythonCandidate.__str__*  s   € Ø˜Ÿ™˜Ð(Ð(r,   c                 óN   — | j                   j                  › d| j                  ›d�S rb   )re   rf   rW   r_   s    r*   rg   z RequiresPythonCandidate.__repr__-  s%   € Ø—.‘.×)Ñ)Ð*¨!¨D¯M©MÐ+<¸AÐ>Ð>r,   c                 ó   — t         S rQ   ©ÚREQUIRES_PYTHON_IDENTIFIERr_   s    r*   rt   z$RequiresPythonCandidate.project_name0  ó   € ä)Ð)r,   c                 ó   — t         S rQ   r  r_   s    r*   rO   zRequiresPythonCandidate.name4  r  r,   c                 ó   — | j                   S rQ   r  r_   s    r*   rH   zRequiresPythonCandidate.version8  s   € à�}‰}Ðr,   c                 ó    — d| j                   › �S r  )rH   r_   s    r*   r}   z(RequiresPythonCandidate.format_for_error<  s   € Ø˜Ÿ™˜Ð'Ð'r,   rŠ   c                  ó   — yrŒ   r�   )rZ   rŠ   s     r*   rƒ   z)RequiresPythonCandidate.iter_dependencies?  s   € Ør,   c                  ó   — y rQ   r�   r_   s    r*   r”   z/RequiresPythonCandidate.get_install_requirementB  rÍ   r,   )rf   r–   r—   rš   rM   r   r   r›   r[   r;   r`   rg   r�   r   rt   rO   r   rH   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   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!   Ú	getLoggerrf   r£   rõ   r  r+   rA   rD   rJ   rL   r$   r#   r"   rÐ   r÷   r�   r,   r*   ú<module>r     sF  ðÛ Û 
ß 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,   