File: //proc/2863166/root/usr/lib/python3.9/site-packages/S3/__pycache__/Custom_httplib3x.cpython-39.pyc
a
�9pe�, � @ s
d dl mZmZ d dlZd dlZd dlmZ d dlmZm Z m
Z
mZmZm
Z
mZmZmZmZ d dlmZ ddlmZ g d�Zdd d
�Zdd� Zd
d� Zddd�Zddd�Zdd� Zddd�ZG dd� de�Zd dd�Zeej _!eej"_#eej"_$eej"_%eej"_&eej"_'dS )!� )�absolute_import�print_functionN)
�_CS_REQ_SENT�_CS_REQ_STARTED�CONTINUE�UnknownProtocol�CannotSendHeader�
NO_CONTENT�NOT_MODIFIED�EXPECTATION_FAILED�HTTPMessage�
HTTPException)�StringIO� )�encode_to_s3)ZPATCHZPOSTZPUT�datac
C sr z| � d�W S tyl } zHt|j|j|j|jd|�� | |j|j� |f �}d|_|�W Y d}~n
d}~0 0 dS )z<Call data.encode("latin-1") but show a better error message.zlatin-1z`%s (%.20r) is not valid Latin-1. Use %s.encode('utf-8') if you want to send it encoded in UTF-8.N)�encode�UnicodeEncodeError�encoding�object�start�end�title� __cause__)r �name�err�exc� r �7/usr/lib/python3.9/site-packages/S3/Custom_httplib3x.py�_encode s ��r c C s� | j durdS | �� \}}}| | _| _|�� | _|dv rBd| _n|�d�rTd| _nt|��t �
| j� | _ | _| j
dkr�| j D ]}td|dd � q�| j �d
�}|r�|�� dkr�d| _d| _nd
| _| �� | _d| _| j �d�}|�r,| j�s,zt|�| _W n t�y d| _Y n0 | jdk �r2d| _nd| _|tk�sl|tk�sld| k�r^dk �sln | jdk�rrd| _| j�s�| j�s�| jdu �r�d| _dS )z� Re-implemented httplib begin function
to not loop over "100 CONTINUE" status replies
but to report it to higher level so it can be processed.
N)zHTTP/1.0zHTTP/0.9�
zHTTP/1.� r zheader:� )r �transfer-encoding�chunkedTF�content-length�d �� ZHEAD)�headersZ_read_status�code�status�strip�reason�version�
startswithr �httplibZ
parse_headers�fp�msg�
debuglevel�print�get�lowerr$ Z
chunk_leftZ_check_closeZ
will_close�length�int�
ValueErrorr r
�_method)�selfr- r* r, �hdrZtr_encr6 r r r �httpresponse_patched_begin* sX
�
�
���r<