§
    ŠäMfJ  ã                   ó:  — 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mZ d dlmZ d dl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'm(Z( erddl)m*Z*  e j+        e,¦  «        Z-e	d         Z. e
ed¦  «        Z/de%dee.         fd„Z0dededefd„Z1dededefd„Z2dededefd„Z3 G d„ de%¦  «        Z4 G d„ de4¦  «        Z5 G d„ d e4¦  «        Z6 G d!„ d"e%¦  «        Z7 G d#„ d$e%¦  «        Z8 G d%„ d&e%¦  «        Z9dS )'é    N)ÚTYPE_CHECKINGÚAnyÚ	FrozenSetÚIterableÚOptionalÚTupleÚUnionÚcast)ÚNormalizedNameÚcanonicalize_name)ÚVersion)Ú	HashErrorÚInstallationSubprocessErrorÚMetadataInconsistent)ÚBaseDistribution)ÚLinkÚlinks_equivalent)ÚWheel)Úinstall_req_from_editableÚinstall_req_from_line)ÚInstallRequirement)Údirect_url_from_link)Únormalize_version_infoé   )Ú	CandidateÚCandidateVersionÚRequirementÚformat_name)ÚFactory)ÚAlreadyInstalledCandidateÚEditableCandidateÚLinkCandidatez<Python from Requires-Python>Ú	candidateÚreturnc                 óR   — t           t          t          f}t          | |¦  «        r| S dS )z%The runtime version of BaseCandidate.N)r    r!   r"   Ú
isinstance)r#   Úbase_candidate_classess     úmC:\Users\psant\Downloads\sloar back\myenv\Lib\site-packages\pip/_internal/resolution/resolvelib/candidates.pyÚas_base_candidater)   )   s5   € õ 	"ÝÝðÐõ
 �)Ð3Ñ4Ô4ð ØÐØˆ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   r/   r0   r1   r2   r3   r4   r5   r6   Úoriginal_linkr+   Úextras)r+   r,   ÚlineÚireqs       r(   Úmake_install_req_from_linkr?   5   s§   € ð Ô Ð8Ð8Ð"8Ñ8Ô8Ð8Ø„|ð Ý�8”<Ñ Ô ˆˆàŒxˆÝ ØØÔ,ØÔ&ØÔ&ØÔ"ØÔ&ØÔ.ØÔ*Ø Ô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/   r0   r1   r2   r3   Úpermit_editable_wheelsr4   r5   r6   )r7   r   r:   r/   r0   r1   r2   r3   rA   r4   r5   r6   r<   )r+   r,   r>   s      r(   Úmake_install_req_from_editablerB   N   s{   € ð ÔÐ5Ð5Ð5Ñ5Ô5Ð5Ý$ØŒØÔ,ØÔ&ØÔ&ØÔ"ØÔ&Ø'Ô>ØÔ.ØÔ*Ø Ô0ðñ ô €Dð ”/€D„KØ€Kr*   Údistc                 ó*  — |j         rt          |j         ¦  «        }n/|j        r| j        › d|j        j        › �}n| j        › d| j        › �}t          ||j        |j        |j	        |j
        |j        |j        |j        |j        ¬¦	  «	        }| |_        |S )Nz @ z==r.   )r8   r9   r+   Úcanonical_namer:   Úversionr   r/   r0   r1   r2   r3   r4   r5   r6   Úsatisfied_by)rC   r,   r=   r>   s       r(   Ú_make_install_req_from_distrH   b   s´   € ð „|ð 8Ý�8”<Ñ Ô ˆˆØ	Œð 8ØÔ%Ð=Ð=¨(¬-Ô*;Ð=Ð=ˆˆàÔ%Ð7Ð7¨¬Ð7Ð7ˆÝ ØØÔ,ØÔ&ØÔ&ØÔ"ØÔ&ØÔ.ØÔ*Ø Ô0ð
ñ 
ô 
€Dð €DÔØ€Kr*   c                   óˆ  — 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!dS )Ú"_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).
    rC   FNr+   Úsource_linkr>   Úfactoryr   ÚnamerF   r$   c                 óŒ   — || _         || _        || _        || _        || _        || _        |                      ¦   «         | _        d S ©N)Ú_linkÚ_source_linkÚ_factoryÚ_ireqÚ_nameÚ_versionÚ_preparerC   )Úselfr+   rK   r>   rL   rM   rF   s          r(   Ú__init__z+_InstallRequirementBackedCandidate.__init__�   sB   € ð ˆŒ
Ø'ˆÔØˆŒØˆŒ
ØˆŒ
ØˆŒØ—M’M‘O”OˆŒ	ˆ	ˆ	r*   c                 ó$   — | j         › d| j        › �S )Nú ©rM   rF   ©rW   s    r(   Ú__str__z*_InstallRequirementBackedCandidate.__str__ž   s   € Ø”)Ð,Ð,˜dœlÐ,Ð,Ð,r*   c                 óh   — d                      | j        j        t          | j        ¦  «        ¬¦  «        S )Nz{class_name}({link!r}))Ú
class_namer+   )ÚformatÚ	__class__Ú__name__r9   rP   r\   s    r(   Ú__repr__z+_InstallRequirementBackedCandidate.__repr__¡   s2   € Ø'×.Ò.Ø”~Ô.Ý�T”Z‘”ð /ñ 
ô 
ð 	
r*   c                 ó8   — t          | j        | j        f¦  «        S rO   )Úhashra   rP   r\   s    r(   Ú__hash__z+_InstallRequirementBackedCandidate.__hash__§   s   € Ý�T”^ T¤ZÐ0Ñ1Ô1Ð1r*   Úotherc                 ód   — t          || j        ¦  «        rt          | j        |j        ¦  «        S dS ©NF)r&   ra   r   rP   ©rW   rg   s     r(   Ú__eq__z)_InstallRequirementBackedCandidate.__eq__ª   s/   € Ý�e˜Tœ^Ñ,Ô,ð 	=Ý# D¤J°´Ñ<Ô<Ð<Øˆur*   c                 ó   — | j         S rO   )rQ   r\   s    r(   rK   z._InstallRequirementBackedCandidate.source_link¯   ó   € àÔ Ð r*   c                 ó@   — | j         €| j        j        | _         | j         S ©z:The normalised name of the project the candidate refers to)rT   rC   rE   r\   s    r(   Úproject_namez/_InstallRequirementBackedCandidate.project_name³   s    € ð Œ:ÐØœÔ1ˆDŒJØŒzÐr*   c                 ó   — | j         S rO   ©rp   r\   s    r(   rM   z'_InstallRequirementBackedCandidate.nameº   rm   r*   c                 ó@   — | j         €| j        j        | _         | j         S rO   ©rU   rC   rF   r\   s    r(   rF   z*_InstallRequirementBackedCandidate.version¾   ó   € àŒ=Ð Ø œIÔ-ˆDŒMØŒ}Ðr*   c                 ó~   — d                      | j        | j        | j        j        r| j        j        n| j        ¦  «        S )Nz{} {} (from {}))r`   rM   rF   rP   Úis_fileÚ	file_pathr\   s    r(   Úformat_for_errorz3_InstallRequirementBackedCandidate.format_for_errorÄ   s=   € Ø ×'Ò'ØŒIØŒLØ$(¤JÔ$6ÐFˆDŒJÔ Ð ¸D¼Jñ
ô 
ð 	
r*   c                 ó    — t          d¦  «        ‚)NzOverride in subclass)ÚNotImplementedErrorr\   s    r(   Ú_prepare_distributionz8_InstallRequirementBackedCandidate._prepare_distributionË   s   € Ý!Ð"8Ñ9Ô9Ð9r*   c                 ó  — | j         �1| j         |j        k    r!t          | j        d| j         |j        ¦  «        ‚| j        �K| j        |j        k    r=t          | j        dt          | j        ¦  «        t          |j        ¦  «        ¦  «        ‚dS dS )z:Check for consistency of project name and version of dist.NrM   rF   )rT   rE   r   rS   rU   rF   r9   )rW   rC   s     r(   Ú_check_metadata_consistencyz>_InstallRequirementBackedCandidate._check_metadata_consistencyÎ   s˜   € àŒ:Ð! d¤j°DÔ4GÒ&GÐ&GÝ&Ø”
ØØ”
ØÔ#ñ	ô ð ð Œ=Ð$¨¬¸$¼,Ò)FÐ)FÝ&Ø”
ØÝ�D”MÑ"Ô"Ý�D”LÑ!Ô!ñ	ô ð ð %Ð$Ð)FÐ)Fr*   c                 óÄ   — 	 |                       ¦   «         }n4# t          $ r}| j        |_        ‚ d }~wt          $ r}d|_        ‚ d }~ww xY w|                      |¦  «         |S )NzSee above for output.)r|   r   rS   r8   r   Úcontextr~   )rW   rC   ÚeÚexcs       r(   rV   z+_InstallRequirementBackedCandidate._prepareß   s‚   € ð	Ø×-Ò-Ñ/Ô/ˆDˆDøÝð 	ð 	ð 	ð ”JˆAŒEØøøøøÝ*ð 	ð 	ð 	à1ˆCŒKØøøøøð	øøøð
 	×(Ò(¨Ñ.Ô.Ð.Øˆs   ‚ —
A¡.®A»AÁAÚwith_requiresc              #   óø   K  — |r| j                              ¦   «         nd}|D ]1}| j                             t	          |¦  «        | j        ¦  «        V — Œ2| j                             | j         j        ¦  «        V — d S ©N© )rC   Úiter_dependenciesrR   Úmake_requirement_from_specr9   rS   Ú make_requires_python_requirementÚrequires_python)rW   rƒ   ÚrequiresÚrs       r(   r‡   z4_InstallRequirementBackedCandidate.iter_dependenciesð   s„   è è € Ø4AÐI�4”9×.Ò.Ñ0Ô0Ð0ÀrˆØð 	Oð 	OˆAØ”-×:Ò:½3¸q¹6¼6À4Ä:ÑNÔNÐNÐNÐNÐNØŒm×<Ò<¸T¼YÔ=VÑWÔWÐWÐWÐWÐWÐWr*   c                 ó   — | j         S rO   )rS   r\   s    r(   Úget_install_requirementz:_InstallRequirementBackedCandidate.get_install_requirementö   s
   € ØŒzÐr*   ©NN)"rb   Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__Úis_installedr   r   r   r   r   rX   r9   r]   rc   Úintrf   r   Úboolrk   ÚpropertyrK   rp   rM   rF   ry   r|   r~   rV   r   r   r‡   rŽ   r†   r*   r(   rJ   rJ   z   s€  € € € € € € ðð ð ÐÐÑØ€Lð *.Ø.2ð$ð $àð$ð ð$ð !ð	$ð
 ð$ð �~Ô&ð$ð Ð*Ô+ð$ð 
ð$ð $ð $ð $ð"-˜ð -ð -ð -ð -ð
˜#ð 
ð 
ð 
ð 
ð2˜#ð 2ð 2ð 2ð 2ð˜Cð  Dð ð ð ð ð
 ð!˜X dœ^ð !ð !ð !ñ „Xð!ð ð˜nð ð ð ñ „Xðð ð!�cð !ð !ð !ñ „Xð!ð ðÐ)ð ð ð ñ „Xðð

 #ð 
