§
    
Á³g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     úl/var/www/html/mpstechhub/venv/lib/python3.11/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	        t          |j        |j        |j        ¬¦  «        |j        ¬¦  «        }|j        |_        | |_        |S )Nztemplate is editable©Úinstall_optionsÚglobal_optionsÚhashes©Úuser_suppliedÚ
comes_fromÚ
use_pep517ÚisolatedÚ
constraintÚoptionsÚconfig_settings)ÚeditableÚreqÚstrÚurlr   r3   r4   r5   r6   r7   Údictr/   r0   Úhash_optionsr9   Úoriginal_linkr+   )r+   r,   ÚlineÚireqs       r(   Úmake_install_req_from_linkrC   5   s¸   € ð Ô Ð8Ð8Ð"8Ñ8Ô8Ð8Ø„|ð Ý�8”<Ñ Ô ˆˆàŒxˆÝ ØØÔ,ØÔ&ØÔ&ØÔ"ØÔ&ÝØ$Ô4Ø#Ô2ØÔ(ð
ñ 
ô 
ð
 !Ô0ðñ ô €Dð "Ô/€DÔØ€D„IØ€Kr*   c                 óâ   — |j         s
J d¦   «         ‚t          | j        |j        |j        |j        |j        |j        |j        t          |j
        |j        |j        ¬¦  «        |j        ¬¦	  «	        S )Nztemplate not editabler.   )r3   r4   r5   r6   r7   Úpermit_editable_wheelsr8   r9   )r:   r   r=   r3   r4   r5   r6   r7   rE   r>   r/   r0   r?   r9   )r+   r,   s     r(   Úmake_install_req_from_editablerF   P   sˆ   € ð ÔÐ5Ð5Ð5Ñ5Ô5Ð5Ý$ØŒØÔ,ØÔ&ØÔ&ØÔ"ØÔ&Ø'Ô>ÝØ$Ô4Ø#Ô2ØÔ(ð
ñ 
ô 
ð
 !Ô0ðñ ô ð r*   Údistc                 óR  — |j         rt          |j         ¦  «        }n/|j        r| j        › d|j        j        › �}n| j        › d| j        › �}t          ||j        |j        |j	        |j
        |j        t          |j        |j        |j        ¬¦  «        |j        ¬¦  «        }| |_        |S )Nz @ z==r.   r2   )r;   r<   r+   Úcanonical_namer=   Úversionr   r3   r4   r5   r6   r7   r>   r/   r0   r?   r9   Úsatisfied_by)rG   r,   rA   rB   s       r(   Ú_make_install_req_from_distrL   e   sÎ   € ð „|ð 8Ý�8”<Ñ Ô ˆˆØ	Œð 8ØÔ%Ð=Ð=¨(¬-Ô*;Ð=Ð=ˆˆàÔ%Ð7Ð7¨¬Ð7Ð7ˆÝ ØØÔ,ØÔ&ØÔ&ØÔ"ØÔ&ÝØ$Ô4Ø#Ô2ØÔ(ð
ñ 
ô 
ð
 !Ô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).
    rG   FNr+   Úsource_linkrB   Úfactoryr   ÚnamerJ   r$   c                 óŒ   — || _         || _        || _        || _        || _        || _        |                      ¦   «         | _        d S ©N)Ú_linkÚ_source_linkÚ_factoryÚ_ireqÚ_nameÚ_versionÚ_preparerG   )Úselfr+   rO   rB   rP   rQ   rJ   s          r(   Ú__init__z+_InstallRequirementBackedCandidate.__init__“   sB   € ð ˆŒ
Ø'ˆÔØˆŒØˆŒ
ØˆŒ
ØˆŒØ—M’M‘O”OˆŒ	ˆ	ˆ	r*   c                 ó$   — | j         › d| j        › �S )Nú ©rQ   rJ   ©r[   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__r<   rT   r`   s    r(   Ú__repr__z+_InstallRequirementBackedCandidate.__repr__§   s2   € Ø'×.Ò.Ø”~Ô.Ý�T”Z‘”ð /ñ 
ô 
ð 	
r*   c                 ó8   — t          | j        | j        f¦  «        S rS   )Úhashre   rT   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&   re   r   rT   ©r[   rk   s     r(   Ú__eq__z)_InstallRequirementBackedCandidate.__eq__°   s/   € Ý�e˜Tœ^Ñ,Ô,ð 	=Ý# D¤J°´Ñ<Ô<Ð<Øˆur*   c                 ó   — | j         S rS   )rU   r`   s    r(   rO   z._InstallRequirementBackedCandidate.source_linkµ   ó   € àÔ Ð r*   c                 ó@   — | j         €| j        j        | _         | j         S ©z:The normalised name of the project the candidate refers to)rX   rG   rI   r`   s    r(   Úproject_namez/_InstallRequirementBackedCandidate.project_name¹   s    € ð Œ:ÐØœÔ1ˆDŒJØŒzÐr*   c                 ó   — | j         S rS   ©rt   r`   s    r(   rQ   z'_InstallRequirementBackedCandidate.nameÀ   rq   r*   c                 ó@   — | j         €| j        j        | _         | j         S rS   )rY   rG   rJ   r`   s    r(   rJ   z*_InstallRequirementBackedCandidate.versionÄ   s   € àŒ=Ð Ø œIÔ-ˆDŒMØŒ}Ðr*   c                 ó~   — d                      | j        | j        | j        j        r| j        j        n| j        ¦  «        S )Nz{} {} (from {}))rd   rQ   rJ   rT   Ú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.NrQ   rJ   )rX   rI   r   rW   rY   rJ   r<   )r[   rG   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   rW   r;   r   Úcontextr€   )r[   rG   ÚeÚexcs       r(   rZ   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© )rG   Úiter_dependenciesrV   Úmake_requirement_from_specr<   rW   Ú make_requires_python_requirementÚrequires_python)r[   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 rS   )rW   r`   s    r(   Úget_install_requirementz:_InstallRequirementBackedCandidate.get_install_requirementü   s
   € ØŒzÐr*   ©NN)"rf   Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__Úis_installedr   r   r   r   r   r\   r<   ra   rg   Úintrj   r   Úboolro   ÚpropertyrO   rt   rQ   rJ   r{   r~   r€   rZ   r   r   r‰   r�   rˆ   r*   r(   rN   rN   €   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*   rN   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,   rP   r   rQ   rJ   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                     |||¦  «        ¦   «         ‚|�K|j        r|j        |j        u rd|_        |j        �|j        |_        nt'          ||j        ¬¦  «        |_        t)          ¦   «                              ||||||¬¦  «         d S )NzUsing cached wheel link: %sz != z
 for wheelz{!r} != {!r} for wheel {}T)Úlink_is_in_wheel_cache©r+   rO   rB   rP   rQ   rJ   )Úget_wheel_cache_entryÚloggerÚdebugr+   rC   Úis_wheelry   r   Úfilenamer   rQ   r   rJ   rd   Ú
