File: //opt/cppython/lib/python3.8/site-packages/httplib2/__pycache__/__init__.cpython-38.pyc
U
JD�g � @ s� d Z dZdZddddddd d
ddg
Zd
ZdZddlZddlZddlZddl Z ddl
Z ddl mZ ddlZ ddl
Z ddlZddlmZ ddlZddlmZ ddlmZ ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl!Z!ddl"Z#ddl$Z$zddl%Z%W n" e&k
�r2 ddl'm%Z% Y nX ddl'm(Z( ddl)T ddl*m*Z* dd� Z+ddddd d!d"d#d$d%d&gZ,dZ-d'Z.d(Z/d)d*d+d,d-d.d/d0gZ0d1Z1e2d2�Z3dd3l4m5Z5 e5�6� Z7e8ed4d��p�e8ed5d��p�e8ed6�Z9d�d7d8�Z:d9d:� Z;e<� Z=d;d<� Z>e�?d=�Z@d>d?� ZAd@dA� ZBe�?dB�ZCe�?dCejD�ZEdDdE� ZFe�?dF�ZGdGdH� ZHdIdJ� ZIdKdL� ZJdZKdMdN� ZLdOdP� ZMdQdR� ZNdSdT� ZOdUdV� ZPdWdX� ZQG dYdZ� dZe<�ZRG d[d\� d\eR�ZSG d]d^� d^eR�ZTG d_d`� d`eR�ZUG dadb� dbeR�ZVG dcdd� ddeR�ZWeSeVeTeUeWde�ZXdfdgdhdidjgZYG dkdl� dle<�ZZG dmdn� dne<�Z[G dodp� dpe[�Z\G dqdr� dre<�Z]G dsd � d e<�Z^d�dudv�Z_d�dwdx�Z`G dydz� dzejajb�ZcG d{d|� d|ejajd�Zeeceed}�ZfG d~d� de<�ZgG dd#� d#eh�ZidS )�z+Small, fast HTTP client library for Python.z!Joe Gregorio (joe@bitworking.org)zCopyright 2006, Joe Gregorio�!Thomas Broyer (t.broyer@ltgt.net)zJames AntillzXavier Verges FarrerozJonathan FeinbergzBlair ZajaczSam RubyzLouis NyffeneggerzMark PilgrimzAlex YuzLai Han�MITz0.22.0� N)�header)�gettext)�md5)�sha1� )�socks)�auth)�*)�iri2uric C s$ t td�r| d k o| tjk S | d k S )N�_GLOBAL_DEFAULT_TIMEOUT)�hasattr�socketr
)�timeout� r �>/opt/cppython/lib/python3.8/site-packages/httplib2/__init__.py�has_timeout: s
r �
debuglevel�FailedToDecompressContent�HttpZ
HttpLib2Error� ProxyInfo�
RedirectLimit�RedirectMissingLocation�Response�RETRIES�"UnimplementedDigestAuthOptionError�&UnimplementedHmacDigestAuthOptionError� � �
connectionz
keep-alivezproxy-authenticatezproxy-authorization�teZtrailers�transfer-encoding�upgrade)�GET�HEAD�OPTIONS�TRACE)�, �- �. �/ i3 �4 )�certs�PROTOCOL_TLS_CLIENT�PROTOCOL_TLS�PROTOCOL_SSLv23c C s� t td�std��t�t�}| r2t |d�r2| |_| r<tjntj|_|d k r|t |d�rtt |t
�rlttj|�}||_
ntd��|d k r�t |d�r�t |t
�r�ttj|�}||_ntd��t |d�r�| |_|�|� |r�|�|||� |S )N�
SSLContextz0httplib2 requires Python 3.2+ for ssl.SSLContext�check_hostname�maximum_versionzHsetting tls_maximum_version requires Python 3.7 and OpenSSL 1.1 or newer�minimum_versionzHsetting tls_minimum_version requires Python 3.7 and OpenSSL 1.1 or newer)r �ssl�RuntimeErrorr1 �DEFAULT_TLS_VERSIONr2 � CERT_NONE�
CERT_REQUIRED�verify_mode�
isinstance�str�getattr�
TLSVersionr3 r4 �load_verify_locations�load_cert_chain)�"disable_ssl_certificate_validation�ca_certs� cert_file�key_filer3 r4 �key_password�contextr r r �_build_ssl_context� s0
rG c sD t t�� � �dd� | �dd��d�D �� � fdd�t | �� �D �S )Nc S s g | ]}|� � �qS r ��strip��.0�xr r r �
<listcomp>� s z(_get_end2end_headers.<locals>.<listcomp>r � �,c s g | ]}|� kr|�qS r r )rK r �Zhopbyhopr r rM � s )�list�
HOP_BY_HOP�extend�get�split�keys)�responser rP r �_get_end2end_headers� s "rX c C sP t | dt�}|tk r|S t | dd �}|r4t|d �S t | dd �}|rLt|�S d S )N�errno�argsr �
socket_err)r= �_missing�_errno_from_exception)�erY rZ r[ r r r r] � s r] z9^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?c C s0 t �| ��� }|d |d |d |d |d fS )z�Parses a URI using the regex given in Appendix B of RFC 3986.
(scheme, authority, path, query, fragment) = parse_uri(uri)
r � � � � )�URI�match�groups)�urire r r r � parse_uri� s rg c C sx t | �\}}}}}|r|s&td| ��|�� }|�� }|s>d}|rPd�||g�pR|}|�� }|d | | }||||fS )Nz(Only absolute URIs are allowed. uri = %s�/�?z://)rg ZRelativeURIError�lower�join)rf �scheme� authority�path�query�fragment�request_uri�
defrag_urir r r �urlnorm� s rs z^\w+://z[^\w\-_.()=!]+c C sb t | t�r| }| �d�} n
| �d�}t|��� }t�d| �} t�d| �} | dd� } d� | |f�S )z�Return a filename suitable for the cache.
Strips dangerous and common characters to create a filename we
can use to store the cache in.
�utf-8rN N�Z rO )
r; �bytes�decode�encode�_md5� hexdigest�
re_url_scheme�sub� re_unsaferk )�filenameZfilename_bytesZfilemd5r r r �safename� s
r z(?:\r\n)?[ \t]+c C s t dd� | �� D ��S )Nc S s0 g | ](\}}t |��� t�t |�d ��� f�qS )� )�_convert_byte_strrj �NORMALIZE_SPACEr| rI )rK �key�valuer r r rM s �z&_normalize_headers.<locals>.<listcomp>)�dict�items��headersr r r �_normalize_headers s
��r� c C s t | t�st| d�S | S �Nrt )r; r<