HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/site-packages/pip/_internal/network/__pycache__/session.cpython-311.pyc
�

�mi�J��R�UdZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlmZmZmZddlmZmZmZmZddlmZmZddlm Z!ddl"m#Z#m$Z$dd	l"m%Z&dd
l'm(Z(m)Z)ddl*m+Z+ddl,m-Z-dd
l.m/Z/ddl0m1Z1ddl2m3Z3ddl4m5Z5ddl6m7Z7ddl8m9Z9ddl:m;Z;ddl<m=Z=ddl>m?Z?m@Z@ddlAmBZBerddlCmDZDddlEmFZFddlGmHZHe	jIeJ��ZKeLeMeMeeeNeMffZOejPde/���gd�ZQdeRd<dZSd5d"�ZTejUd#�$��d6d&���ZVGd'�d(e$��ZWGd)�d*��ZXGd+�d,eXe&��Z%Gd-�d.eXe!��Z Gd/�d0e%��ZYGd1�d2e ��ZZGd3�d4ej[��Z\dS)7zhPipSession and supporting code, containing all pip-specific
network request configuration and behavior.
�)�annotationsN)�	Generator�Mapping�Sequence)�
TYPE_CHECKING�Any�Optional�Union)�requests�urllib3)�CacheControlAdapter)�DEFAULT_POOLBLOCK�BaseAdapter)�HTTPAdapter)�PreparedRequest�Response)�CaseInsensitiveDict)�ConnectionPool)�InsecureRequestWarning)�__version__)�get_default_environment)�Link)�MultiDomainBasicAuth)�
SafeFileCache)�has_tls)�libc_ver)�build_url_from_netloc�parse_netloc)�url_to_path)�
SSLContext)�PoolManager)�ProxyManager�ignore)�category))�https�*r&)r&�	localhostr&)r&z127.0.0.0/8r&)r&z::1/128r&)�filer&N)�sshr&r&zlist[SecureOrigin]�SECURE_ORIGINS)�
BUILD_BUILDID�BUILD_ID�CI�	PIP_IS_CI�return�boolc�>�td�tD����S)z?
    Return whether it looks like pip is running under CI.
    c3�2K�|]}|tjvV��dS�N)�os�environ)�.0�names  �?D:\Python311\Lib\site-packages\pip/_internal/network/session.py�	<genexpr>z looks_like_ci.<locals>.<genexpr>is)����G�G�d�t�r�z�!�G�G�G�G�G�G�)�any�CI_ENVIRONMENT_VARIABLES�r:r8�
looks_like_cir>bs"���G�G�.F�G�G�G�G�G�Gr:�)�maxsize�strc
�l�dtd�tj��dtj��id�}|dddkrtj��|dd<n�|dddkrJtj}|jd	kr
|d
d�}d�d
�|D����|dd<n]|dddkrtj��|dd<n.|dddkrtj��|dd<tj�d��r�ddl	m
}|���|���|�
��f}ttd�t!gd�|������}ttd�t!ddgt#��������}|r||d<|r||d<tj�d��r8tj��drdtj��dd�|d<tj��r*tj��|�di��d<tj��r*tj��|�di��d<tj��rtj��|d<t/��rdd
l}|j|d<t5���d��}|�t9|j��|d <t;jd!���z	t?j d!d"gt>j!d#�$��}|�d%��r0|�"d&��d'�#��|d(<n#tH$rYnwxYwtK��rd)nd
|d*<tLj'�(d+��}	|	�|	|d,<d-�)|tUj+|d.d)�/���0��S)1z6
    Return a string representing the user agent.
    �pip)r7�versionr7)�	installer�python�implementationrG�CPythonrD�PyPy�finalN��.c�,�g|]}t|����Sr=)rA)r6�xs  r8�
