Ë
    ¹?ioM  ã                   ó  — 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 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 jZ                  e.«      Z/e	d   Z0 e
ed«      Z1de(dee0   fd„Z2dede"de"fd„Z3dede"de"fd„Z4dede"de"fd„Z5 G d„ de(«      Z6 G d„ de6«      Z7 G d „ d!e6«      Z8 G d"„ d#e(«      Z9 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Ú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     ú€/home/cursorai/projects/django-cronjob-utils/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   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ÔØ€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)	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                 óº  — |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/   )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ð €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).
    rD   FNr,   Úsource_linkr?   Úfactoryr    ÚnamerG   r%   c                 ó�   — || _         || _        || _        || _        || _        || _        | j                  «       | _        d | _        y ©N)	Ú_linkÚ_source_linkÚ_factoryÚ_ireqÚ_nameÚ_versionÚ_preparerD   Ú_hash)Úselfr,   rL   r?   rM   rN   rG   s          r)   Ú__init__z+_InstallRequirementBackedCandidate.__init__�   sC   € ð ˆŒ
Ø'ˆÔØˆŒØˆŒ
ØˆŒ
ØˆŒØ—M‘M“OˆŒ	Ø$(ˆ�
r+   c                 ó8   — | j                   › d| j                  › �S )NÚ ©rN   rG   ©rY   s    r)   Ú__str__z*_InstallRequirementBackedCandidate.__str__¡   s   € Ø—)‘)�˜A˜dŸl™l˜^Ð,Ð,r+   c                 ó`   — | j                   j                  › dt        | j                  «      ›d�S ©NÚ(Ú))Ú	__class__Ú__name__r:   rQ   r^   s    r)   Ú__repr__z+_InstallRequirementBackedCandidate.__repr__¤   s)   € Ø—.‘.×)Ñ)Ð*¨!¬C°·
±
«OÐ+>¸aÐ@Ð@r+   c                 ó–   — | j                   �| j                   S t        | j                  | j                  f«      | _         | j                   S rP   )rX   Úhashrd   rQ   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'   rd   r   rQ   ©rY   rj   s     r)   Ú__eq__z)_InstallRequirementBackedCandidate.__eq__®   s(   € Ü�e˜TŸ^™^Ô,Ü# D§J¡J°·±Ó<Ð<Ør+   c                 ó   — | j                   S rP   )rR   r^   s    r)   rL   z._InstallRequirementBackedCandidate.source_link³   ó   € à× Ñ Ð r+   c                 óh   — | j                   €| j                  j                  | _         | j                   S ©z:The normalised name of the project the candidate refers to)rU   rD   rF   r^   s    r)   Úproject_namez/_InstallRequirementBackedCandidate.project_name·   s)   € ð �:‰:ÐØŸ™×1Ñ1ˆDŒJØ�z‰zÐr+   c                 ó   — | j                   S rP   ©rs   r^   s    r)   rN   z'_InstallRequirementBackedCandidate.name¾   rp   r+   c                 óh   — | j                   €| j                  j                  | _         | j                   S rP   ©rV   rD   rG   r^   s    r)   rG   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 rc   )rN   rG   rQ   Ú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.NrN   rG   )rU   rF   r   rT   rV   rG   r:   ÚlistÚiter_dependenciesÚiter_provided_extrasr   r   )rY   rD   Ú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   rT   r9   r   Úcontextr…   )rY   rD   r„   Úexcs       r)   rW   z+_InstallRequirementBackedCandidate._prepareé   s_   € ð	Ø×-Ñ-Ó/ˆDð 	×(Ñ(¨Ô.Øˆøô ò 	ð —J‘JˆAŒEØûÜ*ò 	à1ˆCŒKØûð	ús    ‚% ¥	A®A Á AÁAÁAÚwith_requiresc              #   ó*  K  — |r| j                   j                  «       nd}|D ]9  }| j                  j                  t	        |«      | j
                  «      E d {  –—†  Œ; | j                  j                  | j                   j                  «      –— y 7 Œ8­w©N© )rD   r‚   rS   Úmake_requirements_from_specr:   rT   Ú make_requires_python_requirementÚrequires_python)rY   r‰   ÚrequiresÚrs       r)   r‚   z4_InstallRequirementBackedCandidate.iter_dependenciesú   sm   è ø€ Ù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Á9Bc                 ó   — | j                   S rP   )rT   r^   s    r)   Úget_install_requirementz:_InstallRequirementBackedCandidate.get_install_requirement   s   € Ø�z‰zÐr+   ©NN)"re   Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__Úis_installedr   r   r   r   r   rZ   r:   r_   rf   Úintri   r   Úboolrn   ÚpropertyrL   rs   rN   rG   r|   r   r…   rW   r   r   r‚   r“   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                   ó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-   rM   r    rN   rG   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,   rL   r?   rM   rN   rG   )Úget_wheel_cache_entryÚloggerÚdebugr,   r@   Úis_wheelrz   r   Úfilenamer   rN   r   rG   Ú
persistentr<   Úcached_wheel_source_linkÚoriginÚdownload_infor   ÚsuperrZ   )rY   r,   r-   rM   rN   rG   rL   Úcache_entryr?   ÚwheelÚ
wheel_nameÚwheel_versionrd   s               €r)   rZ   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)rS   ÚpreparerÚprepare_linked_requirementrT   )rY   r±   s     r)   r   z#LinkCandidate._prepare_distribution8  s+   € Ø—=‘=×)Ñ)ˆØ×2Ñ2°4·:±:ÈtÐ2ÓTÐTr+   r”   ©re   r•   r–   Úis_editabler   r   r   r   r   rZ   r   r   Ú__classcell__©rd   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-   rM   r    rN   rG   r%   c                 óD   •— t         ‰| �  ||t        ||«      |||¬«       y )Nr    )rª   rZ   rC   )rY   r,   r-   rM   rN   rG   rd   s         €r)   rZ   zEditableCandidate.__init__@  s0   ø€ ô 	‰ÑØØÜ/°°hÓ?ØØØð 	õ 	
r+   c                 ó`   — | j                   j                  j                  | j                  «      S rP   )rS   r±   Úprepare_editable_requirementrT   r^   s    r)   r   z'EditableCandidate._prepare_distributionQ  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!   TNrD   r-   rM   r    r%   c                 ó    — || _         t        ||«      | _        || _        d | _        d}|j
                  j                  | j                  |«       y )Nzalready satisfied)rD   rI   rT   rS   rV   r±   Úprepare_installed_requirement)rY   rD   r-   rM   Úskip_reasons        r)   rZ   z"AlreadyInstalledCandidate.__init__Y  sH   € ð ˆŒ	Ü0°°xÓ@ˆŒ
