a
    3g                     @   sv   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ ddlm	Z	m
Z
mZ dd Zdd	 Ze ZG d
d deZdS )    N)msgpack)CaseInsensitiveDict   )HTTPResponsepickle	text_typec                 C   s   t | dS )Nascii)base64	b64decodeencode)b r   p/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/pip/_vendor/cachecontrol/serialize.py_b64_decode_bytes   s    r   c                 C   s   t | dS )Nutf8)r   decode)sr   r   r   _b64_decode_str   s    r   c                   @   sZ   e Zd ZdddZdddZdddZddd	Zdd
dZdddZdd Z	dddZ
dS )
SerializerNc           	   	   C   s   t |j}|d u r*|jdd}t||_d|tdd |j D |j|j	t
|j|j|jdi}i |d< d|v r|d d}|D ]:}t
| }|j|d }|d urt
|}||d |< qd	d
tj|ddgS )NF)decode_contentresponsec                 s   s"   | ]\}}t |t |fV  qd S N)r   .0kvr   r   r   	<genexpr>0   s   z#Serializer.dumps.<locals>.<genexpr>)bodyheadersstatusversionreasonstrictr   vary,   ,s   cc=4T)use_bin_type)r   r   readioBytesIO_fpdictitemsr   r    r   r!   r"   r   splitstripgetjoinr   dumps)	selfrequestr   r   response_headersdatavaried_headersheaderheader_valuer   r   r   r1      s4    

zSerializer.dumpsc                 C   s   |sd S z| dd\}}W n ty2   d}Y n0 |d d dkrP|| }d}| ddd d}zt| d	||||W S  ty   Y d S 0 d S )
Nr%   r   s   cc=0   s   cc=   =r   z
_loads_v{})r-   
ValueErrorr   getattrformatAttributeError)r2   r3   r5   	body_fileverr   r   r   loadsH   s    
zSerializer.loadsc           	      C   s   d| di v rdS | di  D ] \}}|j |d|kr$ dS q$|d d}t|d d d}| dd	d
kr|d ||d d< z|du rt|}n|}W n" ty   t|d}Y n0 t	f |dd|d S )z`Verify our vary headers match and construct a real urllib3
        HTTPResponse object.
        *r#   Nr   r   r   )r5   ztransfer-encoding chunkedr   F)r   preload_content)
r/   r,   r   popr   r(   r)   	TypeErrorr   r   )	r2   r3   cachedr@   r7   valuebody_rawr   r   r   r   r   prepare_responsef   s"    
zSerializer.prepare_responsec                 C   s   d S r   r   r2   r3   r5   r@   r   r   r   	_loads_v0   s    zSerializer._loads_v0c                 C   s2   zt |}W n ty"   Y d S 0 | |||S r   )r   rB   r<   rL   r2   r3   r5   r@   rI   r   r   r   	_loads_v1   s
    zSerializer._loads_v1c              	   C   s   |d u sJ zt t|d}W n ttjfy@   Y d S 0 t|d d |d d< tdd |d d 	 D |d d< t
|d d |d d< tdd |d	 	 D |d	< | |||S )
Nr   r   r   c                 s   s"   | ]\}}t |t |fV  qd S r   r   r   r   r   r   r      s   z'Serializer._loads_v2.<locals>.<genexpr>r   r!   c                 s   s.   | ]&\}}t ||d ur t |n|fV  qd S r   rQ   r   r   r   r   r      s   r#   )jsonrB   zlib
decompressr   r<   errorr   r+   r,   r   rL   rO   r   r   r   	_loads_v2   s    
zSerializer._loads_v2c                 C   s   d S r   r   rM   r   r   r   	_loads_v3   s    zSerializer._loads_v3c                 C   s6   zt j|dd}W n ty&   Y d S 0 | |||S )NF)raw)r   rB   r<   rL   rO   r   r   r   	_loads_v4   s
    zSerializer._loads_v4)N)N)N)N)N)N)N)__name__
__module____qualname__r1   rB   rL   rN   rP   rV   rW   rY   r   r   r   r   r      s   
,

)


r   )r	   r(   rR   rS   pip._vendorr   Zpip._vendor.requests.structuresr   compatr   r   r   r   r   object_default_body_readr   r   r   r   r   <module>   s   