文件操作 - __init__.cpython-310.pyc
返回文件管理
返回主菜单
删除本文件
文件: /usr/lib/python3/dist-packages/httplib2/__pycache__/__init__.cpython-310.pyc
编辑文件内容
o 0�Pj� � @ s� d Z ddlZddlmZmZmZmZ dZdZg d�Z dZ dZddlZddl Z ddlZddlZddlZdd lmZ ddlZddlZddlZdd lmZ ddlZddlmZ ddlmZ ddlZddlZddl Z ddl!Z!ddl"Z"ddl#Z#ddl$Z$ddl%Z%ddl&Z&ddl'Z'ddl(Z)ddl*Z*zddl+Z+W n e,y� d dl-m+Z+ Y nw d dl-m.Z. d dl/T d dl0m0Z0 dd� Z1g d�Z2dZ3dZ4dZ5g d�Z6dZ7e8d�Z9ddl:m;Z; e;�<� Z=e>e%dd�p�e>e%d�Z? dgdd�Z@dd � ZAd!d"� ZBe#�Cd#�ZDd$d%� ZEd&d'� ZFe#�Cd(�ZGe#�Cd)e#jH�ZId*d+� ZJe#�Cd,�ZKd-d.� ZLd/d0� ZMd1d2� ZNdZOd3d4� ZPd5d6� ZQd7d8� ZRd9d:� ZSd;d<� ZTd=d>� ZUG d?d@� d@eV�ZWG dAdB� dBeW�ZXG dCdD� dDeW�ZYG dEdF� dFeW�ZZG dGdH� dHeW�Z[G dIdJ� dJeW�Z\eXe[eYeZe\dK�Z]g dL�Z^G dMdN� dNeV�Z_G dOdP� dPeV�Z`G dQdR� dRe`�ZaG dSdT� dTeV�ZbG dUdV� dVeV�ZcdhdXdY�ZddidZd[�ZeG d\d]� d]ejfjg�ZhG d^d_� d_ejfji�Zjehejd`�ZkG dadb� dbeV�ZlG dcdd� ddem�Zndjdedf�ZodS )kz+Small, fast HTTP client library for Python.� N)�ZlibDecoder�DecoderProtocol�LimitDecoder�DeflateDecoderz!Joe Gregorio (joe@bitworking.org)zCopyright 2006, Joe Gregorio) �!Thomas Broyer (t.broyer@ltgt.net)zJames AntillzXavier Verges FarrerozJonathan FeinbergzBlair ZajaczSam RubyzLouis NyffeneggerzMark PilgrimzAlex Yu�MITz0.20.2)�header)�gettext)�md5)�sha1� )�socks)�auth)�*)�iri2uric C s$ t td�r| d uo | tjuS | d uS )N�_GLOBAL_DEFAULT_TIMEOUT)�hasattr�socketr )�timeout� r �3/usr/lib/python3/dist-packages/httplib2/__init__.py�has_timeout= s r )� debuglevel�FailedToDecompressContent�Http� HttpLib2Error� ProxyInfo� RedirectLimit�RedirectMissingLocation�Response�RETRIES�"UnimplementedDigestAuthOptionError�&UnimplementedHmacDigestAuthOptionError� � )� connectionz keep-alivezproxy-authenticatezproxy-authorization�te�trailers�transfer-encoding�upgrade)�GET�HEAD�OPTIONS�TRACE)�, �- �. �/ i3 �4 )�certs�PROTOCOL_TLS�PROTOCOL_SSLv23c C s� t td�s td��t�t�}| rtjntj|_|d ur3t |d�r/t|t �r+t tj|�}||_ntd��|d urOt |d�rKt|t �rGt tj|�}||_ ntd��t |d�rX| |_|�|� |rf|�|||� |S )N� SSLContextz0httplib2 requires Python 3.2+ for ssl.SSLContext�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�check_hostname)r �ssl�RuntimeErrorr6 �DEFAULT_TLS_VERSION� CERT_NONE� CERT_REQUIRED�verify_mode� isinstance�str�getattr� TLSVersionr7 r8 r9 �load_verify_locations�load_cert_chain)�"disable_ssl_certificate_validation�ca_certs� cert_file�key_filer7 r8 �key_password�contextr r r �_build_ssl_context� s, rL c sD t t�� � �dd� | �dd��d�D �� � fdd�t | �� �D �S )Nc S � g | ]}|� � �qS r ��strip��.0�xr r r � <listcomp>� � z(_get_end2end_headers.<locals>.<listcomp>r% � �,c s g | ]}|� vr|�qS r r )rQ r ��hopbyhopr r rS � � )�list� HOP_BY_HOP�extend�get�split�keys)�responser rW r �_get_end2end_headers� s "ra c C sj t | j�dkrt| jd tj�r| jd jS | jS t| d�r3| j}t|jd tj�r0|jd jS |jS d S )Nr � socket_err)�len�argsr@ r �error�errnor rb )�e�e_intr r r �_errno_from_exception� s $ $ri 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)�urirp r r r � parse_uri� s "rr c C sx t | �\}}}}}|r |std| ��|�� }|�� }|sd}|r(d�||g�p)|}|�� }|d | | }||||fS )Nz(Only absolute URIs are allowed. uri = %s�/�?z://)rr �RelativeURIError�lower�join)rq �scheme� authority�path�query�fragment�request_uri� defrag_urir r r �urlnorm� s r 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-8rU N�Z rV ) r@ �bytes�decode�encode�_md5� hexdigest� re_url_scheme�sub� re_unsaferw )�filename�filename_bytes�filemd5r 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_strrv �NORMALIZE_SPACEr� rO )rQ �key�valuer r r rS s ��z&_normalize_headers.<locals>.<listcomp>)�dict�items��headersr r r �_normalize_headers s ��r� c C s t | t�s t| d�S | S �Nr� )r@ rA )�sr r r r� s r� c C sF i }d| v r!| d � d�}dd� |D �}dd� |D �}t|| �}|S )N� cache-controlrV c S s4 g | ]}d |� d�krtdd� |�dd�D ���qS )����=c S s g | ]}|� � �� �qS r )rO rv rP r r r rS rY z3_parse_cache_control.<locals>.<listcomp>.<listcomp>r )�find�tupler^ )rQ �partr r r rS s .z(_parse_cache_control.<locals>.<listcomp>c S s* g | ]}d |� d�kr|�� �� df�qS )r� r� r )r� rO rv )rQ �namer r r rS s * )r^ r� )r� �retval�parts�parts_with_args� parts_wo_argsr r r �_parse_cache_control s �r� c C s� d}t |�}t | �}d|v r%|d �� �d�dkr%d}d|vr#d|d<