Ë
    ”U.j¶  ã                  ó4  — d Z ddlmZ ddlZddlZddlZddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ dd	lmZ dd
lmZ erddlmZ ddlmZ ddlmZ ddlmZ  ej8                  e«      Ze	dd„«       Z G d„ de«      Z 	 	 	 	 	 	 dd„Z!dd„Z" G d„ dee «      Z#y)a&  
Contains command classes which may interact with an index / the network.

Unlike its sister module, req_command, this module still uses lazy imports
so commands which don't always hit the network (e.g. list w/o --outdated or
--uptodate) don't need waste time importing PipSession and friends.
é    )ÚannotationsN)ÚIterator)Ú	lru_cache)ÚValues)ÚTYPE_CHECKING)Úcertifi)ÚCommand)ÚCommandContextMixIn)Ú
SSLContext)ÚNormalizedName©Ú
PipSession)ÚUpgradePromptc                 ó*  — 	 dd l } 	 ddlm} |j                  | j                  «      }|j                  t        j                  «       «       |S # t        $ r t        j                  d«       Y y w xY w# t        $ r t        j                  d«       Y y w xY w)Nr   z1Disabling truststore since ssl support is missing)Ú
truststorez5Disabling truststore because platform isn't supported)ÚsslÚImportErrorÚloggerÚwarningÚpip._vendorr   r   ÚPROTOCOL_TLS_CLIENTÚload_verify_locationsr   Úwhere)r   r   Úctxs      úaC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\pip/_internal/cli/index_command.pyÚ_create_truststore_ssl_contextr   #   s„   € ðÛð
Ý*ð
 ×
Ñ
 × 7Ñ 7Ó
8€CØ×ÑœgŸm™m›oÔ.Ø€Jøô ò Ü�‰ÐJÔKÙðûô ò Ü�‰ÐNÔOÙðús"   ‚A ‡A1 ÁA.Á-A.Á1BÂBc                  óZ   ‡ — e Zd ZdZdˆ fd„Zedd„«       Zdd„Z	 	 d		 	 	 	 	 	 	 d
d„Zˆ xZ	S )ÚSessionCommandMixinzE
    A class mixin for command classes needing _build_session().
    c                ó0   •— t         ‰| �  «        d | _        y )N)ÚsuperÚ__init__Ú_session)ÚselfÚ	__class__s    €r   r!   zSessionCommandMixin.__init__;   s   ø€ Ü‰ÑÔØ+/ˆ�ó    c                ó¬   — g }t        |dd«      s t        |dd«      }|r|j                  |«       t        |dd«      }|r|j                  |«       |xs dS )z7Return a list of index urls from user-provided options.Úno_indexFÚ	index_urlNÚextra_index_urls)ÚgetattrÚappendÚextend)ÚclsÚoptionsÚ
index_urlsÚurlÚurlss        r   Ú_get_index_urlsz#SessionCommandMixin._get_index_urls?   s_   € ð ˆ
Ü�w 
¨EÔ2Ü˜' ;°Ó5ˆCÙØ×!Ñ! #Ô&Ü�wÐ 2°DÓ9ˆÙØ×Ñ˜dÔ#àÒ!˜TÐ!r%   c                ó˜   — | j                   €3| j                  | j                  |«      «      | _         | j                   €J ‚| j                   S )zGet a default-managed session.)r"   Úenter_contextÚ_build_session)r#   r.   s     r   Úget_default_sessionz'SessionCommandMixin.get_default_sessionM   sE   € à�=‰=Ð Ø ×.Ñ.¨t×/BÑ/BÀ7Ó/KÓLˆDŒMð —=‘=Ð,Ð,Ð,Ø�}‰}Ðr%   c           	     ó  — ddl m} |j                  }|r!t        j                  j                  |«      sJ ‚d|j                  vrt        «       }nd } ||r t        j                  j                  |d«      nd |�|n|j                  |j                  |j                  | j                  |«      |¬«      }|j                  r|j                  |_        |j                  r|j                  |_        |j                   s|r|�|n|j                   |_        |j"                  r6|j"                  |j"                  dœ|_        d|_        |j"                  |_        |j*                   |j,                  _        |j0                  |j,                  _        |S )Nr   r   zlegacy-certszhttp-v2)ÚcacheÚretriesÚresume_retriesÚtrusted_hostsr/   Ússl_context)ÚhttpÚhttpsF)Úpip._internal.network.sessionr   Ú	cache_dirÚosÚpathÚisabsÚdeprecated_features_enabledr   Újoinr9   r:   r;   r2   ÚcertÚverifyÚclient_certÚtimeoutÚproxyÚproxiesÚ	trust_envÚ	pip_proxyÚno_inputÚauthÚ	promptingÚkeyring_provider)r#   r.   r9   rI   r   r@   r<   Úsessions           r   r5   z"SessionCommandMixin._build_sessionW   sC  € õ 	=à×%Ñ%ˆ	Ù¤§¡§¡¨iÔ 8Ð8Ð8à ×!DÑ!DÑDÜ8Ó:‰KàˆKáÙ8A”"—'‘'—,‘,˜y¨)Ô4ÀtØ&Ð2‘G¸¿¹Ø"×1Ñ1Ø!×/Ñ/Ø×+Ñ+¨GÓ4Ø#ô
ˆð �<Š<Ø$Ÿ\™\ˆGŒNð ×ÒØ"×.Ñ.ˆGŒLð �?Š?™gØ)0Ð)<™gÀ'Ç/Á/ˆGŒOð �=Š=àŸ™Ø Ÿ™ñˆGŒOð !&ˆGÔØ '§¡ˆGÔð &-×%5Ñ%5Ð!5ˆ�‰ÔØ(/×(@Ñ(@ˆ�‰Ô%àˆr%   )ÚreturnÚNone)r.   r   rS   zlist[str] | None)r.   r   rS   r   )NN)r.   r   r9   ú
int | NonerI   rU   rS   r   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   Úclassmethodr2   r6   r5   Ú__classcell__)r$   s   @r   r   r   6   sY   ø„ ñõ0ð ò"ó ð"óð #Ø"ð	2àð2ð ð2ð ð	2ð
 
