ruạṛ
a K��f�r � @ s� d Z ddlZddlZddlZddlmZ ddlmZ ddlm Z m Z mZmZm Z mZ ddlmZmZmZmZ ddlmZmZmZ dd lmZmZ dd lmZ ddlmZmZm Z ddl!m"Z"m#Z#m$Z$m%Z% dd l&m'Z' ddl(m)Z) ddlm*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1 ddlm2Z2 ej3dk�rLz ej4Z5W n e6�yH ej7Z5Y n0 nejZ5efdd�Z8efdd�Z9G dd� de:�Z;G dd� de;�Z<dd� Z=dS )z� requests.session ~~~~~~~~~~~~~~~~ This module provides a Session object to manage and persist settings across requests (cookies, auth, proxies). � N)� timedelta� )�_basic_auth_str)� cookielib�is_py3�OrderedDict�urljoin�urlparse�Mapping)�cookiejar_from_dict�extract_cookies_to_jar�RequestsCookieJar� merge_cookies)�Request�PreparedRequest�DEFAULT_REDIRECT_LIMIT)� default_hooks� dispatch_hook)�to_native_string)�to_key_val_list�default_headers� DEFAULT_PORTS)�TooManyRedirects� InvalidSchema�ChunkedEncodingError�ContentDecodingError)�CaseInsensitiveDict)�HTTPAdapter)�requote_uri�get_environ_proxies�get_netrc_auth�should_bypass_proxies�get_auth_from_url�rewind_body)�codes)�REDIRECT_STATI�win32c C sp |du r| S | du r|S t |t�r,t | t�s0| S |t|��}|�t| �� dd� |�� D �}|D ] }||= q`|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( �u/sparta/input/_build_configuration/image_build+validate/lib/bmcenv/lib64/python3.9/site-packages/requests/sessions.py� <listcomp>I � z!merge_setting.<locals>.<listcomp>)� isinstancer r �update�items)�request_setting�session_setting� dict_class�merged_setting� none_keys�keyr( r( r, � merge_setting1 s ��r8 c C s@ |du s|� d�g kr| S | du s0| � d�g kr4|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)�getr8 )� request_hooks� session_hooksr4 r( r( r, �merge_hooksP s r= c @ s>