§
    è phX  ã                   ó$  — d 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	m
Z
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ed         fd„¦   «         Z G d„ de¦  «        Zdddeddfd„Z G d„ dee¦  «        ZdS )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.
é    N)Ú	lru_cache)ÚValues)ÚTYPE_CHECKINGÚListÚOptional)Úcertifi)ÚCommand)ÚCommandContextMixIn)Ú
SSLContext©Ú
PipSessionÚreturnr   c                  ó¦  — t           j        dk     rt                               d¦  «         d S 	 dd l} n+# t
          $ r t                               d¦  «         Y d S w xY w	 ddlm} n+# t
          $ r t                               d¦  «         Y d S w xY w| 	                    | j
        ¦  «        }|                     t          j        ¦   «         ¦  «         |S )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      úlC:\Users\Daniel\PycharmProjects\Portfolio_Website\.venv\Lib\site-packages\pip\_internal\cli\index_command.pyÚ_create_truststore_ssl_contextr       sõ   € å
Ô˜'Ò!ð Ý�ŠÐNÑOÔOÐOØˆtðØˆ
ˆ
ˆ
ˆ
øÝð ð ð Ý�ŠÐJÑKÔKÐKØˆtˆtðøøøðØ*Ð*Ð*Ð*Ð*Ð*Ð*øÝð ð ð Ý�ŠÐNÑOÔOÐOØˆtˆtðøøøð ×
Ò
 Ô 7Ñ
8Ô
8€CØ×Ò�gœm™oœoÑ.Ô.Ð.Ø€Js!   ®3 ³$AÁAÁA& Á&$BÂBc            	       ó¢   ‡ — e Zd ZdZdˆ fd„Zededeee	                  fd„¦   «         Z
deddfd„Z	 	 dded	ee         d
ee         ddfd„Zˆ xZS )ÚSessionCommandMixinzE
    A class mixin for command classes needing _build_session().
    r   Nc                 óV   •— t          ¦   «                              ¦   «          d | _        d S )N)ÚsuperÚ__init__Ú_session)ÚselfÚ	__class__s    €r   r%   zSessionCommandMixin.__init__9   s$   ø€ Ý‰Œ×ÒÑÔÐØ.2ˆŒˆˆó    Úoptionsc                 óÐ   — g }t          |dd¦  «        s(t          |dd¦  «        }|r|                     |¦  «         t          |dd¦  «        }|r|                     |¦  «         |pdS )z7Return a list of index urls from user-provided options.Úno_indexFÚ	index_urlNÚextra_index_urls)ÚgetattrÚappendÚextend)Úclsr*   Ú
index_urlsÚurlÚurlss        r   Ú_get_index_urlsz#SessionCommandMixin._get_index_urls=   sƒ   € ð ˆ
Ý�w 
¨EÑ2Ô2ð 	'Ý˜' ;°Ñ5Ô5ˆCØð 'Ø×!Ò! #Ñ&Ô&Ð&Ý�wÐ 2°DÑ9Ô9ˆØð 	$Ø×Ò˜dÑ#Ô#Ð#àÐ!˜TÐ!r)   r   c                 óŠ   — | j         €6|                      |                      |¦  «        ¦  «        | _         | 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_sessionK   sG   € àŒ=ð 	-Ø ×.Ò.¨t×/BÒ/BÀ7Ñ/KÔ/KÑLÔLˆDŒMð ”=Ð,Ð,Ð,ØŒ}Ðr)   ÚretriesÚtimeoutc                 ó`  — ddl m} |j        }|r!t          j                             |¦  «        sJ ‚d|j        vrt          ¦   «         }nd } ||r t          j                             |d¦  «        nd |�|n|j	        |j
        |                      |¦  «        |¬¦  «        }|j        r|j        |_        |j        r|j        |_        |j        s|r|�|n|j        |_        |j        r'|j        |j        dœ|_        d|_        |j        |_        |j         |j        _        |j        |j        _        |S )Nr   r   zlegacy-certszhttp-v2)Úcacher;   Útrusted_hostsr3   Ússl_context)ÚhttpÚhttpsF)Úpip._internal.network.sessionr   Ú	cache_dirÚosÚpathÚisabsÚdeprecated_features_enabledr    Újoinr;   r?   r6   ÚcertÚverifyÚclient_certr<   ÚproxyÚproxiesÚ	trust_envÚ	pip_proxyÚno_inputÚauthÚ	promptingÚkeyring_provider)r'   r*   r;   r<   r   rD   r@   Úsessions           r   r9   z"SessionCommandMixin._build_sessionU   si  € ð 	=Ð<Ð<Ð<Ð<Ð<àÔ%ˆ	ØÐ8¥¤§¢¨iÑ 8Ô 8Ð8Ð8Ð8à Ô!DÐDð 	Ý8Ñ:Ô:ˆKˆKàˆKà�*Ø8AÐK•"”'—,’,˜y¨)Ñ4Ô4Ð4ÀtØ&ÐG�G�G¸¼Ø!Ô/Ø×+Ò+¨GÑ4Ô4Ø#ð
ñ 
ô 
ˆð Œ<ð 	*Ø$œ\ˆGŒNð Ôð 	/Ø"Ô.ˆGŒLð Œ?ð 	R˜gð 	RØ)0ÐQ˜g˜gÀ'Ä/ˆGŒOð Œ=ð 	.àœØ œðð ˆGŒOð !&ˆGÔØ '¤ˆGÔð &-Ô%5Ð!5ˆŒÔØ(/Ô(@ˆŒÔ%àˆr)   )r   N)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   Úclassmethodr   r   r   Ústrr6   r:   Úintr9   Ú__classcell__)r(   s   @r   r"   r"   4   sï   ø€ € € € € ðð ð3ð 3ð 3ð 3ð 3ð 3ð ð" fð "°¸$¸s¼)Ô1Dð "ð "ð "ñ „[ð"ð¨6ð °lð ð ð ð ð "&Ø!%ð	1ð 1àð1ð ˜#”ð1ð ˜#”ð	1ð
 
ð1ð 1ð 1ð 1ð 1ð 1ð 1ð 1r)   r"   rU   r   r*   c                 ó*   — ddl m}  || |¦  «         d S )Nr   )Úpip_self_version_check)Ú!pip._internal.self_outdated_checkr_   )rU   r*   Úchecks      r   Ú_pip_self_version_checkrb   ‰   s,   € ØQÐQÐQÐQÐQÐQà	€Eˆ'�7ÑÔÐÐÐr)   c                   ó"   — e Zd ZdZdeddfd„ZdS )ÚIndexGroupCommandz–
    Abstract base class for commands with the index_group options.

    This also corresponds to the commands that permit the pip version check.
    r*   r   Nc                 ó†  — t          |d¦  «        sJ ‚|j        s|j        rdS 	 |                      |dt	          d|j        ¦  «        ¬¦  «        }|5  t          ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS # t          $ r: t           	                    d¦  «         t           
                    dd¬	¦  «         Y dS 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;   r<   z6There was an error checking the latest version of pip.zSee below for errorT)Úexc_info)ÚhasattrÚdisable_pip_version_checkr,   r9   Úminr<   rb   Ú	Exceptionr   r   r   )r'   r*   rU   s      r   Úhandle_pip_version_checkz*IndexGroupCommand.handle_pip_version_check–   s2  € õ �w 
Ñ+Ô+Ð+Ð+Ð+àÔ,ð 	°Ô0@ð 	ØˆFð	?à×)Ò)ØØÝ˜A˜wœÑ/Ô/ð *ñ ô ˆGð
 ð :ð :Ý'¨°Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :øåð 	?ð 	?ð 	?Ý�NŠNÐSÑTÔTÐTÝ�LŠLÐ.¸ˆLÑ>Ô>Ð>Ð>Ð>Ð>ð	?øøøs6   ¤-A< ÁA/Á"A< Á/A3Á3A< Á6A3Á7A< Á<A C Â?C )rV   rW   rX   rY   r   rl   © r)   r   rd   rd   �   s@   € € € € € ðð ð?°ð ?¸4ð ?ð ?ð ?ð ?ð ?ð ?r)   rd   )rY   ÚloggingrE   r   Ú	functoolsr   Úoptparser   Útypingr   r   r   r   r   Úpip._internal.cli.base_commandr	   Ú!pip._internal.cli.command_contextr
   r   r   rC   r   Ú	getLoggerrV   r   r    r"   rb   rd   rm   r)   r   ú<module>ru      s¢  ððð ð €€€Ø 	€	€	€	Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à Ð Ð Ð Ð Ð à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø AÐ AÐ AÐ AÐ AÐ Aàð 9ØÐÐÐÐÐà8Ð8Ð8Ð8Ð8Ð8à	ˆÔ	˜8Ñ	$Ô	$€ð ð¨°Ô(>ð ð ð ñ „ðð,Rð Rð Rð Rð RÐ-ñ Rô Rð Rðj \ð ¸Fð Àtð ð ð ð ð?ð ?ð ?ð ?ð ?˜Ð!4ñ ?ô ?ð ?ð ?ð ?r)   