Ë
    ‡™hðN  ã                  ó  — d dl mZ d dlZd dlZd dlmZ d dl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%d„Z3	 	 	 	 	 	 d&d„Z4	 	 	 	 	 	 d&d„Z5	 	 	 	 	 	 d'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)(é    )Ú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                óB   — t         t        t        f}t        | |«      r| S y)z%The runtime version of BaseCandidate.N)r    r!   r"   Ú
isinstance)Ú	candidateÚbase_candidate_classess     úo/home/bbl/html/w1hd-tracker/venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.pyÚas_base_candidater(   /   s+   € ô 	"ÜÜðÐô
 �)Ð3Ô4ØÐØó    c                ó¢  — |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   r,   r-   r.   r/   r0   r1   r2   r3   Úoriginal_linkÚlinkÚextras)r9   ÚtemplateÚlineÚireqs       r'   Úmake_install_req_from_linkr>   ;   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)	r,   r-   r.   r/   r0   Úpermit_editable_wheelsr1   r2   r3   )r4   r   r7   r,   r-   r.   r/   r0   r@   r1   r2   r3   r:   )r9   r;   r=   s      r'   Úmake_install_req_from_editablerA   T   s�   € ð ×ÒÐ5Ð5Ó5ÐÜ$Ø�‰Ø×,Ñ,Ø×&Ñ&Ø×&Ñ&Ø×"Ñ"Ø×&Ñ&Ø'×>Ñ>Ø×.Ñ.Ø×*Ñ*Ø ×0Ñ0ô€Dð —/‘/€D„KØ€Kr)   c                óº  — |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==r+   )r5   r6   r9   Úcanonical_namer7   Úversionr   r,   r-   r.   r/   r0   r1   r2   r3   Úsatisfied_by)Údistr;   r<   r=   s       r'   Ú_make_install_req_from_distrG   h   sÁ   € ð ‡|‚|Ü�8—<‘<Ó ‰Ø	�ŠØ×%Ñ%Ð& c¨(¯-©-×*;Ñ*;Ð)<Ð=‰à×%Ñ%Ð& b¨¯©¨Ð7ˆÜ ØØ×,Ñ,Ø×&Ñ&Ø×&Ñ&Ø×"Ñ"Ø×&Ñ&Ø×.Ñ.Ø×*Ñ*Ø ×0Ñ0ô
€Dð €DÔØ€Kr)   c                  óà   — e Zd ZU dZded<   dZ	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd	„Z	dd
„Z
edd„«       Zedd„«       Zedd„«       Zedd„«       Zdd„Zdd„Zdd„Zdd„Zdd„Zd 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).
    r   rF   FNc                ó�   — || _         || _        || _        || _        || _        || _        | j                  «       | _        d | _        y ©N)	Ú_linkÚ_source_linkÚ_factoryÚ_ireqÚ_nameÚ_versionÚ_preparerF   Ú_hash)Úselfr9   Úsource_linkr=   ÚfactoryÚnamerD   s          r'   Ú__init__z+_InstallRequirementBackedCandidate.__init__“   sC   € ð ˆŒ
