�
>r*jȅ � �B � 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@ erddlAmBZB ddlCmDZDmEZE ddlFmZG ddlmHZH ej� dk( r
ej� ZKnej
ZKef d!d�ZLef d"d�ZM G d� d� ZN G d� deN� ZOd#d �ZPy)$z�
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�win32c � � |�| S | �|S t |t � rt | t � s| S |t |� � }|j t | � � |j � D ��cg c]
\ }}|�� |�� }}}|D ] }||= � |S c c}}w )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`
)�
isinstancer r. �update�items)�request_setting�session_setting�
dict_class�merged_setting�k�v� none_keys�keys �@/opt/hc_python/lib/python3.12/site-packages/requests/sessions.py�
merge_settingrB L s� � � �������� �?�G�,��O�W�1U������ @�A�N����/�/�:�;� "0�!5�!5�!7�E�!7�v��1�1�9��!7�I�E����3�� � ��� Fs �)
B�4Bc �| � |�|j d� g k( r| S | �| j d� g k( r|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.
�response)�getrB )�
request_hooks�
session_hooksr; s rA �merge_hooksrH l sO � � ��
� 1� 1�*� =�� C�����
� 1� 1�*� =�� C�����
�z�B�B� c � � e Zd ZU ded<