
     h+                        d dl mZ d dlZd dlmZmZmZmZmZ d dl	m
Z
 d dlmZ d dlmZ erd dlmZ  G d d	          ZdS )
    )annotationsN)IOTYPE_CHECKINGAnyMappingcast)msgpack)CaseInsensitiveDict)HTTPResponse)PreparedRequestc                  J    e Zd ZdZ	 dddZddZ	 dddZ	 dddZ	 dddZdS )
Serializer4Nrequestr   responser   bodybytes | Nonereturnbytesc                   t          |j                  }|C|                    d          }t          j        |          |_        t          |          |_        d|d |j                                        D             |j	        |j
        t          |j                  |j        di}i |d<   d|v rx|d                             d          }|D ]Z}t          |                                          }|j                            |d           }|t          |          }||d         |<   [d                    d	| j                                         |                     |          g          S )
NF)decode_contentr   c                N    i | ]"\  }}t          |          t          |          #S  )str).0kvs      a/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/pip/_vendor/cachecontrol/serialize.py
<dictcomp>z$Serializer.dumps.<locals>.<dictcomp>)   s*    PPPtq!CFFCFFPPP    )r   headersstatusversionreasonr   vary,   ,cc=)r
   r!   readioBytesIO_fplenlength_remainingitemsr"   r#   r   r$   r   splitstripgetjoinserde_versionencode	serialize)	selfr   r   r   response_headersdatavaried_headersheaderheader_values	            r   dumpszSerializer.dumps   sx    6I6
 6
 < ===66D:d++HL(+D		H% PPx7G7M7M7O7OPPP"/#+ho.."*"9 	
 V%%%-f5;;C@@N( 4 4V**,,&2264@@+#&|#4#4L'3VV$$yy4 244;;==t~~d?S?STUUUr    r9   dict[str, Any]c                T    t          t          t          j        |d                    S )NT)use_bin_type)r   r   r	   r=   )r7   r9   s     r   r6   zSerializer.serialize>   s!    E7=DAAABBBr    	body_fileIO[bytes] | NoneHTTPResponse | Nonec                    |sd S |                     d| j         d                                          sd S |dd          }|                     |||          S )Nr(   r&      )
startswithr4   r5   	_loads_v4)r7   r   r9   rA   s       r   loadszSerializer.loadsA   sj      	4 :T%7:::AACCDD 	4ABBx~~gtY777r    cachedMapping[str, Any]c                   d|                     di           v rdS |                     di                                           D ]'\  }}|j                             |d          |k    r dS (|d                             d          }t	          |d         d                   }|                     dd	          d
k    r|                    d           ||d         d<   	 |t          j        |          }n|}n7# t          $ r* t          j        |                    d                    }Y nw xY w|d                             dd           t          d|dd|d         S )z`Verify our vary headers match and construct a real urllib3
        HTTPResponse object.
        *r%   Nr   r   r!   )r9   ztransfer-encoding chunkedutf8strictF)r   preload_contentr   )
r2   r/   r!   popr
   r*   r+   	TypeErrorr5   r   )	r7   r   rI   rA   r;   valuebody_rawr!   r   s	            r   prepare_responsezSerializer.prepare_responseS   s    &**VR((((4 $ZZ3399;; 	 	MFE""6400E99tt : *%))&11,?
#I.-
 -
 -
 ;;*B//9<<KK+,,,(/z9%	7 z(++  	7 	7 	7 :hoof5566DDD	7 	zx...SuSSz@RSSSs   C7 71D+*D+c                    	 t          j        |d          }n# t          $ r Y d S w xY w|                     |||          S )NF)raw)r	   rH   
ValueErrorrV   )r7   r   r9   rA   rI   s        r   rG   zSerializer._loads_v4   sY    	]4U333FF 	 	 	44	 $$Wfi@@@s    
'')N)r   r   r   r   r   r   r   r   )r9   r>   r   r   )r   r   r9   r   rA   rB   r   rC   )r   r   rI   rJ   rA   rB   r   rC   )	__name__
__module____qualname__r4   r=   r6   rH   rV   rG   r   r    r   r   r      s        M "	(V (V (V (V (VTC C C C '+	8 8 8 8 8, '+	2T 2T 2T 2T 2Tp '+	A A A A A A Ar    r   )
__future__r   r*   typingr   r   r   r   r   pip._vendorr	   pip._vendor.requests.structuresr
   pip._vendor.urllib3r   pip._vendor.requestsr   r   r   r    r   <module>rc      s    # " " " " " 				 8 8 8 8 8 8 8 8 8 8 8 8 8 8       ? ? ? ? ? ? , , , , , , 5444444AA AA AA AA AA AA AA AA AA AAr    