File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-310.pyc
Back
o ;jw � @ sj d Z ddlZddlZddlZddlmZ ddlmZ ddlm Z ddl mZ ddlm Z dd lmZmZmZmZ dd lmZmZmZmZ ddlmZmZmZmZ ddlmZmZ dd l m!Z!m"Z"m#Z#m$Z$ ddl%m&Z& ddl'm(Z( ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ej4dkr�ej5Z6nejZ6efdd�Z7efdd�Z8G dd� d�Z9G dd� de9�Z:dd� Z;dS )z� requests.sessions ~~~~~~~~~~~~~~~~~ This module provides a Session object to manage and persist settings across requests (cookies, auth, proxies). � N)�OrderedDict)� timedelta� )�to_native_string)�HTTPAdapter)�_basic_auth_str)�Mapping� cookielib�urljoin�urlparse)�RequestsCookieJar�cookiejar_from_dict�extract_cookies_to_jar� merge_cookies)�ChunkedEncodingError�ContentDecodingError� InvalidSchema�TooManyRedirects)� default_hooks� dispatch_hook)�DEFAULT_REDIRECT_LIMIT�REDIRECT_STATI�PreparedRequest�Request)�codes)�CaseInsensitiveDict) � DEFAULT_PORTS�default_headers�get_auth_from_url�get_environ_proxies�get_netrc_auth�requote_uri�resolve_proxies�rewind_body�should_bypass_proxies�to_key_val_list�win32c C sp |du r| S | du r|S t |t�rt | t�s| S |t|��}|�t| �� dd� |�� D �}|D ]}||= q0|S )z�Determines appropriate setting for a given request, taking into account the explicit setting on that request, and the setting in the session. If a setting is a dictionary, they will be merged together using `dict_class` Nc S s g | ] \}}|d u r|�qS �N� )�.0�k�vr( r( �Q/opt/saltstack/salt/lib/python3.10/site-packages/pip/_vendor/requests/sessions.py� <listcomp>T s z!merge_setting.<locals>.<listcomp>)� isinstancer r% �update�items)Zrequest_settingZsession_setting� dict_classZmerged_settingZ none_keys�keyr( r( r, � merge_setting= s ��r3 c C s@ |du s|� d�g kr | S | du s| � d�g kr|S t| ||�S )z�Properly merges both requests and session hooks. This is necessary because when request_hooks == {'response': []}, the merge breaks Session hooks entirely. N�response)�getr3 )Z request_hooksZ session_hooksr1 r( r( r, �merge_hooks[ s r6 c @ sJ e Zd Zdd� Zdd� Z ddd �Zd d� Zdd � Zdd� ZdS )�SessionRedirectMixinc C s( |j r|jd }|�d�}t|d�S dS )z7Receives a Response. Returns a redirect URI or ``None``�location�latin1�utf8N)Zis_redirect�headers�encoder )�self�respr8 r( r( r, �get_redirect_targetk s z(SessionRedirectMixin.get_redirect_targetc C s� t |�}t |�}|j|jkrdS |jdkr&|jdv r&|jdkr&|jdv r&dS |j|jk}|j|jk}t�|jd�df}|sI|j|v rI|j|v rIdS |pL|S )zFDecide whether Authorization header should be removed when redirectingT�http)�P N�https)i� NFN)r �hostname�scheme�portr r5 )r= Zold_urlZnew_urlZ old_parsedZ new_parsedZchanged_portZchanged_scheme�default_portr( r( r, �should_strip_auth s$ � z&SessionRedirectMixin.should_strip_authFNTc k sB � g } | � |�}t|j�j}|�r|�� } | �|� | dd� |_z|j W n tt t fy9 |jjdd� Y nw t |j�| jkrMtd| j� d�|d��|�� |�d�ret|j�}d �t|j�|g�}t|�}|jd krw|rw|j|d�}n|jr}|j}|�� }|js�t|jt|��}nt|�}t|�| _| �| |� |jtjtjfvr�d}|D ] }| j� |d� q�d| _!| j}|� d d� t"| j#||j� t$| j#| j%� | �&| j#� | �'| |�}| �(| |� | j)duo�d|v p�d|v }|r�t*| � | }|r�|V n | j+|f|||||dd�| ��}t"| j%| |j� | � |�}|V |sdS dS )zBReceives a Response. Returns a generator of Responses or Requests.r NF)Zdecode_contentz Exceeded z redirects.)r4 z//�:� )�fragment)�Content-LengthzContent-Type�Transfer-EncodingZCookierK rL )�stream�timeout�verify�cert�proxies�allow_redirects),r? r �urlrJ �copy�append�history�contentr r �RuntimeError�raw�read�len� max_redirectsr �close� startswith�joinr rD �_replace�geturl�netlocr r! �rebuild_method�status_coder Ztemporary_redirectZpermanent_redirectr; �pop�bodyr Z_cookiesr �cookiesZprepare_cookies�rebuild_proxies�rebuild_authZ_body_positionr# �send)r= r>