File: //opt/alt/python38/lib/python3.8/site-packages/requests/__pycache__/utils.cpython-38.pyc
U
ֈ�`�z � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlm
Z
ddlmZ ddlmZ ddlmZ ddlmZ dd lmZ dd
lmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z' ddl(m)Z) dd
l*m+Z+m,Z,m-Z-m.Z. dZ/e�0� Z1ddd�Z2d�3e�4dedd�d ��Z5ej6dk�rbdd� Z7dd� Zdd� Z8dd� Z9dqd!d"�Z:d#d$� Z;d%d&� Z<ej=d'd(� �Z>d)d*� Z?d+d,� Z@d-d.� ZAd/d0� ZBdrd1d2�ZCd3d4� ZDd5d6� ZEd7d8� ZFd9d:� ZGd;d<� ZHd=d>� ZId?d@� ZJdAdB� ZKeLdC�ZMdDdE� ZNdFdG� ZOdHdI� ZPdJdK� ZQdLdM� ZRdNdO� ZSej=dPdQ� �ZTdRdS� ZUdsdTdU�ZVdVdW� ZWdtdYdZ�ZXd[d\� ZYd]d^� ZZd_�[d`�Z\e\da Z]e\db Z^dcdd� Z_dedf� Z`dgdh� Zae�bdi�Zce�bdj�Zddkdl� Zedmdn� Zfdodp� ZgdS )uz�
requests.utils
~~~~~~~~~~~~~~
This module provides utility functions that are used within Requests
that are also useful for external consumption.
� N)�OrderedDict)�make_headers� ��__version__)�certs)�to_native_string)�parse_http_list)�quote�urlparse�bytes�str�unquote�
getproxies�proxy_bypass�
urlunparse�
basestring�
integer_types�is_py3�proxy_bypass_environment�getproxies_environment�Mapping��cookiejar_from_dict)�CaseInsensitiveDict)�
InvalidURL�
InvalidHeader�FileModeWarning�UnrewindableBodyError)z.netrc�_netrc�P i� )�http�httpsz, z,\s*T)Zaccept_encodingzaccept-encoding�win32c C s� zt rdd l}ndd l}W n tk
r0 Y dS X z6|�|jd�}t|�|d�d �}|�|d�d }W n tk
r~ Y dS X |r�|s�dS |� d�}|D ]T}|dkr�d| kr� d S |�
dd
�}|�
dd�}|�
d
d�}t�|| tj
�r� d S q�dS )Nr Fz;Software\Microsoft\Windows\CurrentVersion\Internet SettingsZProxyEnableZ
ProxyOverride�;z<local>�.Tz\.�*z.*�?)r �winreg�_winreg�ImportError�OpenKey�HKEY_CURRENT_USER�int�QueryValueEx�OSError�split�replace�re�match�I)�hostr( ZinternetSettingsZproxyEnableZ
proxyOverride�test� r7 �?/opt/alt/python38/lib/python3.8/site-packages/requests/utils.py�proxy_bypass_registry6 sF
�����
r9 c C s t � rt| �S t| �S dS )z�Return True, if the host should be bypassed.
Checks proxy settings gathered from the environment, if specified,
or the registry.
N)r r r9 )r5 r7 r7 r8 r ] s r c C s t | d�r| �� } | S )z/Returns an internal sequence dictionary update.�items)�hasattrr: )�dr7 r7 r8 �dict_to_sequencei s
r= c C s4 d }d}t | d�rt| �}nbt | d�r.| j}nPt | d�r~z| �� }W n tjk
rZ Y n$X t�|�j}d| jkr~t �
dt� t | d��rz| �� }W n$ t
tfk
r� |d k r�|}Y n^X t | d��r|d k�rz&| �dd � | �� }| �|p�d� W n t
tfk
�r d}Y nX |d k�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� )r; r? r@ �io�UnsupportedOperation�os�fstat�st_size�mode�warnings�warnr rB r/ �IOErrorrC �max)�oZtotal_lengthZcurrent_positionr@ r7 r7 r8 � super_lenr sB
�
rP Fc C sL t j�d�}|dk r|f}ndd� tD �}�z ddlm}m} d}|D ]D}zt j�|�}W n tk
rt Y W dS X t j� |�rF|} q�qF|dkr�W dS t
| �} d}
t| t�r�|
�
d�}
| j�|
�d }z<||��|�}|�r|d r�dnd }
||
|d
fW W S W n" |tfk
�r( |�r$� Y nX W n ttfk
�rF Y nX dS )z;Returns the Requests tuple auth for a given url from netrc.ZNETRCNc s s | ]}d � |�V qdS )z~/{}N)�format)�.0�fr7 r7 r8 � <genexpr>� s z!get_netrc_auth.<locals>.<genexpr>r )�netrc�NetrcParseError� :�asciir rD )rG �environ�get�NETRC_FILESrU rV �path�
expanduser�KeyError�existsr �
isinstancer
�decode�netlocr0 ZauthenticatorsrM r* �AttributeError)�urlZraise_errorsZ
netrc_fileZnetrc_locationsrU rV Z
netrc_pathrS �loc�riZsplitstrr5 r Zlogin_ir7 r7 r8 �get_netrc_auth� s@
rg c C sB t | dd�}|r>t|t�r>|d dkr>|d dkr>tj�|�S dS )z0Tries to guess the filename of the given object.�nameNr �<����>)�getattrr` r rG r\ �basename)�objrh r7 r7 r8 �guess_filename� s
�ro c C s� t j�| �r| S t j�| �\}}|rPt j�|�sPt j�|�\}}d�||g�}q t�|�s^| S t�|�}||�� krx| S t �
� }t j�||�d�d �}t j�|�s�t|��}|�|�
|�� W 5 Q R X |S )z�Replace nonexistent paths that look like they refer to a member of a zip
archive with the location of an extracted copy of the target, or else
just return the provided path unchanged.
�/rj )rG r\ r_ r0 �join�zipfile�
is_zipfile�ZipFile�namelist�tempfile�
gettempdir�atomic_open�write�read)r\ �archive�member�prefixZzip_file�tmpZextracted_pathZfile_handlerr7 r7 r8 �extract_zipped_paths� s"