File: //home/arjun/projects/env/lib/python3.10/site-packages/requests/__pycache__/utils.cpython-310.pyc
o
$we�� � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlm
Z
ddlmZmZ ddlmZ ddlmZ ddlmZmZmZmZ dd lmZmZmZmZmZmZ dd
lm Z! ddlm"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( ddl)m*Z* dd
l+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1 dZ2e�3� Z4ddd�Z5d�6e�7dedd�d ��Z8ej9dkr�dd� Z:dd� Z"dd� Z;dd � Z<dtd"d#�Z=d$d%� Z>d&d'� Z?ej@d(d)� �ZAd*d+� ZBd,d-� ZCd.d/� ZDd0d1� ZEdtd2d3�ZFd4d5� ZGd6d7� ZHd8d9� ZId:d;� ZJd<d=� ZKd>d?� ZLd@dA� ZMdBdC� ZNeOdD�ZPdEdF� ZQdGdH� ZRdIdJ� ZSdKdL� ZTdMdN� ZUdOdP� ZVej@dQdR� �ZWdSdT� ZXdudUdV�ZYdWdX� ZZdvdYdZ�Z[dwd\d]�Z\d^d_� Z]d`da� Z^db�_dc�Z`e`dd Zae`de Zbdfdg� Zcdhdi� Zddjdk� Zedldm� Zfdndo� Zgdpdq� Zhdrds� ZidS )xz�
requests.utils
~~~~~~~~~~~~~~
This module provides utility functions that are used within Requests
that are also useful for external consumption.
� N)�OrderedDict)�make_headers� parse_url� )�certs��__version__)�_HEADER_VALIDATORS_BYTE�_HEADER_VALIDATORS_STR�HEADER_VALIDATORS�to_native_string)�Mapping�
basestring�bytes�
getproxies�getproxies_environment�
integer_types)�parse_http_list)�proxy_bypass�proxy_bypass_environment�quote�str�unquote�urlparse�
urlunparse��cookiejar_from_dict)�FileModeWarning�
InvalidHeader�
InvalidURL�UnrewindableBodyError)�CaseInsensitiveDict)z.netrc�_netrc�P i� )�http�httpsz, z,\s*T)�accept_encodingzaccept-encoding�win32c C s� zdd l }W n
ty Y dS w z|�|jd�}t|�|d�d �}|�|d�d }W n ttfy8 Y dS w |r=|s?dS |�d�}|D ]*}|dkrSd| vrS d S |� dd
�}|� dd�}|� d
d�}t
�|| t
j�rp d S qFdS )Nr Fz;Software\Microsoft\Windows\CurrentVersion\Internet Settings�ProxyEnable�
ProxyOverride�;z<local>�.Tz\.�*z.*�?)
�winreg�ImportError�OpenKey�HKEY_CURRENT_USER�int�QueryValueEx�OSError�
ValueError�split�replace�re�match�I)�hostr. �internetSettings�proxyEnable�
proxyOverride�test� r@ �G/home/arjun/projects/env/lib/python3.10/site-packages/requests/utils.py�proxy_bypass_registryL s: ���
�rB c C s t � rt| �S t| �S )z�Return True, if the host should be bypassed.
Checks proxy settings gathered from the environment, if specified,
or the registry.
)r r rB )r; r@ r@ rA r p s r c C s t | d�r | �� } | S )z/Returns an internal sequence dictionary update.�items)�hasattrrC )�dr@ r@ rA �dict_to_sequence| s
rF c C s d }d}t | d�rt| �}n2t | d�r| j}n)t | d�r@z| �� }W n tjtfy. Y nw t�|�j}d| j vr@t
�dt� t | d�r�z| �
� }W n tyZ |d urX|}Y n)w t | d�r�|d u r�z| �dd � | �
� }| �|ptd� W n ty� d}Y nw |d u r�d}td|| �S )
Nr �__len__�len�fileno�ba% Requests has determined the content-length for this request using the binary size of the file: however, the file has been opened in text mode (i.e. without the 'b' flag in the mode). This may lead to an incorrect content-length. In Requests 3.0, support will be removed for files in text mode.�tell�seek� )rD rH rI �io�UnsupportedOperation�AttributeError�os�fstat�st_size�mode�warnings�warnr rK r4 rL �max)�o�total_length�current_positionrI r@ r@ rA � super_len� sJ
�
�
���r[ Fc C s> t j�d�}|dur|f}ndd� tD �}z}ddlm}m} d}|D ]!}zt j�|�}W n ty8 Y W dS w t j� |�rC|} nq"|du rKW dS t
| �} d}
t| t�r[|
�
d�}
| j�|
�d }z||��|�}|r|d rsdnd }
||
|d
fW W S W W dS |tfy� |r�� Y W dS w ttfy� Y dS w )z;Returns the Requests tuple auth for a given url from netrc.�NETRCNc s s � | ]}d |� �V qdS )z~/Nr@ )�.0�fr@ r@ rA � <genexpr>� s � z!get_netrc_auth.<locals>.<genexpr>r )�NetrcParseError�netrc� :�asciir rM )rQ �environ�get�NETRC_FILESra r` �path�
expanduser�KeyError�existsr �
isinstancer �decode�netlocr6 �authenticatorsr4 r/ rP )�url�raise_errors�
netrc_file�netrc_locationsr` ra �
netrc_pathr^ �loc�ri�splitstrr; r"