ØˆŒØˆŒð *ˆØ×Ñ×6Ñ6°t·z±zÀ;ÕOr+   c                 ó,   — t        | j                  «      S rP   )r:   rD   r^   s    r)   r_   z!AlreadyInstalledCandidate.__str__k  s   € Ü�4—9‘9‹~Ðr+   c                 óN   — | j                   j                  › d| j                  ›d�S ra   )rd   re   rD   r^   s    r)   rf   z"AlreadyInstalledCandidate.__repr__n  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯I©I¨=¸Ð:Ð:r+   rj   c                 ó–   — t        |t        «      st        S | j                  |j                  k(  xr | j                  |j                  k(  S rP   )r'   r!   ÚNotImplementedrN   rG   rm   s     r)   rn   z AlreadyInstalledCandidate.__eq__q  s8   € Ü˜%Ô!:Ô;Ü!Ð!Ø�y‰y˜EŸJ™JÑ&ÒH¨4¯<©<¸5¿=¹=Ñ+HÐHr+   c                 óD   — t        | j                  | j                  f«      S rP   )rh   rN   rG   r^   s    r)   ri   z"AlreadyInstalledCandidate.__hash__v  s   € Ü�T—Y‘Y §¡Ð-Ó.Ð.r+   c                 ó.   — | j                   j                  S rP   )rD   rF   r^   s    r)   rs   z&AlreadyInstalledCandidate.project_namey  s   € à�y‰y×'Ñ'Ð'r+   c                 ó   — | j                   S rP   ru   r^   s    r)   rN   zAlreadyInstalledCandidate.name}  rp   r+   c                 óh   — | j                   €| j                  j                  | _         | j                   S rP   rw   r^   s    r)   rG   z!AlreadyInstalledCandidate.version�  rx   r+   c                 ó.   — | j                   j                  S rP   )rD   r8   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 Œ­wrP   )rD   r‚   rS   r�   r:   rT   )rY   r‰   r‘   s      r)   r‚   z+AlreadyInstalledCandidate.iter_dependenciesŽ  sH   è ø€ ÙØØ—‘×,Ñ,Ö.ˆAØ—}‘}×@Ñ@ÄÀQÃÈÏÉÓT×TÑTñ /ØTús   ‚AAÁAÁAc                  ó   — y rP   rŒ   r^   s    r)   r“   z1AlreadyInstalledCandidate.get_install_requirement”  ó   € Ør+   )re   r•   r–   r™   rL   r   r   rZ   r:   r_   rf   Úobjectr›   rn   rš   ri   rœ   r   rs   rN   r   rG   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            	       ó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)r1   Úbaser=   r1   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rP   )r   )Ú.0r„   s     r)   Ú	<genexpr>z+ExtrasCandidate.__init__.<locals>.<genexpr>Á  s   è ø€ ÐE¹f¸Ô 1°!× 4¹fùó   ‚N)rÏ   Ú	frozensetr=   rT   Ú_comes_from)rY   rÏ   r=   r1   s       r)   rZ   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=   )rY   rN   Ú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=rc   )rd   re   rÏ   r=   r^   s    r)   rf   zExtrasCandidate.__repr__È  s/   € Ø—.‘.×)Ñ)Ð*¨&°·±°¸YÀtÇ{Á{ÀoÐUVÐWÐWr+   c                 óD   — t        | j                  | j                  f«      S rP   )rh   rÏ   r=   r^   s    r)   ri   zExtrasCandidate.__hash__Ë  s   € Ü�T—Y‘Y §¡Ð,Ó-Ð-r+   rj   c                 ó˜   — t        || j                  «      r4| j                  |j                  k(  xr | j                  |j                  k(  S yrl   )r'   rd   rÏ   r=   rm   s     r)   rn   zExtrasCandidate.__eq__Î  s8   € Ü�e˜TŸ^™^Ô,Ø—9‘9 §
¡
Ñ*ÒJ¨t¯{©{¸e¿l¹lÑ/JÐJØr+   c                 ó.   — | j                   j                  S rP   )rÏ   rs   r^   s    r)   rs   zExtrasCandidate.project_nameÓ  ó   € à�y‰y×%Ñ%Ð%r+   c                 óV   — t        | j                  j                  | j                  «      S rr   )r   rÏ   rs   r=   r^   s    r)   rN   zExtrasCandidate.name×  s   € ô ˜4Ÿ9™9×1Ñ1°4·;±;Ó?Ð?r+   c                 ó.   — | j                   j                  S rP   )rÏ   rG   r^   s    r)   rG   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 rP   )rÏ   r™   r^   s    r)   r™   zExtrasCandidate.is_installedå  rá   r+   c                 ó.   — | j                   j                  S rP   )rÏ   r´   r^   s    r)   r´   zExtrasCandidate.is_editableé  ó   € à�y‰y×$Ñ$Ð$r+   c                 ó.   — | j                   j                  S rP   )rÏ   rL   r^   s    r)   rL   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Ï   rS   Úmake_requirement_from_candidater=   ÚintersectionrD   rƒ   Ú
differencerå   r¢   ÚwarningrN   rG   r‚   r�   r:   rÖ   )rY   r‰   rM   Ú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 rP   rŒ   r^   s    r)   r“   z'ExtrasCandidate.get_install_requirement  s   € ð r+   ) re   r•   r–   r—   ÚBaseCandidater   r:   r   r   rZ   r_   rf   rš   ri   r   r›   rn   rœ   r   rs   rN   r   rG   r|   r™   r´   r   rL   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
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rP   )r:   )rÒ   Úcs     r)   rÓ   z3RequiresPythonCandidate.__init__.<locals>.<genexpr>  s   è ø€ Ð(F¹°A¬¨Q¯¹ùrÔ   )r   ÚsysÚversion_infor   rÛ   rV   )rY   rö   rý   s      r)   rZ   z RequiresPythonCandidate.__init__  s?   € ØÐ&Ü1°/ÓB‰Lä×+Ñ+¨B¨QÐ/ˆLÜ §¡Ñ(F¹Ó(FÓ FÓGˆ�r+   c                 ó    — d| j                   › �S ©NzPython ©rV   r^   s    r)   r_   zRequiresPythonCandidate.__str__#  s   € Ø˜Ÿ™˜Ð(Ð(r+   c                 ó   — t         S rP   ©ÚREQUIRES_PYTHON_IDENTIFIERr^   s    r)   rs   z$RequiresPythonCandidate.project_name&  ó   € ä)Ð)r+   c                 ó   — t         S rP   r  r^   s    r)   rN   zRequiresPythonCandidate.name*  r  r+   c                 ó   — | j                   S rP   r   r^   s    r)   rG   zRequiresPythonCandidate.version.  s   € à�}‰}Ðr+   c                 ó    — d| j                   › �S rÿ   )rG   r^   s    r)   r|   z(RequiresPythonCandidate.format_for_error2  s   € Ø˜Ÿ™˜Ð'Ð'r+   r‰   c                  ó   — yr‹   rŒ   )rY   r‰   s     r)   r‚   z)RequiresPythonCandidate.iter_dependencies5  s   € Ør+   c                  ó   — y rP   rŒ   r^   s    r)   r“   z/RequiresPythonCandidate.get_install_requirement8  rË   r+   )re   r•   r–   r™   rL   r   r   rš   rZ   r:   r_   rœ   r   rs   rN   r   rG   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   rM   r    Ú	getLoggerre   r¢   ró   r  r*   r@   rC   rI   rK   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ðàóô0E¨ô EôP6UÐ6ô 6UôrOÐ:ô Oô0@ 	ô @ôFy�iô yôx%˜iõ %r+   