CasperSecurity
o
B�Pjȅ � @ s� d Z ddlmZ ddlZddlZddlZddlmZ ddlm Z m
Z
mZ ddlm
Z
ddlmZmZmZ dd lmZ dd
lmZ ddlmZ ddlmZ dd
lmZmZmZ ddlm Z m!Z!m"Z"m#Z# ddl$m%Z%m&Z&m'Z'm(Z( ddl)m*Z*m+Z+ ddl,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ er�ddlAmBZB ddlCmDZDmEZE ddlFmZG ddlmHZH ejIdkr�ejJZKnejZKefd-d d!�ZLefd.d%d&�ZMG d'd(� d(�ZNG d)d*� d*eN�ZOd/d+d,�ZPdS )0z�
requests.sessions
~~~~~~~~~~~~~~~~~
This module provides a Session object to manage and persist settings across
requests (cookies, auth, proxies).
� )�annotationsN)�OrderedDict)� Generator�Mapping�MutableMapping)� timedelta)�
TYPE_CHECKING�Any�cast� )�to_native_string)�is_prepared)�HTTPAdapter)�_basic_auth_str)� 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�Response)�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)� CookieJar)�Self�Unpack)�_types)�BaseAdapter�win32�request_settingr �session_setting�
dict_class�type�returnc 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: �D/opt/hikvison/venv/lib/python3.10/site-packages/requests/sessions.py�
<listcomp>e s z!merge_setting.<locals>.<listcomp>)�
isinstancer r- �update�items)r4 r5 r6 �merged_setting� none_keys�keyr: r: r>