Ø'ˆÔØˆŒØˆŒ
ØˆŒ
ØˆŒØ—M‘M“OˆŒ	Ø!%ˆ�
r)   c                ó8   — | j                   › d| j                  › �S )Nú ©rW   rD   ©rT   s    r'   Ú__str__z*_InstallRequirementBackedCandidate.__str__¥   s   € Ø—)‘)�˜A˜dŸl™l˜^Ð,Ð,r)   c                ó`   — | j                   j                  › dt        | j                  «      ›d�S ©Nú(ú))Ú	__class__Ú__name__r6   rL   r\   s    r'   Ú__repr__z+_InstallRequirementBackedCandidate.__repr__¨   s)   € Ø—.‘.×)Ñ)Ð*¨!¬C°·
±
«OÐ+>¸aÐ@Ð@r)   c                ó–   — | j                   �| j                   S t        | j                  | j                  f«      | _         | j                   S rK   )rS   Úhashrb   rL   r\   s    r'   Ú__hash__z+_InstallRequirementBackedCandidate.__hash__«   s9   € Ø�:‰:Ð!Ø—:‘:Ðä˜4Ÿ>™>¨4¯:©:Ð6Ó7ˆŒ
Ø�z‰zÐr)   c                óp   — t        || j                  «      r t        | j                  |j                  «      S y©NF)r$   rb   r   rL   ©rT   Úothers     r'   Ú__eq__z)_InstallRequirementBackedCandidate.__eq__²   s(   € Ü�e˜TŸ^™^Ô,Ü# D§J¡J°·±Ó<Ð<Ør)   c                ó   — | j                   S rK   )rM   r\   s    r'   rU   z._InstallRequirementBackedCandidate.source_link·   ó   € à× Ñ Ð r)   c                óh   — | j                   €| j                  j                  | _         | j                   S ©z:The normalised name of the project the candidate refers to)rP   rF   rC   r\   s    r'   Úproject_namez/_InstallRequirementBackedCandidate.project_name»   s)   € ð �:‰:ÐØŸ™×1Ñ1ˆDŒJØ�z‰zÐr)   c                ó   — | j                   S rK   ©rq   r\   s    r'   rW   z'_InstallRequirementBackedCandidate.nameÂ   rn   r)   c                óh   — | j                   €| j                  j                  | _         | j                   S rK   ©rQ   rF   rD   r\   s    r'   rD   z*_InstallRequirementBackedCandidate.versionÆ   ó'   € à�=‰=Ð Ø ŸI™I×-Ñ-ˆDŒMØ�}‰}Ðr)   c                ó²   — | j                   › d| j                  › d| j                  j                  r| j                  j                  › d�S | j                  › d�S )NrZ   z (from ra   )rW   rD   rL   Ú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.NrW   rD   )rP   rC   r   rO   rQ   rD   r6   ÚlistÚiter_dependenciesÚiter_provided_extrasr	   r   )rT   rF   Ú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   rO   r5   r   Úcontextrƒ   )rT   rF   r‚   Úexcs       r'   rR   z+_InstallRequirementBackedCandidate._prepareí   s_   € ð	Ø×-Ñ-Ó/ˆDð 	×(Ñ(¨Ô.Øˆøô ò 	ð —J‘JˆAŒEØûÜ*ò 	à1ˆCŒKØûð	ús    ‚% ¥	A®A Á AÁAÁAc              #  ó*  K  — | j                   j                  | j                  j                  «      –— |r| j                  j	                  «       nd}|D ]9  }| j                   j                  t        |«      | j                  «      E d {  –—†  Œ; y 7 Œ­w©N© )rN   Ú make_requires_python_requirementrF   Úrequires_pythonr€   Úmake_requirements_from_specr6   rO   )rT   Úwith_requiresÚ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 rK   )rO   r\   s    r'   Úget_install_requirementz:_InstallRequirementBackedCandidate.get_install_requirement  s   € Ø�z‰zÐr)   ©NN)r9   r   rU   r   r=   r   rV   r   rW   úNormalizedName | NonerD   úVersion | NoneÚreturnÚNone©r•   r6   ©r•   Úint©rk   r   r•   Úbool©r•   zLink | None©r•   r
   ©r•   r   ©r•   r   )rF   r   r•   r–   ©r�   r›   r•   zIterable[Requirement | None]©r•   úInstallRequirement | None)rc   Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__Úis_installedrX   r]   rd   rg   rl   ÚpropertyrU   rq   rW   rD   rz   r}   rƒ   rR   r€   r‘   r‰   r)   r'   rI   rI   €   sé   … ñð ÓØ€Lð '+Ø"&ð&àð&ð ð&ð !ð	&ð
 ð&ð $ð&ð  ð&ð 
ó&ó$-óAóóð
 ò!ó ð!ð òó ðð ò!ó ð!ð òó ðó

ó:ó6ó0ó"Uôr)   rI   c                  óH   ‡ — e Zd ZdZ	 	 d	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Zˆ xZS )r"   Fc                ó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©r9   rU   r=   rV   rW   rD   )Úget_wheel_cache_entryÚloggerÚdebugr9   r>   Úis_wheelrx   r   Úfilenamer   rW   r   rD   Ú
persistentr8   Úcached_wheel_source_linkÚoriginÚdownload_infor   ÚsuperrX   )rT   r9   r;   rV   rW   rD   rU   Úcache_entryr=   ÚwheelÚ
wheel_nameÚwheel_versionrb   s               €r'   rX   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)rN   ÚpreparerÚprepare_linked_requirementrO   )rT   r½   s     r'   r}   z#LinkCandidate._prepare_distribution>  s+   € Ø—=‘=×)Ñ)ˆØ×2Ñ2°4·:±:ÈtÐ2ÓTÐTr)   r’   ©r9   r   r;   r   rV   r   rW   r“   rD   r”   r•   r–   rŸ   ©rc   r£   r¤   Úis_editablerX   r}   Ú__classcell__©rb   s   @r'   r"   r"   
  sV   ø„ Ø€Kð '+Ø"&ð/