<listcomp>zuser_agent.<locals>.<listcomp>�s��/�/�/��S��V�V�/�/�/r:�Jython�
IronPython�linuxr)�distroc��|dS�Nr?r=�rNs r8�<lambda>zuser_agent.<locals>.<lambda>��
��!�A�$�r:)r7rD�idc��|dSrUr=rVs r8rWzuser_agent.<locals>.<lambda>�rXr:�lib�libcrS�darwin�macOS�system�release�cpu�openssl_version�
setuptools�setuptools_version�rustcz	--versiong�?)�stderr�timeoutsrustc � r?�
rustc_versionT�ci�PIP_USER_AGENT_USER_DATA�	user_dataz9{data[installer][name]}/{data[installer][version]} {json})�,�:)�
separators�	sort_keys)�data�json),r�platform�python_version�python_implementation�sys�pypy_version_info�releaselevel�join�
startswith�pip._vendorrSr7rD�codename�dict�filter�zipr�mac_verr_�
setdefaultr`�machiner�_ssl�OPENSSL_VERSIONr�get_distributionrA�shutil�which�
subprocess�check_output�STDOUT�split�decode�	Exceptionr>r4r5�get�formatrr�dumps)
rqrwrS�linux_distribution�distro_infosr\�ssl�setuptools_dist�rustc_outputrls
          r8�
user_agentr�ls���$��<�<��)�+�+��H�2�4�4�
���D����f�%��2�F�,4�,C�,E�,E��
��y�)�)�	
��	��	'�6�	1�F��1���)�W�4�	6� 1�"�1�"� 5��,/�H�H�/�/�.�/�/�/�-
�-
��
��y�)�)�
��	��	'�8�	3�F�,4�,C�,E�,E��
��y�)�)�	
��	��	'�<�	7�F�,4�,C�,E�,E��
��y�)�
�|���w�'�'�*�&�&�&�&�&�&�#�[�[�]�]�F�N�N�,<�,<�f�o�o�>O�>O�O��'+�����-�-�-�/A�B�B�
�
�(
�(
�������U�I�&��
�
�3�3�
�
�
�
���	(�#'�L�� ��	*�)�D��N�
�|���x�(�(�M�X�-=�-?�-?��-B�M�")�h�6F�6H�6H��6K�L�L��X������B�08��0A�0A�����"�%�%�f�-�����F�3;�3C�3E�3E�����"�%�%�i�0�����)��&�(�(��U���y�y�6�����"%�"5��
��-�/�/�@�@��N�N�O��B�%(��)@�%A�%A��
!�"�
�|�G���
M�	M�%�2��+�&�z�/@�#����L��&�&�y�1�1�
M�)5�(:�(:�4�(@�(@��(C�(J�(J�(L�(L��_�%����	�	�	��D�	����'���2���d�D��J��
���9�:�:�I��&�%��[��F�M�M�
�
�Z���t�
D�
D�
D�N���s�#N?�?
O�Oc�*�eZdZ					ddd�Zdd�ZdS)�LocalFSAdapterFNT�requestr�streamr0rg�"float | tuple[float, float] | None�verify�
bool | str�cert�str | tuple[str, str] | None�proxies�Mapping[str, str] | Noner/rc�~�t|j��}t��}d|_|j|_	t	j|��}	tj�|	j	d���}
tj|��dpd}t||	j
|
d���|_t|d��|_|jj|_nl#t$$r_}d|_t'|��j|_t-j|j�d	|�������|_Yd}~nd}~wwxYw|S)
N��T)�usegmtrz
text/plain)zContent-TypezContent-Lengthz
Last-Modified�rbi�z: )r�urlr�status_coder4�stat�email�utils�
formatdate�st_mtime�	mimetypes�
guess_typer�st_size�headers�open�raw�close�OSError�type�__name__�reason�io�BytesIO�encode)
�selfr�r�rgr�r�r��pathname�resp�stats�modified�content_type�excs
             r8�sendzLocalFSAdapter.send�s<���w�{�+�+���z�z������;���	(��G�H�%�%�E��{�-�-�e�n�T�-�J�J�H�$�/��9�9�!�<�L��L�.�$0�&+�m�%-�����D�L��H�d�+�+�D�H����D�J�J��%�	D�	D�	D� #�D���s�)�)�,�D�K��z�T�[�"9�"9�C�"9�"9�"@�"@�"B�"B�C�C�D�H�H�H�H�H�H�����	D����(�s�C�
D:�AD5�5D:�Nonec��dSr3r=)r�s r8r�zLocalFSAdapter.close�s���r:)FNTNN)r�rr�r0rgr�r�r�r�r�r�r�r/r)r/r�)r��
__module__�__qualname__r�r�r=r:r8r�r��sS�������6:�!�-1�,0�%�%�%�%�%�N
�
�
�
�
�
r:r�c�F��eZdZdZdd�d�fd
�Zefd�fd�
Zd�fd�Z�xZS)�_SSLContextAdapterMixina#Mixin to add the ``ssl_context`` constructor argument to HTTP adapters.

    The additional argument is forwarded directly to the pool manager. This allows us
    to dynamically decide what SSL store to use at runtime, which is used to implement
    the optional ``truststore`` backend.
    N)�ssl_contextr��SSLContext | None�kwargsrr/r�c�H��||_t��jdi|��dS)Nr=)�_ssl_context�super�__init__)r�r�r��	__class__s   �r8r�z _SSLContextAdapterMixin.__init__s0���(��������"�"�6�"�"�"�"�"r:�connections�intr@�blockr0�pool_kwargsr!c���|j�|�d|j��t��jd|||d�|��S)Nr�)r�r@r�r=)r�r�r��init_poolmanager)r�r�r@r�r�r�s     �r8r�z(_SSLContextAdapterMixin.init_poolmanagersb�����	E��"�"�=�$�2C�D�D�D�'�u�w�w�'�
�#���
�
��	
�
�	
r:�proxyrA�proxy_kwargsr"c�|��|j�|�d|j��t��j|fi|��S)Nr�)r�r�r��proxy_manager_for)r�r�r�r�s   �r8r�z)_SSLContextAdapterMixin.proxy_manager_forsI�����	F��#�#�M�4�3D�E�E�E�(�u�w�w�(��?�?�,�?�?�?r:)r�r�r�rr/r�)
r�r�r@r�r�r0r�rr/r!)r�rAr�rr/r")	r�r�r��__doc__r�rr�r��
__classcell__�r�s@r8r�r��s����������*.�#�#�#�#�#�#�#�#�(�	
�
�
�
�
�
�
� @�@�@�@�@�@�@�@�@�@r:r�c��eZdZdS)rN�r�r�r�r=r:r8rr'��������Dr:rc��eZdZdS)r
Nr�r=r:r8r
r
+r�r:r
c� ��eZdZd�fd�Z�xZS)
�InsecureHTTPAdapter�connrr�rAr�r�r�r�r/r�c�R��t���||d|���dS�NF)r�r�r�r��r��cert_verify�r�r�r�r�r�r�s     �r8r�zInsecureHTTPAdapter.cert_verify0�,���	������3�u�4��H�H�H�H�Hr:�
r�rr�rAr�r�r�r�r/r��r�r�r�r�r�r�s@r8r�r�/�G�������I�I�I�I�I�I�I�I�I�Ir:r�c� ��eZdZd�fd�Z�xZS)
�InsecureCacheControlAdapterr�rr�rAr�r�r�r�r/r�c�R��t���||d|���dSr�r�r�s     �r8r�z'InsecureCacheControlAdapter.cert_verify;r�r:r�r�r�s@r8r�r�:r�r:r�c�n��eZdZUdZded<dddddd�d*�fd�Zd+d�Z	d,d-d �Zd.d"�Zd/d%�Z	d0�fd)�Z
�xZS)1�
PipSessionNz
int | Nonergrr=)�retries�cache�
trusted_hosts�
index_urlsr��argsrr�r�r��
str | Noner��
Sequence[str]r��list[str] | Noner�r�r�r/r�c���t��j|i|��g|_d|_t	��|jd<t
|���|_tj	|gd�d���}t|���}|rCtt|��||���}	tt|��|�	��|_nt||�
��}	||_|�d|	��|�d|��|�d
t#����|D]}
|�|
d����dS)zj
        :param trusted_hosts: Domains not to emit warnings for when not using
            HTTPS.
        Nz
User-Agent)r�)i�i�i�iig�?)�total�status_forcelist�backoff_factor)�max_retries)r�r�r�)r�r�)r�r�zhttps://zhttp://zfile://T)�suppress_logging)r�r��pip_trusted_origins�	pip_proxyr�r�r�authr�Retryr�r
rr��_trusted_host_adapterr�mountr��add_trusted_host)r�r�r�r�r�r�r�r��insecure_adapter�secure_adapter�hostr�s           �r8r�zPipSession.__init__Hs����	�����$�)�&�)�)�)�BD�� ����&0�\�\���\�"�)�J�?�?�?��	��-��7�6�6� �
�
�
��,/�7�C�C�C���	:�0�#�E�*�*�#�'����N�
*E�#�E�*�*�#�*�*�*�D�&�&�
)�W�+�V�V�V�N�)9�D�&��
�
�:�~�.�.�.��
�
�9�.�/�/�/�	
�
�
�9�n�.�.�/�/�/�!�	?�	?�D��!�!�$��!�>�>�>�>�	?�	?r:�new_index_urls�	list[str]c��||j_dS)zn
        :param new_index_urls: New index urls to update the authentication
            handler with.
        N)rr�)r�rs  r8�update_index_urlszPipSession.update_index_urls�s��
 .��	���r:Fr
rA�sourcerr0c�`�|s*d|��}|�	|d|�d�z
}t�|��t|��\}}|�td|�����||f|jvr|j�||f��|�t|d���dz|j��|�t|��dz|j��|sZ|�t|d���d	z|j��|�t|��d	z|j��dSdS)
z�
        :param host: It is okay to provide a host that has previously been
            added.
        :param source: An optional source string, for logging where the host
            string came from.
        zadding trusted host: Nz (from �)z+Trusted host URL must include a host part: �http)�scheme�/rn)	�logger�infor�
