
    .Ph                        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	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)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      V/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/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   r8   dict[str, Any]c                T    t          t          t          j        |d                    S )NT)use_bin_type)r   r   msgpackr<   )r6   r8   s     r   r5   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%      )
startswithr3   r4   	_loads_v4)r6   r   r8   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    )r8   ztransfer-encoding chunkedutf8strictF)r   preload_contentr   )
r1   r.   r    popr	   r)   r*   	TypeErrorr4   r
   )	r6   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   )r6   r   r8   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   )r8   r=   r   r   )r   r   r8   r   rA   rB   r   rC   )r   r   rI   rJ   rA   rB   r   rC   )	__name__
__module____qualname__r3   r<   r5   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   r@   requests.structuresr	   urllib3r
   requestsr   r   r   r   r   <module>rb      s    # " " " " " 				 8 8 8 8 8 8 8 8 8 8 8 8 8 8  3 3 3 3 3 3             )((((((AA AA AA AA AA AA AA AA AA AAr   