Current File : //lib/python3.9/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-39.pyc
a

[��f��@spddlZddlZddlZddlZddlmZddlmZddlm	Z	m
Z
mZdd�Zdd	�Z
Gd
d�de�ZdS)�N)�msgpack)�CaseInsensitiveDict�)�HTTPResponse�pickle�	text_typecCst�|�d��S)N�ascii)�base64Z	b64decode�encode)�b�r�F/usr/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py�_b64_decode_bytessrcCst|��d�S)N�utf8)r�decode)�srrr
�_b64_decode_strsrc@sNeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dS)�
SerializerNc		Cs�t|j�}|dur*|jdd�}t�|�|_d|tdd�|j��D��|j|j	t
|j�|j|j
d�i}i|d<d|vr�|d�d�}|D]:}t
|���}|j�|d�}|dur�t
|�}||d|<q�d	�d
tj|dd�g�S)
NF)�decode_content�responsecss"|]\}}t|�t|�fVqdS�N)r��.0�k�vrrr
�	<genexpr>2sz#Serializer.dumps.<locals>.<genexpr>)�body�headers�status�version�reason�strictr�vary�,�,scc=4T)Zuse_bin_type)rr�read�io�BytesIO�_fp�dict�itemsrrrr r!r�split�strip�get�joinr�dumps)	�self�requestrrZresponse_headers�dataZvaried_headers�headerZheader_valuerrr
r/s4

���zSerializer.dumpscCs�|sdSz|�dd�\}}Wnty2d}Yn0|dd�dkrP||}d}|�dd�d�d�}zt|d	�|��||�WSty�YdS0dS)
Nr$rscc=0�scc=�=���rz
_loads_v{})r+�
ValueErrorr�getattr�format�AttributeError)r0r1r2Zverrrr
�loadsJs
zSerializer.loadscCs�d|�di�vrdS|�di���D] \}}|j�|d�|kr$dSq$|d�d�}t|ddd�}|�dd	�d
kr�|�d�||dd<zt�|�}Wn"ty�t�|�d��}Yn0t	f|dd
�|d��S)z`Verify our vary headers match and construct a real urllib3
        HTTPResponse object.
        �*r"Nrrr)r2ztransfer-encoding�ZchunkedrF)rZpreload_content)
r-r*r�poprr&r'�	TypeErrorr
r)r0r1�cachedr3�valueZbody_rawrrrrr
�prepare_responsehs
zSerializer.prepare_responsecCsdSrr�r0r1r2rrr
�	_loads_v0�szSerializer._loads_v0cCs0zt�|�}Wnty"YdS0|�||�Sr)rr;r7rB�r0r1r2r@rrr
�	_loads_v1�s
zSerializer._loads_v1c	Cs�zt�t�|��d��}Wnttjfy4YdS0t|dd�|dd<tdd�|dd�	�D��|dd<t
|dd�|dd<tdd�|d	�	�D��|d	<|�||�S)
Nrrrcss"|]\}}t|�t|�fVqdSr�rrrrr
r�s�z'Serializer._loads_v2.<locals>.<genexpr>rr css.|]&\}}t|�|dur t|�n|fVqdSrrGrrrr
r�s�r")�jsonr;�zlib�
decompressrr7�errorrr)r*rrBrErrr
�	_loads_v2�s�
�zSerializer._loads_v2cCsdSrrrCrrr
�	_loads_v3�szSerializer._loads_v3cCs4ztj|dd�}Wnty&YdS0|�||�S)NF)�raw)rr;r7rBrErrr
�	_loads_v4�s
zSerializer._loads_v4)N)�__name__�
__module__�__qualname__r/r;rBrDrFrLrMrOrrrr
rs
4&r)r	r&rHrIZpip._vendorrZpip._vendor.requests.structuresr�compatrrrrr�objectrrrrr
�<module>s