ValueErrorr�appendrrr)r�r
rr�msg�parsed_host�parsed_ports       r8rzPipSession.add_trusted_host�sw�� �	�2�$�2�2�C��
+��*��*�*�*�*���K�K�����#/��#5�#5� ��[��	U��S�4�S�S�T�T�T���%�T�-E�E�	H��$�+�+�[�+�,F�G�G�G��
�
�!�$�v�6�6�6��<�d�>X�	
�	
�	
�	
�
�
�(��.�.��4�d�6P�Q�Q�Q��	V��J�J�%�d�6�:�:�:�S�@��*�
�
�
�

�J�J�,�T�2�2�S�8�$�:T�U�U�U�U�U�
	V�	Vr:�#Generator[SecureOrigin, None, None]c#�TK�tEd{V��|jD]\}}d||�dn|fV��dS)Nr&)r*r)r�r
�ports   r8�iter_secure_originszPipSession.iter_secure_origins�s]����!�!�!�!�!�!�!�!��2�	=�	=�J�D�$���T�;�c�c�t�<�<�<�<�<�	=�	=r:�locationrc�X�tj�t|����}|j|j|j}}}|�dd��d}|���D]�}|\}}}	||kr|dkr�	tj
|pd��}
tj|��}|
|vr�EnD#t$r7|r2|�
��|�
��kr|dkrY��YnwxYw||	kr	|	dkr|	���dSt�d||��dS)	N�+r?���r&�Tz�The repository located at %s is not a trusted or secure host and is being ignored. If this repository is available via HTTPS we recommend you use HTTPS instead, otherwise you may silence this warning and allow it anyway with '--trusted-host %s'.F)�urllib�parse�urlparserAr�hostnamer�rsplitr�	ipaddress�
ip_address�
ip_networkr�lowerr�warning)r�r �parsed�origin_protocol�origin_host�origin_port�
secure_origin�secure_protocol�secure_host�secure_port�addr�networks            r8�is_secure_originzPipSession.is_secure_origin�s�����&�&�s�8�}�}�5�5���M��O��K�'2���*�0�0��a�8�8��<��
"�5�5�7�7�!	�!	�M�8E�5�O�[�+��/�1�
�o��6L�
��
� �+�K�,=�2�>�>��#�.�{�;�;���w�&������
�
�
� ��#�)�)�+�+�{�/@�/@�/B�/B�B��$�s�*��
�H���
����"�{�*�
��3�&�
� �
�
��4�4�
	���
I�
��
	
�	
�	
��us�*B8�8<C9�8C9�methodr�rc���|�d|j��|�d|j��t��j||g|�Ri|��S)Nrgr�)r�rgr�r�r�)r�r:r�r�r�r�s     �r8r�zPipSession.request	s]������)�T�\�2�2�2����)�T�\�2�2�2��u�w�w��v�s�<�T�<�<�<�V�<�<�<r:)r�rr�r�r�r�r�r�r�r�r�r�r�rr/r�)rrr/r�)NF)r
rArr�rr0r/r�)r/r)r rr/r0)
r:rAr�rAr�rr�rr/r)r�r�r�rg�__annotations__r�rrrr9r�r�r�s@r8r�r�Es����������G�����
� �')�'+�)-�O?�O?�O?�O?�O?�O?�O?�O?�b.�.�.�.�NS�V�V�V�V�V�B=�=�=�=�
A�A�A�A�F=�=�=�=�=�=�=�=�=�=r:r�)r/r0)r/rA)]r��
__future__r�email.utilsr��	functoolsr�r*rr�loggingr�r4rsr�r�rv�urllib.parser%�warnings�collections.abcrrr�typingrrr	r
r{rr�pip._vendor.cachecontrolr
�_BaseCacheControlAdapter�pip._vendor.requests.adaptersrrr�_BaseHTTPAdapter�pip._vendor.requests.modelsrr�pip._vendor.requests.structuresr�"pip._vendor.urllib3.connectionpoolr�pip._vendor.urllib3.exceptionsrrCr�pip._internal.metadatar�pip._internal.models.linkr�pip._internal.network.authr�pip._internal.network.cacher�pip._internal.utils.compatr�pip._internal.utils.glibcr�pip._internal.utils.miscrr�pip._internal.utils.urlsrr�r �pip._vendor.urllib3.poolmanagerr!� pip._vendor.urllib3.proxymanagerr"�	getLoggerr�r�tuplerAr��SecureOrigin�filterwarningsr*r<r<r>�	lru_cacher�r�r�r�r��Sessionr�r=r:r8�<module>r]s������#�"�"�"�"�"���������	�	�	�	�����������������	�	�	�	�����
�
�
�
�����
�
�
�
���������8�8�8�8�8�8�8�8�8�8�������������*�)�)�)�)�)�)�)�T�T�T�T�T�T�H�H�H�H�H�H�H�H�I�I�I�I�I�I�A�A�A�A�A�A�A�A�?�?�?�?�?�?�=�=�=�=�=�=�A�A�A�A�A�A�������:�:�:�:�:�:�*�*�*�*�*�*�;�;�;�;�;�;�5�5�5�5�5�5�/�.�.�.�.�.�.�.�.�.�.�.�H�H�H�H�H�H�H�H�0�0�0�0�0�0��>�������;�;�;�;�;�;�=�=�=�=�=�=�
��	�8�	$�	$���S�#�x��c�3�h��8�8�9������+A�B�B�B�B�
&�
&�
&��
�
�
�
�(	��H�H�H�H����Q����b�b�b� ��b�J)
�)
�)
�)
�)
�[�)
�)
�)
�X&@�&@�&@�&@�&@�&@�&@�&@�R	�	�	�	�	�)�+;�	�	�	�	�	�	�	�	�1�3K�	�	�	�I�I�I�I�I�+�I�I�I�I�I�I�I�I�"5�I�I�I�K=�K=�K=�K=�K=��!�K=�K=�K=�K=�K=r: