
    !2iU                       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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.
    )annotationsN)	lru_cache)Values)TYPE_CHECKING)certifi)Command)CommandContextMixIn)
SSLContext
PipSessionreturnSSLContext | Nonec                    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      ^/var/www/html/pixcura-vrs/venv/lib/python3.11/site-packages/pip/_internal/cli/index_command.py_create_truststore_ssl_contextr       s    
'!!NOOOt



   JKKKtt*******   NOOOtt 

 7
8
8Cgmoo...Js!   3 $AAA& &$BBc                  R     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().
    r   Nonec                V    t                                                       d | _        d S )N)super__init___session)self	__class__s    r   r&   zSessionCommandMixin.__init__;   s$    +/    optionsr   list[str] | Nonec                    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5C '!!#&&&w 2D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_sessionM   sE    =  ..t/B/B7/K/KLLDM =,,,}r*   Nretries
int | None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_hostsr5   ssl_context)httphttpsF)pip._internal.network.sessionr   	cache_dirospathisabsdeprecated_features_enabledr    joinr=   rB   r8   certverifyclient_certr?   proxyproxies	trust_env	pip_proxyno_inputauth	promptingkeyring_provider)r(   r+   r=   r?   r   rG   rC   sessions           r   r;   z"SessionCommandMixin._build_sessionW   sg    	=<<<<<%	8i 8 8888!DDD8::KKK*8AK"',,y)444t&2GG!/++G44#
 
 
 < 	*$\GN  	/".GL ? 	Rg 	R)0)<gg'/GO = 	.  GO !&G 'G &-%5!5(/(@%r*   )r   r#   )r+   r   r   r,   )r+   r   r   r   )NN)r+   r   r=   r>   r?   r>   r   r   )
__name__
__module____qualname____doc__r&   classmethodr8   r<   r;   __classcell__)r)   s   @r   r"   r"   6   s         0 0 0 0 0 0 " " " ["    #"	1 1 1 1 1 1 1 1 1r*   r"   rX   r   r+   r   r#   c                *    ddl m}  || |           d S )Nr   )pip_self_version_check)!pip._internal.self_outdated_checkr`   )rX   r+   checks      r   _pip_self_version_checkrc      s,    QQQQQQ	E'7r*   c                      e Zd ZdZd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   r   r#   c                   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.   r;   minr?   rc   	Exceptionr   r   r   )r(   r+   rX   s      r   handle_pip_version_checkz*IndexGroupCommand.handle_pip_version_check   s2    w
+++++, 	0@ 	F	?))Aw// *  G
  : :'999: : : : : : : : : : : : : : : : : : 	? 	? 	?NNSTTTLL.L>>>>>>	?s6   -A< A/"A< /A33A< 6A37A< <A C ?C N)r+   r   r   r#   )rY   rZ   r[   r\   rm    r*   r   re   re      s2         ? ? ? ? ? ?r*   re   )r   r   )rX   r   r+   r   r   r#   )r\   
__future__r   loggingrH   r   	functoolsr   optparser   typingr   r   r   pip._internal.cli.base_commandr   !pip._internal.cli.command_contextr	   r   r
   rF   r   	getLoggerrY   r   r    r"   rc   re   rn   r*   r   <module>rw      s    # " " " " "  				 



                               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   ? ? ? ? ?!4 ? ? ? ? ?r*   