Ë
    ï<¤hU  ã                  óü   — 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 erdd
lmZ ddlmZ  ej,                  e«      Zedd„«       Z G d„ de«      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)Ú	lru_cache)ÚValues)ÚTYPE_CHECKING)Úcertifi)ÚCommand)ÚCommandContextMixIn)Ú
SSLContext©Ú
PipSessionc                 ó|  — t         j                  dk  rt        j                  d«       y 	 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)N)é   é
   z7Disabling truststore because Python version isn't 3.10+r   z1Disabling truststore since ssl support is missing)Ú
truststorez5Disabling truststore because platform isn't supported)ÚsysÚversion_infoÚloggerÚdebugÚsslÚImportErrorÚwarningÚpip._vendorr   r
   ÚPROTOCOL_TLS_CLIENTÚload_verify_locationsr   Úwhere)r   r   Úctxs      údC:\Suresh\moveshuttle\MDcreated\moveengine\venv\Lib\site-packages\pip/_internal/cli/index_command.pyÚ_create_truststore_ssl_contextr      s¢   € ä
×Ñ˜'Ò!Ü‰ÐNÔOØðÛð
Ý*ð
 ×
Ñ
 × 7Ñ 7Ó
8€CØ×ÑœgŸm™m›oÔ.Ø€Jøô ò Ü‰ÐJÔKÙðûô ò Ü‰ÐNÔOÙðús"   «A6 °B Á6BÂBÂ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%   r0   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                  r|j                  |_        |j                  r|j                  |_        |j                  s|r||n|j                  |_        |j                   r6|j                   |j                   dœ|_        d|_        |j                   |_        |j(                   |j*                  _        |j.                  |j*                  _        |S )Nr   r   zlegacy-certszhttp-v2)ÚcacheÚretriesÚtrusted_hostsr1   Ússl_context)ÚhttpÚhttpsF)Úpip._internal.network.sessionr   Ú	cache_dirÚosÚpathÚisabsÚdeprecated_features_enabledr   Újoinr;   r<   r4   ÚcertÚverifyÚclient_certÚtimeoutÚproxyÚproxiesÚ	trust_envÚ	pip_proxyÚno_inputÚauthÚ	promptingÚkeyring_provider)r%   r0   r;   rJ   r   rA   r=   Úsessions           r   r7   z"SessionCommandMixin._build_sessionW   s:  € õ 	=à×%Ñ%ˆ	Ù¤§¡§¡¨iÔ 8Ð8Ð8à ×!DÑ!DÑDÜ8Ó:‰KàˆKáÙ8A”"—'‘'—,‘,˜y¨)Ô4ÀtØ&Ð2‘G¸¿¹Ø!×/Ñ/Ø×+Ñ+¨GÓ4Ø#ô
ˆð <Š<Ø$Ÿ\™\ˆGŒNð ×ÒØ"×.Ñ.ˆGŒLð ?Š?™gØ)0Ð)<™gÀ'Ç/Á/ˆGŒOð =Š=àŸ™Ø Ÿ™ñˆGŒOð !&ˆGÔØ '§¡ˆGÔð &-×%5Ñ%5Ð!5ˆ‰ÔØ(/×(@Ñ(@ˆ‰Ô%àˆr'   )ÚreturnÚNone)r0   r   rT   zlist[str] | None)r0   r   rT   r   )NN)r0   r   r;   ú
int | NonerJ   rV   rT   r   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r#   Úclassmethodr4   r8   r7   Ú__classcell__)r&   s   @r   r    r    6   sY   ø„ ñõ0ð ò"ó ð"óð #Ø"ð	1àð1ð ð1ð ð	1ð
 
÷1r'   r    c                ó"   — ddl m}  || |«       y )Nr   )Úpip_self_version_check)Ú!pip._internal.self_outdated_checkr^   )rS   r0   Úchecks      r   Ú_pip_self_version_checkra   ‹   s   € ÝQá	ˆ'7Õr'   c                  ó   — e Zd ZdZ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                ó`  — t        |d«      sJ ‚|j                  s|j                  ry	 | j                  |dt	        d|j
                  «      ¬«      }|5  t        ||«       ddd«       y# 1 sw Y   yxY w# t        $ r/ t        j                  d«       t        j                  dd¬	«       Y yw xY w)
z€
        Do the pip version check if not disabled.

        This overrides the default behavior of not doing the check.
        r)   Nr   é   )r;   rJ   z6There was an error checking the latest version of pip.zSee below for errorT)Úexc_info)ÚhasattrÚdisable_pip_version_checkr)   r7   ÚminrJ   ra   Ú	Exceptionr   r   r   )r%   r0   rS   s      r   Úhandle_pip_version_checkz*IndexGroupCommand.handle_pip_version_check˜   s›   € ô w 
Ô+Ð+Ð+à×,Ò,°×0@Ò0@Øð	?à×)Ñ)ØØÜ˜A˜wŸ™Ó/ð *ó ˆGò
 Ü'¨°Ô9÷ —‘ûäò 	?ÜN‰NÐSÔTÜL‰LÐ.¸ˆLÖ>ð	?ús/   ©*A5 ÁA)Á A5 Á)A2Á.A5 Á2A5 Á55B-Â,B-N)r0   r   rT   rU   )rW   rX   rY   rZ   rk   © r'   r   rc   rc   ‘   s   „ ñô?r'   rc   )rT   zSSLContext | None)rS   r   r0   r   rT   rU   )rZ   Ú
__future__r   ÚloggingrB   r   Ú	functoolsr   Úoptparser   Útypingr   r   r   Úpip._internal.cli.base_commandr   Ú!pip._internal.cli.command_contextr	   r   r
   r@   r   Ú	getLoggerrW   r   r   r    ra   rc   rl   r'   r   ú<module>ru      s}   ðñõ #ã Û 	Û 
Ý Ý Ý  å å 2Ý AáÝå8à	ˆ×	Ñ	˜8Ó	$€ð òó ðô,RÐ-ô Rójô?˜Ð!4õ ?r'   