÷2r%   r   c                ó    — ddl m}  || |«      S )Nr   )Úpip_self_version_check_fetch)Ú!pip._internal.self_outdated_checkr]   )rR   r.   r]   s      r   Ú_pip_self_version_check_fetchr_   Œ   s   € õ Oá'¨°Ó9Ð9r%   c                ó    — ddl m}  || «       y )Nr   )Úpip_self_version_check_emit)r^   ra   )Úupgrade_promptra   s     r   Ú_pip_self_version_check_emitrc   ”   s   € ÝMá Õ/r%   c                  óJ   — e Zd ZdZ	 	 	 	 	 	 dd„Zej                  dd„«       Zy)ÚIndexGroupCommandz–
    Abstract base class for commands with the index_group options.

    This also corresponds to the commands that permit the pip version check.
    c                óf   — |j                   r%|j                   j                  |«      }|du ry|du ryy)zM
        Determine if pre-releases should be excluded for a package.
        TF)Úrelease_controlÚallows_prereleases)r#   r.   Úpackage_nameÚallow_prereleasess       r   Úshould_exclude_prereleasez+IndexGroupCommand.should_exclude_prerelease¡   s?   € ð ×"Ò"Ø '× 7Ñ 7× JÑ JÈ<Ó XÐØ  DÑ(ØØ" eÑ+Øð r%   c              #  ó¤  K  — t        |d«      sJ ‚|j                  s|j                  rd–— yd}	 | j                  |dt	        d|j
                  «      ¬«      }|5  t        ||«      }ddd«       	 d–— 	 t        |«       y# 1 sw Y   ŒxY w# t        $ r/ t        j                  d«       t        j                  dd¬	«       Y ŒUw xY w# t        $ r/ t        j                  d«       t        j                  dd¬	«       Y yw xY w# 	 t        |«       w # t        $ r/ t        j                  d«       t        j                  dd¬	«       Y w w xY wxY w­w)
z€
        Do the pip version check if not disabled.

        This overrides the default behavior of not doing the check.
        r'   Nr   é   )r9   rI   z6There was an error checking the latest version of pip.zSee below for errorT)Úexc_info)ÚhasattrÚdisable_pip_version_checkr'   r5   ÚminrI   r_   Ú	Exceptionr   r   Údebugrc   )r#   r.   Úargsrb   rR   s        r   Úpip_version_checkz#IndexGroupCommand.pip_version_check²   s/  è ø€ ô �w 
Ô+Ð+Ð+à×,Ò,°×0@Ò0@ÛØà/3ˆð
	?Ø×)Ñ)ØØÜ˜A˜wŸ™Ó/ð *ó ˆGò
 Ü!>¸wÈÓ!P�÷ ð	CÛðCÜ,¨^Õ<÷ �ûäò 	?Ü�N‰NÐSÔTÜ�L‰LÐ.¸ˆLÖ>ð	?ûô ò CÜ—‘ÐWÔXÜ—‘Ð2¸T�ÖBðCûðCÜ,¨^Õ<øÜò CÜ—‘ÐWÔXÜ—‘Ð2¸T�ÖBðCÿs”   ‚.E±*B ÁBÁ(B Á1D Á6C	 ÂEÂBÂB Â5CÃEÃCÃEÃ	5DÃ>EÄ DÄEÄEÄDÄEÄ5E
ÅEÅ	E
Å
EÅEN)r.   r   ri   r   rS   Úbool)r.   r   rt   z	list[str]rS   zIterator[None])rV   rW   rX   rY   rk   Ú
contextlibÚcontextmanagerru   © r%   r   re   re   š   s@   „ ñðØðØ-;ðà	óð" ×Ñò!Có ñ!Cr%   re   )rS   zSSLContext | None)rR   r   r.   r   rS   úUpgradePrompt | None)rb   rz   rS   rT   )$rY   Ú
__future__r   rw   ÚloggingrA   Úcollections.abcr   Ú	functoolsr   Úoptparser   Útypingr   r   r   Úpip._internal.cli.base_commandr	   Ú!pip._internal.cli.command_contextr
   r   r   Úpip._vendor.packaging.utilsr   r?   r   r^   r   Ú	getLoggerrV   r   r   r   r_   rc   re   ry   r%   r   Ú<module>r…      s¥   ðñõ #ã Û Û 	Ý $Ý Ý Ý  å å 2Ý AáÝå:å8Ý?à	ˆ×	Ñ	˜8Ó	$€ð òó ðô$SÐ-ô Sðl:Øð:Ø"(ð:àó:ó0ô:C˜Ð!4õ :Cr%   