persistentr@   Úoriginal_link_is_in_wheel_cacheÚoriginÚdownload_infor   Úsuperr\   )r[   r+   r,   rP   rQ   rJ   rO   Úcache_entryrB   ÚwheelÚ
wheel_nameÚwheel_versionre   s               €r(   r\   zLinkCandidate.__init__  s²  ø€ ð ˆØ×3Ò3°D¸$Ñ?Ô?ˆØÐ"Ý�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Ñ/Ô/Ð/ð Ð"ØÔ%ð <¨(¬-¸8Ô;QÐ*QÐ*QØ7;�Ô4ØÔ!Ð-Ø%0Ô%7�Ô"Ð"õ &:Ø¸Ô8Nð&ñ &ô &�Ô"õ 	‰Œ×ÒØØ#ØØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r*   c                 óR   — | j         j        }|                     | j        d¬¦  «        S )NT)Úparallel_builds)rV   ÚpreparerÚprepare_linked_requirementrW   )r[   r®   s     r(   r~   z#LinkCandidate._prepare_distribution2  s'   € Ø”=Ô)ˆØ×2Ò2°4´:ÈtÐ2ÑTÔTÐTr*   r‘   ©rf   r’   r“   Úis_editabler   r   r   r   r   r\   r   r~   Ú__classcell__©re   s   @r(   r"   r"      sº   ø€ € € € € Ø€Kð *.Ø.2ð-
ð -
àð-
ð %ð-
ð ð	-
ð
 �~Ô&ð-
ð Ð*Ô+ð-
ð 
ð-
ð -
ð -
ð -
ð -
ð -
ð^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,   rP   r   rQ   rJ   r$   c                 ór   •— t          ¦   «                              ||t          ||¦  «        |||¬¦  «         d S )Nr�   )r§   r\   rF   )r[   r+   r,   rP   rQ   rJ   re   s         €r(   r\   zEditableCandidate.__init__:  sL   ø€ õ 	‰Œ×ÒØØÝ/°°hÑ?Ô?ØØØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r*   c                 óJ   — | j         j                             | j        ¦  «        S rS   )rV   r®   Úprepare_editable_requirementrW   r`   s    r(   r~   z'EditableCandidate._prepare_distributionK  s   € ØŒ}Ô%×BÒBÀ4Ä:ÑNÔNÐNr*   r‘   r°   r³   s   @r(   r!   r!   7  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    TNrG   r,   rP   r   r$   c                 ó�   — || _         t          ||¦  «        | _        || _        d}|j                             | j        |¦  «         d S )Nzalready satisfied)rG   rL   rW   rV   r®   Úprepare_installed_requirement)r[   rG   r,   rP   Úskip_reasons        r(   r\   z"AlreadyInstalledCandidate.__init__S  sK   € ð ˆŒ	Ý0°°xÑ@Ô@ˆŒ
ØˆŒð *ˆØÔ×6Ò6°t´zÀ;ÑOÔOÐOÐOÐOr*   c                 ó*   — t          | j        ¦  «        S rS   )r<   rG   r`   s    r(   ra   z!AlreadyInstalledCandidate.__str__d  s   € Ý�4”9‰~Œ~Ðr*   c                 óN   — d                      | j        j        | j        ¬¦  «        S )Nz{class_name}({distribution!r}))rc   Údistribution)rd   re   rf   rG   r`   s    r(   rg   z"AlreadyInstalledCandidate.__repr__g  s,   € Ø/×6Ò6Ø”~Ô.Øœð 7ñ 
ô 
ð 	
r*   c                 óD   — t          | j        | j        | j        f¦  «        S rS   )ri   re   rQ   rJ   r`   s    r(   rj   z"AlreadyInstalledCandidate.__hash__m  s   € Ý�T”^ T¤Y°´Ð=Ñ>Ô>Ð>r*   rk   c                 óp   — t          || j        ¦  «        r | j        |j        k    o| j        |j        k    S dS rm   )r&   re   rQ   rJ   rn   s     r(   ro   z AlreadyInstalledCandidate.__eq__p  s9   € Ý�e˜Tœ^Ñ,Ô,ð 	MØ”9 ¤
Ò*ÐL¨t¬|¸u¼}Ò/LÐLØˆur*   c                 ó   — | j         j        S rS   )rG   rI   r`   s    r(   rt   z&AlreadyInstalledCandidate.project_nameu  s   € àŒyÔ'Ð'r*   c                 ó   — | j         S rS   rv   r`   s    r(   rQ   zAlreadyInstalledCandidate.namey  rq   r*   c                 ó   — | j         j        S rS   )rG   rJ   r`   s    r(   rJ   z!AlreadyInstalledCandidate.version}  ó   € àŒyÔ Ð r*   c                 ó   — | j         j        S rS   )rG   r:   r`   s    r(   r±   z%AlreadyInstalledCandidate.is_editable�  s   € àŒyÔ!Ð!r*   c                 ó&   — | j         › d| j        › d�S )Nr^   z (Installed)r_   r`   s    r(   r{   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 rS   )rG   r‰   rV   rŠ   r<   rW   )r[   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 rS   rˆ   r`   s    r(   r�   z1AlreadyInstalledCandidate.get_install_requirementŽ  ó   € Øˆtr*   )rf   r’   r“   r–   rO   r   r   r\   r<   ra   rg   r—   rj   r   r˜   ro   r™   r   rt   rQ   r   rJ   r±   r{   r   r   r   r‰   r�   rˆ   r*   r(   r    r    O  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.
    ÚbaseÚextrasr$   Nc                 ó"   — || _         || _        d S rS   )rÌ   rÍ   )r[   rÌ   rÍ   s      r(   r\   zExtrasCandidate.__init__«  s   € ð
 ˆŒ	ØˆŒˆˆr*   c                 ó¶   — t          | j        ¦  «                             dd¦  «        \  }}d                     |d                     | j        ¦  «        |¦  «        S )Nr^   r   z	{}[{}] {}ú,)r<   rÌ   Úsplitrd   ÚjoinrÍ   )r[   rQ   Úrests      r(   ra   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}))rc   rÌ   rÍ   )rd   re   rf   rÌ   rÍ   r`   s    r(   rg   zExtrasCandidate.__repr__·  s2   € Ø?×FÒFØ”~Ô.Ø”Ø”;ð Gñ 
ô 
ð 	
r*   c                 ó8   — t          | j        | j        f¦  «        S rS   )ri   rÌ   rÍ   r`   s    r(   rj   zExtrasCandidate.__hash__¾  s   € Ý�T”Y ¤Ð,Ñ-Ô-Ð-r*   rk   c                 óp   — t          || j        ¦  «        r | j        |j        k    o| j        |j        k    S dS rm   )r&   re   rÌ   rÍ   rn   s     r(   ro   zExtrasCandidate.__eq__Á  s9   € Ý�e˜Tœ^Ñ,Ô,ð 	KØ”9 ¤
Ò*ÐJ¨t¬{¸e¼lÒ/JÐJØˆur*   c                 ó   — | j         j        S rS   )rÌ   rt   r`   s    r(   rt   zExtrasCandidate.project_nameÆ  ó   € àŒyÔ%Ð%r*   c                 ó@   — t          | j        j        | j        ¦  «        S rs   )r   rÌ   rt   rÍ   r`   s    r(   rQ   zExtrasCandidate.nameÊ  s   € õ ˜4œ9Ô1°4´;Ñ?Ô?Ð?r*   c                 ó   — | j         j        S rS   )rÌ   rJ   r`   s    r(   rJ   zExtrasCandidate.versionÏ  rÄ   r*   c                 ó¦   — d                      | j                             ¦   «         d                     t	          | j        ¦  «        ¦  «        ¦  «        S )Nz{} [{}]z, )rd   rÌ   r{   rÒ   ÚsortedrÍ   r`   s    r(   r{   z ExtrasCandidate.format_for_errorÓ  sC   € Ø×ÒØŒI×&Ò&Ñ(Ô(¨$¯)ª)µF¸4¼;Ñ4GÔ4GÑ*HÔ*Hñ
ô 
ð 	
r*   c                 ó   — | j         j        S rS   )rÌ   r–   r`   s    r(   r–   zExtrasCandidate.is_installedØ  rØ   r*   c                 ó   — | j         j        S rS   )rÌ   r±   r`   s    r(   r±   zExtrasCandidate.is_editableÜ  ó   € àŒyÔ$Ð$r*   c                 ó   — | j         j        S rS   )rÌ   rO   r`   s    r(   rO   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Ì   rV   Úmake_requirement_from_candidaterÍ   ÚintersectionrG   Úiter_provided_extrasÚ
differencerÜ   rŸ   ÚwarningrQ   rJ   r‰   rŠ   r<   rW   )r[   r…   rP   Ú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 rS   rˆ   r`   s    r(   r�   z'ExtrasCandidate.get_install_requirement   s	   € ð ˆtr*   ) rf   r’   r“   r”   ÚBaseCandidater   r<   r\   ra   rg   r—   rj   r   r˜   ro   r™   r   rt   rQ   r   rJ   r{   r–   r±   r   r   rO   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 rS   )r<   )Ú.0Úcs     r(   ú	<genexpr>z3RequiresPythonCandidate.__init__.<locals>.<genexpr>  s(   è è € Ð(FÐ(F°A­¨Q©¬Ð(FÐ(FÐ(FÐ(FÐ(FÐ(Fr*   )r   ÚsysÚversion_infor   rÒ   rY   )r[   rï   rø   s      r(   r\   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 ©rY   r`   s    r(   ra   zRequiresPythonCandidate.__str__  s   € Ø(˜œÐ(Ð(Ð(r*   c                 ó   — t           S rS   ©ÚREQUIRES_PYTHON_IDENTIFIERr`   s    r(   rt   z$RequiresPythonCandidate.project_name  ó   € å)Ð)r*   c                 ó   — t           S rS   rý   r`   s    r(   rQ   zRequiresPythonCandidate.name  rÿ   r*   c                 ó   — | j         S rS   rû   r`   s    r(   rJ   zRequiresPythonCandidate.version!  s
   € àŒ}Ðr*   c                 ó   — d| j         › �S rú   )rJ   r`   s    r(   r{   z(RequiresPythonCandidate.format_for_error%  s   € Ø'˜œÐ'Ð'Ð'r*   r…   c                 ó   — dS r‡   rˆ   )r[   r…   s     r(   r‰   z)RequiresPythonCandidate.iter_dependencies(  s   € Øˆrr*   c                 ó   — d S rS   rˆ   r`   s    r(   r�   z/RequiresPythonCandidate.get_install_requirement+  rÉ   r*   )rf   r’   r“   r–   rO   r   r   r—   r\   r<   ra   r™   r   rt   rQ   r   rJ   r{   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   rP   r   Ú	getLoggerrf   rŸ   rì   rþ   r)   rC   rF   rL   rN   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ð 	ð 	ð 	ð 	ðØ
ðØ,ðàðð ð ð ð6Ø
ðØ,ðàðð ð ð ð*Ø
ðØ&8ðàðð ð ð ð6}ð }ð }ð }ð }¨ñ }ô }ð }ð@4Uð 4Uð 4Uð 4Uð 4UÐ6ñ 4Uô 4Uð 4UðnOð Oð Oð Oð OÐ:ñ Oô Oð Oð0@ð @ð @ð @ð @ 	ñ @ô @ð @ðFrð rð rð rð r�iñ rô rð rðj%ð %ð %ð %ð %˜iñ %ô %ð %ð %ð %r*   