àð/
ð %ð/
ð ð	/
ð
 $ð/
ð  ð/
ð 
õ/
÷bUr)   r"   c                  óH   ‡ — e Zd ZdZ	 	 d	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Zˆ xZS )r!   Tc                óD   •— t         ‰| �  ||t        ||«      |||¬«       y )Nr¬   )r¶   rX   rA   )rT   r9   r;   rV   rW   rD   rb   s         €r'   rX   zEditableCandidate.__init__F  s0   ø€ ô 	‰ÑØØÜ/°°hÓ?ØØØð 	õ 	
r)   c                ó`   — | j                   j                  j                  | j                  «      S rK   )rN   r½   Úprepare_editable_requirementrO   r\   s    r'   r}   z'EditableCandidate._prepare_distributionW  s!   € Ø�}‰}×%Ñ%×BÑBÀ4Ç:Á:ÓNÐNr)   r’   r¿   rŸ   rÀ   rÃ   s   @r'   r!   r!   C  sU   ø„ Ø€Kð '+Ø"&ð
àð
ð %ð
ð ð	
ð
 $ð
ð  ð
ð 
õ
÷"Or)   r!   c                  ó¬   — e Zd ZdZdZ	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Z	e
dd„«       Ze
dd	„«       Ze
dd
„«       Ze
dd„«       Zdd„Zdd„Zdd„Zy)r    TNc                ó    — || _         t        ||«      | _        || _        d | _        d}|j
                  j                  | j                  |«       y )Nzalready satisfied)rF   rG   rO   rN   rQ   r½   Úprepare_installed_requirement)rT   rF   r;   rV   Úskip_reasons        r'   rX   z"AlreadyInstalledCandidate.__init___  sH   € ð ˆŒ	Ü0°°xÓ@ˆŒ
ØˆŒØˆŒð *ˆØ×Ñ×6Ñ6°t·z±zÀ;ÕOr)   c                ó,   — t        | j                  «      S rK   )r6   rF   r\   s    r'   r]   z!AlreadyInstalledCandidate.__str__q  s   € Ü�4—9‘9‹~Ðr)   c                óN   — | j                   j                  › d| j                  ›d�S r_   )rb   rc   rF   r\   s    r'   rd   z"AlreadyInstalledCandidate.__repr__t  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯I©I¨=¸Ð:Ð:r)   c                ó–   — t        |t        «      st        S | j                  |j                  k(  xr | j                  |j                  k(  S rK   )r$   r    ÚNotImplementedrW   rD   rj   s     r'   rl   z AlreadyInstalledCandidate.__eq__w  s8   € Ü˜%Ô!:Ô;Ü!Ð!Ø�y‰y˜EŸJ™JÑ&ÒH¨4¯<©<¸5¿=¹=Ñ+HÐHr)   c                óD   — t        | j                  | j                  f«      S rK   )rf   rW   rD   r\   s    r'   rg   z"AlreadyInstalledCandidate.__hash__|  s   € Ü�T—Y‘Y §¡Ð-Ó.Ð.r)   c                ó.   — | j                   j                  S rK   )rF   rC   r\   s    r'   rq   z&AlreadyInstalledCandidate.project_name  s   € à�y‰y×'Ñ'Ð'r)   c                ó   — | j                   S rK   rs   r\   s    r'   rW   zAlreadyInstalledCandidate.nameƒ  rn   r)   c                óh   — | j                   €| j                  j                  | _         | j                   S rK   ru   r\   s    r'   rD   z!AlreadyInstalledCandidate.version‡  rv   r)   c                ó.   — | j                   j                  S rK   )rF   r4   r\   s    r'   rÁ   z%AlreadyInstalledCandidate.is_editable�  s   € à�y‰y×!Ñ!Ð!r)   c                ó:   — | j                   › d| j                  › d�S )NrZ   z (Installed)r[   r\   s    r'   rz   z*AlreadyInstalledCandidate.format_for_error‘  s   € Ø—)‘)�˜A˜dŸl™l˜^¨<Ð8Ð8r)   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)rF   Úinvalid_exc)rF   r€   rN   rŒ   r6   rO   r	   r   )rT   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 rK   r‰   r\   s    r'   r‘   z1AlreadyInstalledCandidate.get_install_requirementž  ó   € Ør)   )rF   r   r;   r   rV   r   r•   r–   r—   )rk   Úobjectr•   r›   r˜   r�   rž   ©r•   r›   r    r¡   )rc   r£   r¤   r§   rU   rX   r]   rd   rl   rg   r¨   rq   rW   rD   rÁ   rz   r€   r‘   r‰   r)   r'   r    r    [  s±   „ Ø€LØ€KðPàðPð %ðPð ð	Pð
 
óPó$ó;óIó
/ð ò(ó ð(ð ò!ó ð!ð òó ðð
 ò"ó ð"ó9óUôr)   r    c                  óÐ   — e Zd ZdZddœ	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Ze	dd	„«       Z
e	dd
„«       Ze	dd„«       Zdd„Ze	dd„«       Ze	dd„«       Ze	dd„«       Zdd„Zd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)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rK   )r   )Ú.0r‚   s     r'   ú	<genexpr>z+ExtrasCandidate.__init__.<locals>.<genexpr>Ë  s   è ø€ ÒE¸Ô 1°!× 4ÑEùó   ‚N)ÚbaseÚ	frozensetr:   rO   Ú_comes_from)rT   rã   r:   r-   s       r'   rX   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 )NrZ   r   z	{}[{}] {}ú,)r6   rã   ÚsplitÚformatÚjoinr:   )rT   rW   Ú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=ra   )rb   rc   rã   r:   r\   s    r'   rd   zExtrasCandidate.__repr__Ò  s/   € Ø—.‘.×)Ñ)Ð*¨&°·±°¸YÀtÇ{Á{ÀoÐUVÐWÐWr)   c                óD   — t        | j                  | j                  f«      S rK   )rf   rã   r:   r\   s    r'   rg   zExtrasCandidate.__hash__Õ  s   € Ü�T—Y‘Y §¡Ð,Ó-Ð-r)   c                ó˜   — t        || j                  «      r4| j                  |j                  k(  xr | j                  |j                  k(  S yri   )r$   rb   rã   r:   rj   s     r'   rl   zExtrasCandidate.__eq__Ø  s8   € Ü�e˜TŸ^™^Ô,Ø—9‘9 §
¡
Ñ*ÒJ¨t¯{©{¸e¿l¹lÑ/JÐJØr)   c                ó.   — | j                   j                  S rK   )rã   rq   r\   s    r'   rq   zExtrasCandidate.project_nameÝ  ó   € à�y‰y×%Ñ%Ð%r)   c                óV   — t        | j                  j                  | j                  «      S rp   )r   rã   rq   r:   r\   s    r'   rW   zExtrasCandidate.nameá  s   € ô ˜4Ÿ9™9×1Ñ1°4·;±;Ó?Ð?r)   c                ó.   — | j                   j                  S rK   )rã   rD   r\   s    r'   rD   zExtrasCandidate.versionæ  s   € à�y‰y× Ñ Ð r)   c                óš   — dj                  | j                  j                  «       dj                  t	        | j
                  «      «      «      S )Nz{} [{}]z, )ré   rã   rz   rê   Úsortedr:   r\   s    r'   rz   z ExtrasCandidate.format_for_errorê  s9   € Ø×ÑØ�I‰I×&Ñ&Ó(¨$¯)©)´F¸4¿;¹;Ó4GÓ*Hó
ð 	
r)   c                ó.   — | j                   j                  S rK   )rã   r§   r\   s    r'   r§   zExtrasCandidate.is_installedï  rð   r)   c                ó.   — | j                   j                  S rK   )rã   rÁ   r\   s    r'   rÁ   zExtrasCandidate.is_editableó  ó   € à�y‰y×$Ñ$Ð$r)   c                ó.   — | j                   j                  S rK   )rã   rU   r\   s    r'   rU   zExtrasCandidate.source_link÷  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ã   rN   Úmake_requirement_from_candidater:   ÚintersectionrF   r�   Ú
differencerô   r®   ÚwarningrW   rD   r€   rŒ   r6   rå   )rT   r�   rV   Ú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 rK   r‰   r\   s    r'   r‘   z'ExtrasCandidate.get_install_requirement  s   € ð r)   )rã   ÚBaseCandidater:   zfrozenset[str]r-   r¢   r•   r–   r—   r˜   rš   r�   rž   rÛ   rœ   r    r¡   )rc   r£   r¤   r¥   rX   r]   rd   rg   rl   r¨   rq   rW   rD   rz   r§   rÁ   rU   r€   r‘   r‰   r)   r'   rÝ   rÝ   ¢  sÛ   „ ñð: 15ñUàðUð ðUð
 .ðUð 
óUó&EóXó.óð
 ò&ó ð&ð ò@ó ð@ð ò!ó ð!ó
ð
 ò&ó ð&ð ò%ó ð%ð ò%ó ð%óô8r)   rÝ   c                  óz   — e Zd ZdZdZdd„Zdd„Zdd„Zedd„«       Z	edd„«       Z
edd„«       Zdd	„Zdd
„Zdd„Zy)ÚRequiresPythonCandidateFNc                ó’   — |�t        |«      }nt        j                  d d }t        dj	                  d„ |D «       «      «      | _        y )Né   ú.c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrK   )r6   )rà   Úcs     r'   rá   z3RequiresPythonCandidate.__init__.<locals>.<genexpr>'  s   è ø€ Ò(F°A¬¨Q¯Ñ(Fùrâ   )r   ÚsysÚversion_infor   rê   rQ   )rT   Úpy_version_infor  s      r'   rX   z RequiresPythonCandidate.__init__"  s?   € ØÐ&Ü1°/ÓB‰Lä×+Ñ+¨B¨QÐ/ˆLÜ §¡Ñ(F¸Ô(FÓ FÓGˆ�r)   c                ó    — d| j                   › �S ©NzPython ©rQ   r\   s    r'   r]   zRequiresPythonCandidate.__str__-  s   € Ø˜Ÿ™˜Ð(Ð(r)   c                óN   — | j                   j                  › d| j                  ›d�S r_   )rb   rc   rQ   r\   s    r'   rd   z RequiresPythonCandidate.__repr__0  s%   € Ø—.‘.×)Ñ)Ð*¨!¨D¯M©MÐ+<¸AÐ>Ð>r)   c                ó   — t         S rK   ©ÚREQUIRES_PYTHON_IDENTIFIERr\   s    r'   rq   z$RequiresPythonCandidate.project_name3  ó   € ä)Ð)r)   c                ó   — t         S rK   r  r\   s    r'   rW   zRequiresPythonCandidate.name7  r  r)   c                ó   — | j                   S rK   r  r\   s    r'   rD   zRequiresPythonCandidate.version;  s   € à�}‰}Ðr)   c                ó    — d| j                   › �S r  )rD   r\   s    r'   rz   z(RequiresPythonCandidate.format_for_error?  s   € Ø˜Ÿ™˜Ð'Ð'r)   c                 ó   — yrˆ   r‰   )rT   r�   s     r'   r€   z)RequiresPythonCandidate.iter_dependenciesB  s   € Ør)   c                 ó   — y rK   r‰   r\   s    r'   r‘   z/RequiresPythonCandidate.get_install_requirementE  rÙ   r)   )r  ztuple[int, ...] | Noner•   r–   r—   r�   rž   r    r¡   )rc   r£   r¤   r§   rU   rX   r]   rd   r¨   rq   rW   rD   rz   r€   r‘   r‰   r)   r'   r  r    sg   „ Ø€LØ€KóHó)ó?ð ò*ó ð*ð ò*ó ð*ð òó ðó(óôr)   r  )r%   r   r•   zBaseCandidate | None)r9   r   r;   r   r•   r   )rF   r   r;   r   r•   r   )=Ú
__future__r   Úloggingr
  Úcollections.abcr   Útypingr   r   r   r   Ú"pip._vendor.packaging.requirementsr	   Úpip._vendor.packaging.utilsr
   r   Úpip._vendor.packaging.versionr   Úpip._internal.exceptionsr   r   r   r   r   Ú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   rV   r   Ú	getLoggerrc   r®   r  r  r(   r>   rA   rG   rI   r"   r!   r    rÝ   r  r‰   r)   r'   ú<module>r*     s6  ðÝ "ã Û 
Ý $ß 2Ó 2å Aß IÝ 1÷õ õ 4ß <Ý ,÷õ =Ý GÝ ;ç 5Ñ 5áÝ à	ˆ×	Ñ	˜8Ó	$€àðñ€ñ " .Ð2QÓRÐ ó	ðØ
ðØ,ðàóð2Ø
ðØ,ðàóð(Ø
ðØ&8ðàóô0G¨ô GôT6UÐ6ô 6UôrOÐ:ô Oô0D 	ô DôNy�iô yôx(˜iõ (r)   