ð 
ð 
ð 
ð:Ð'7ð :ð :ð :ð :ðÐ0@ð ÀTð ð ð ð ð"Ð*ð ð ð ð ð"X¨tð X¸ÀÈ+ÔAVÔ8Wð Xð Xð Xð Xð¨Ð2DÔ)Eð ð ð ð ð ð r*   rJ   c                   óf   ‡ — 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,   rL   r   rM   rF   r$   c                 ó  •— |}|                      ||¦  «        }|�'t                               d|j        ¦  «         |j        }t	          ||¦  «        }|j        |k    sJ ‚|j        j        rŠ|j        j        s~t          |j        j        ¦  «        }	t          |	j
        ¦  «        }
||
k    sJ |›d|
›d�¦   «         ‚|�9t          |	j        ¦  «        }||k    sJ d                     |||¦  «        ¦   «         ‚|�g|j        j        sJ ‚|j        j        sJ ‚|j        r|j        |j        u r||_        |j        �|j        |_        nt'          ||j        ¬¦  «        |_        t)          ¦   «                              ||||||¬¦  «         d S )NzUsing cached wheel link: %sz != z
 for wheelz{!r} != {!r} for wheel {})Úlink_is_in_wheel_cache©r+   rK   r>   rL   rM   rF   )Úget_wheel_cache_entryÚloggerÚdebugr+   r?   Úis_wheelrw   r   Úfilenamer   rM   r   rF   r`   Ú
persistentr;   Úcached_wheel_source_linkÚoriginÚdownload_infor   ÚsuperrX   )rW   r+   r,   rL   rM   rF   rK   Úcache_entryr>   ÚwheelÚ
wheel_nameÚwheel_versionra   s               €r(   rX   zLinkCandidate.__init__ý   sÔ  ø€ ð ˆØ×3Ò3°KÀÑFÔFˆØÐ"Ý�LŠLÐ6¸Ô8HÑIÔIÐIØÔ#ˆDÝ)¨$°Ñ9Ô9ˆØŒy˜DÒ Ð Ð Ð ØŒ9Ôð 		 d¤iÔ&7ð 		Ý˜$œ)Ô,Ñ-Ô-ˆEÝ*¨5¬:Ñ6Ô6ˆJØ˜:Ò%Ð%Ð%¨$Ð'NÐ'N°jÐ'NÐ'NÐ'NÑ%Ô%Ð%àÐ"Ý '¨¬Ñ 6Ô 6�Ø -Ò/Ð/Ð/Ð1L×1SÒ1SØ˜]¨Dñ2ô 2Ñ/Ô/Ð/ð Ð"Ø”9Ô%Ð%Ð%Ð%Ø”9Ô$Ð$Ð$Ð$ØÔ%ð <¨(¬-¸8Ô;QÐ*QÐ*QØ0;�Ô-ØÔ!Ð-Ø%0Ô%7�Ô"Ð"õ &:Ø¸Ô8Nð&ñ &ô &�Ô"õ 	‰Œ×ÒØØ#ØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r*   c                 óR   — | j         j        }|                     | j        d¬¦  «        S )NT)Úparallel_builds)rR   ÚpreparerÚprepare_linked_requirementrS   )rW   r¬   s     r(   r|   z#LinkCandidate._prepare_distribution.  s'   € Ø”=Ô)ˆØ×2Ò2°4´:ÈtÐ2ÑTÔTÐTr*   r�   ©rb   r�   r‘   Úis_editabler   r   r   r   r   rX   r   r|   Ú__classcell__©ra   s   @r(   r"   r"   ú   sº   ø€ € € € € Ø€Kð *.Ø.2ð/
ð /
àð/
ð %ð/
ð ð	/
ð
 �~Ô&ð/
ð Ð*Ô+ð/
ð 
ð/
ð /
ð /
ð /
ð /
ð /
ðbUÐ'7ð Uð Uð Uð Uð Uð Uð Uð Ur*   r"   c                   óf   ‡ — 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,   rL   r   rM   rF   r$   c                 ór   •— t          ¦   «                              ||t          ||¦  «        |||¬¦  «         d S )Nr›   )r¥   rX   rB   )rW   r+   r,   rL   rM   rF   ra   s         €r(   rX   zEditableCandidate.__init__6  sL   ø€ õ 	‰Œ×ÒØØÝ/°°hÑ?Ô?ØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r*   c                 óJ   — | j         j                             | j        ¦  «        S rO   )rR   r¬   Úprepare_editable_requirementrS   r\   s    r(   r|   z'EditableCandidate._prepare_distributionG  s   € ØŒ}Ô%×BÒBÀ4Ä:ÑNÔNÐNr*   r�   r®   r±   s   @r(   r!   r!   3  s¹   ø€ € € € € Ø€Kð *.Ø.2ð
ð 
àð
ð %ð
ð ð	
ð
 �~Ô&ð
ð Ð*Ô+ð
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð"OÐ'7ð Oð Oð Oð Oð Oð Oð Oð 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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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dS )r    TNrC   r,   rL   r   r$   c                 óž   — || _         t          ||¦  «        | _        || _        d | _        d}|j                             | j        |¦  «         d S )Nzalready satisfied)rC   rH   rS   rR   rU   r¬   Úprepare_installed_requirement)rW   rC   r,   rL   Úskip_reasons        r(   rX   z"AlreadyInstalledCandidate.__init__O  sR   € ð ˆŒ	Ý0°°xÑ@Ô@ˆŒ
ØˆŒØˆŒð *ˆØÔ×6Ò6°t´zÀ;ÑOÔOÐOÐOÐOr*   c                 ó*   — t          | j        ¦  «        S rO   )r9   rC   r\   s    r(   r]   z!AlreadyInstalledCandidate.__str__a  s   € Ý�4”9‰~Œ~Ðr*   c                 óN   — d                      | j        j        | j        ¬¦  «        S )Nz{class_name}({distribution!r}))r_   Údistribution)r`   ra   rb   rC   r\   s    r(   rc   z"AlreadyInstalledCandidate.__repr__d  s,   € Ø/×6Ò6Ø”~Ô.Øœð 7ñ 
ô 
ð 	
r*   c                 óD   — t          | j        | j        | j        f¦  «        S rO   )re   ra   rM   rF   r\   s    r(   rf   z"AlreadyInstalledCandidate.__hash__j  s   € Ý�T”^ T¤Y°´Ð=Ñ>Ô>Ð>r*   rg   c                 óp   — t          || j        ¦  «        r | j        |j        k    o| j        |j        k    S dS ri   )r&   ra   rM   rF   rj   s     r(   rk   z AlreadyInstalledCandidate.__eq__m  s9   € Ý�e˜Tœ^Ñ,Ô,ð 	MØ”9 ¤
Ò*ÐL¨t¬|¸u¼}Ò/LÐLØˆur*   c                 ó   — | j         j        S rO   )rC   rE   r\   s    r(   rp   z&AlreadyInstalledCandidate.project_namer  s   € àŒyÔ'Ð'r*   c                 ó   — | j         S rO   rr   r\   s    r(   rM   zAlreadyInstalledCandidate.namev  rm   r*   c                 ó@   — | j         €| j        j        | _         | j         S rO   rt   r\   s    r(   rF   z!AlreadyInstalledCandidate.versionz  ru   r*   c                 ó   — | j         j        S rO   )rC   r7   r\   s    r(   r¯   z%AlreadyInstalledCandidate.is_editable€  s   € àŒyÔ!Ð!r*   c                 ó&   — | j         › d| j        › d�S )NrZ   z (Installed)r[   r\   s    r(   ry   z*AlreadyInstalledCandidate.format_for_error„  s   € Ø”)Ð8Ð8˜dœlÐ8Ð8Ð8Ð8r*   rƒ   c              #   ó¨   K  — |sd S | j                              ¦   «         D ]1}| j                             t	          |¦  «        | j        ¦  «        V — Œ2d S rO   )rC   r‡   rR   rˆ   r9   rS   )rW   rƒ   rŒ   s      r(   r‡   z+AlreadyInstalledCandidate.iter_dependencies‡  sg   è è € Øð 	ØˆFØ”×,Ò,Ñ.Ô.ð 	Oð 	OˆAØ”-×:Ò:½3¸q¹6¼6À4Ä:ÑNÔNÐNÐNÐNÐNð	Oð 	Or*   c                 ó   — d S rO   r†   r\   s    r(   rŽ   z1AlreadyInstalledCandidate.get_install_requirement�  ó   € Øˆtr*   )rb   r�   r‘   r”   rK   r   r   rX   r9   r]   rc   r•   rf   r   r–   rk   r—   r   rp   rM   r   rF   r¯   ry   r   r   r   r‡   rŽ   r†   r*   r(   r    r    K  sÞ  € € € € € Ø€LØ€KðPàðPð %ðPð ð	Pð
 
ðPð Pð Pð Pð$˜ð ð ð ð ð
˜#ð 
ð 
ð 
ð 
ð?˜#ð ?ð ?ð ?ð ?ð˜Cð  Dð ð ð ð ð
 ð(˜nð (ð (ð (ñ „Xð(ð ð!�cð !ð !ð !ñ „Xð!ð ðÐ)ð ð ð ñ „Xðð
 ð"˜Tð "ð "ð "ñ „Xð"ð9 #ð 9ð 9ð 9ð 9ðO¨tð O¸ÀÈ+ÔAVÔ8Wð Oð Oð Oð Oð¨Ð2DÔ)Eð ð ð ð ð ð r*   r    c                   óf  — e Zd ZdZd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dS )Ú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.
    Úbaser<   r$   Nc                 ó"   — || _         || _        d S rO   )rÉ   r<   )rW   rÉ   r<   s      r(   rX   zExtrasCandidate.__init__ª  s   € ð
 ˆŒ	ØˆŒˆˆr*   c                 ó¶   — t          | j        ¦  «                             dd¦  «        \  }}d                     |d                     | j        ¦  «        |¦  «        S )NrZ   r   z	{}[{}] {}ú,)r9   rÉ   Úsplitr`   Újoinr<   )rW   rM   Úrests      r(   r]   zExtrasCandidate.__str__²  sI   € Ý˜œ‘^”^×)Ò)¨#¨qÑ1Ô1‰
ˆˆdØ×!Ò! $¨¯ª°´Ñ(=Ô(=¸tÑDÔDÐDr*   c                 óZ   — d                      | j        j        | j        | j        ¬¦  «        S )Nz.{class_name}(base={base!r}, extras={extras!r}))r_   rÉ   r<   )r`   ra   rb   rÉ   r<   r\   s    r(   rc   zExtrasCandidate.__repr__¶  s2   € Ø?×FÒFØ”~Ô.Ø”Ø”;ð Gñ 
ô 
ð 	
r*   c                 ó8   — t          | j        | j        f¦  «        S rO   )re   rÉ   r<   r\   s    r(   rf   zExtrasCandidate.__hash__½  s   € Ý�T”Y ¤Ð,Ñ-Ô-Ð-r*   rg   c                 óp   — t          || j        ¦  «        r | j        |j        k    o| j        |j        k    S dS ri   )r&   ra   rÉ   r<   rj   s     r(   rk   zExtrasCandidate.__eq__À  s9   € Ý�e˜Tœ^Ñ,Ô,ð 	KØ”9 ¤
Ò*ÐJ¨t¬{¸e¼lÒ/JÐJØˆur*   c                 ó   — | j         j        S rO   )rÉ   rp   r\   s    r(   rp   zExtrasCandidate.project_nameÅ  ó   € àŒyÔ%Ð%r*   c                 ó@   — t          | j        j        | j        ¦  «        S ro   )r   rÉ   rp   r<   r\   s    r(   rM   zExtrasCandidate.nameÉ  s   € õ ˜4œ9Ô1°4´;Ñ?Ô?Ð?r*   c                 ó   — | j         j        S rO   )rÉ   rF   r\   s    r(   rF   zExtrasCandidate.versionÎ  s   € àŒyÔ Ð r*   c                 ó¦   — d                      | j                             ¦   «         d                     t	          | j        ¦  «        ¦  «        ¦  «        S )Nz{} [{}]z, )r`   rÉ   ry   rÎ   Úsortedr<   r\   s    r(   ry   z ExtrasCandidate.format_for_errorÒ  sC   € Ø×ÒØŒI×&Ò&Ñ(Ô(¨$¯)ª)µF¸4¼;Ñ4GÔ4GÑ*HÔ*Hñ
ô 
ð 	
r*   c                 ó   — | j         j        S rO   )rÉ   r”   r\   s    r(   r”   zExtrasCandidate.is_installed×  rÔ   r*   c                 ó   — | j         j        S rO   )rÉ   r¯   r\   s    r(   r¯   zExtrasCandidate.is_editableÛ  ó   € àŒyÔ$Ð$r*   c                 ó   — | j         j        S rO   )rÉ   rK   r\   s    r(   rK   zExtrasCandidate.source_linkß  rÛ   r*   rƒ   c              #   ób  K  — | j         j        }|                     | j         ¦  «        V — |sd S | j                             | j         j                             ¦   «         ¦  «        }| j                             | j         j                             ¦   «         ¦  «        }t          |¦  «        D ].}t           
                    d| j         j        | j        |¦  «         Œ/| j         j                             |¦  «        D ]6}|                     t          |¦  «        | j         j        |¦  «        }|r|V — Œ7d S )Nz%%s %s does not provide the extra '%s')rÉ   rR   Úmake_requirement_from_candidater<   ÚintersectionrC   Úiter_provided_extrasÚ
differencerØ   r�   ÚwarningrM   rF   r‡   rˆ   r9   rS   )rW   rƒ   rL   Úvalid_extrasÚinvalid_extrasÚextrarŒ   Úrequirements           r(   r‡   z!ExtrasCandidate.iter_dependenciesã  s5  è è € Ø”)Ô$ˆð ×5Ò5°d´iÑ@Ô@Ð@Ð@Ð@Øð 	ØˆFð ”{×/Ò/°´	´×0SÒ0SÑ0UÔ0UÑVÔVˆØœ×/Ò/°´	´×0SÒ0SÑ0UÔ0UÑVÔVˆÝ˜NÑ+Ô+ð 	ð 	ˆEÝ�NŠNØ7Ø”	”Ø”Øñ	ô ð ð ð ””×1Ò1°,Ñ?Ô?ð 	"ð 	"ˆAØ!×<Ò<Ý�A‘”˜œ	œ¨ñô ˆKð ð "Ø!Ð!Ð!Ð!øð	"ð 	"r*   c                 ó   — d S rO   r†   r\   s    r(   rŽ   z'ExtrasCandidate.get_install_requirementÿ  s	   € ð ˆtr*   ) rb   r�   r‘   r’   ÚBaseCandidater   r9   rX   r]   rc   r•   rf   r   r–   rk   r—   r   rp   rM   r   rF   ry   r”   r¯   r   r   rK   r   r   r‡   r   rŽ   r†   r*   r(   rÈ   rÈ   ‘  s&  € € € € € ðð ð0àðð ˜#”ðð 
ð	ð ð ð ðE˜ð Eð Eð Eð Eð
˜#ð 
ð 
ð 
ð 
ð.˜#ð .ð .ð .ð .ð˜Cð  Dð ð ð ð ð
 ð&˜nð &ð &ð &ñ „Xð&ð ð@�cð @ð @ð @ñ „Xð@ð ð!Ð)ð !ð !ð !ñ „Xð!ð
 #ð 
ð 
ð 
ð 
ð
 ð&˜dð &ð &ð &ñ „Xð&ð ð%˜Tð %ð %ð %ñ „Xð%ð ð%˜X dœ^ð %ð %ð %ñ „Xð%ð"¨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dS )ÚRequiresPythonCandidateFNÚpy_version_info.r$   c                 ó´   — |�t          |¦  «        }nt          j        d d…         }t          d                     d„ |D ¦   «         ¦  «        ¦  «        | _        d S )Né   ú.c              3   ó4   K  — | ]}t          |¦  «        V — Œd S rO   )r9   )Ú.0Úcs     r(   ú	<genexpr>z3RequiresPythonCandidate.__init__.<locals>.<genexpr>  s(   è è € Ð(FÐ(F°A­¨Q©¬Ð(FÐ(FÐ(FÐ(FÐ(FÐ(Fr*   )r   ÚsysÚversion_infor   rÎ   rU   )rW   rë   rô   s      r(   rX   z RequiresPythonCandidate.__init__
  sV   € ØÐ&Ý1°/ÑBÔBˆLˆLåÔ+¨B¨Q¨BÔ/ˆLÝ §¢Ð(FÐ(F¸Ð(FÑ(FÔ(FÑ FÔ FÑGÔGˆŒˆˆr*   c                 ó   — d| j         › �S ©NzPython ©rU   r\   s    r(   r]   zRequiresPythonCandidate.__str__  s   € Ø(˜œÐ(Ð(Ð(r*   c                 ó   — t           S rO   ©ÚREQUIRES_PYTHON_IDENTIFIERr\   s    r(   rp   z$RequiresPythonCandidate.project_name  ó   € å)Ð)r*   c                 ó   — t           S rO   rù   r\   s    r(   rM   zRequiresPythonCandidate.name  rû   r*   c                 ó   — | j         S rO   r÷   r\   s    r(   rF   zRequiresPythonCandidate.version   s
   € àŒ}Ðr*   c                 ó   — d| j         › �S rö   )rF   r\   s    r(   ry   z(RequiresPythonCandidate.format_for_error$  s   € Ø'˜œÐ'Ð'Ð'r*   rƒ   c                 ó   — dS r…   r†   )rW   rƒ   s     r(   r‡   z)RequiresPythonCandidate.iter_dependencies'  s   € Øˆrr*   c                 ó   — d S rO   r†   r\   s    r(   rŽ   z/RequiresPythonCandidate.get_install_requirement*  rÆ   r*   )rb   r�   r‘   r”   rK   r   r   r•   rX   r9   r]   r—   r   rp   rM   r   rF   ry   r–   r   r   r‡   r   rŽ   r†   r*   r(   rê   rê     sL  € € € € € Ø€LØ€KðH¨°°s¸C°x´Ô(Að HÀdð Hð Hð Hð Hð)˜ð )ð )ð )ð )ð ð*˜nð *ð *ð *ñ „Xð*ð ð*�cð *ð *ð *ñ „Xð*ð ðÐ)ð ð ð ñ „Xðð( #ð (ð (ð (ð (ð¨tð ¸ÀÈ+ÔAVÔ8Wð ð ð ð ð¨Ð2DÔ)Eð ð ð ð ð ð r*   rê   ):Úloggingró   Útypingr   r   r   r   r   r   r	   r
   Úpip._vendor.packaging.utilsr   r   Úpip._vendor.packaging.versionr   Úpip._internal.exceptionsr   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   r   rL   r   Ú	getLoggerrb   r�   rè   rú   r)   r?   rB   rH   rJ   r"   r!   r    rÈ   rê   r†   r*   r(   ú<module>r     s   ðØ €€€Ø 
€
€
€
Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ Xà IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð
 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð =Ð <Ð <Ð <Ð <Ð <Ø GÐ GÐ GÐ GÐ GÐ GØ ;Ð ;Ð ;Ð ;Ð ;Ð ;à GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gàð !Ø Ð Ð Ð Ð Ð à	ˆÔ	˜8Ñ	$Ô	$€àðô€ð "˜T .Ð2QÑRÔRÐ ð	 ð 	¨x¸Ô/Fð 	ð 	ð 	ð 	ðØ
ðØ,ðàðð ð ð ð2Ø
ðØ,ðàðð ð ð ð(Ø
ðØ&8ðàðð ð ð ð0}ð }ð }ð }ð }¨ñ }ô }ð }ð@6Uð 6Uð 6Uð 6Uð 6UÐ6ñ 6Uô 6Uð 6UðrOð Oð Oð Oð OÐ:ñ Oô Oð Oð0Cð Cð Cð Cð C 	ñ Cô Cð CðLrð rð rð rð r�iñ rô rð rðj%ð %ð %ð %ð %˜iñ %ô %ð %ð %ð %r*   