
    Ѯh                    x    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y)	    )annotationsN)IOTYPE_CHECKINGAnyMappingcast)CaseInsensitiveDict)HTTPResponse)PreparedRequestc                      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y)
Serializer4Nc           
        t        |j                        }|<|j                  d      }t        j                  |      |_        t        |      |_        d||j                  j                         D ci c]  \  }}t        |      t        |       c}}|j                  |j                  t        |j                        |j                  di}i |d<   d|v re|d   j                  d      }|D ]L  }	t        |	      j                         }	|j                  j!                  |	d       }
|
t        |
      }
|
|d   |	<   N dj#                  d| j$                   j'                         | j)                  |      g      S c c}}w )	NF)decode_contentresponse)bodyheadersstatusversionreasonr   vary,   ,cc=)r	   r   readioBytesIO_fplenlength_remainingitemsstrr   r   r   r   splitstripgetjoinserde_versionencode	serialize)selfrequestr   r   response_headerskvdatavaried_headersheaderheader_values              h/home/www/academy-backend.kofcorporation.com/venv/lib/python3.12/site-packages/cachecontrol/serialize.pydumpszSerializer.dumps   sn    6I6
 < ===6D::d+HL(+D	H% 7?7G7G7M7M7OPtq!CFCFNP"//#++hoo."*"9"9	
 V%%-f5;;C@N( 4V**,&2264@+#&|#4L'3VV$4 yyC 2 234;;=t~~d?STUU' Qs   3E9
c                L    t        t        t        j                  |d            S )NT)use_bin_type)r   bytesmsgpackr4   )r*   r/   s     r3   r)   zSerializer.serialize>   s    E7==DABB    c                    |sy |j                  d| j                   dj                               sy |dd  }| j                  |||      S )Nr   r      )
startswithr'   r(   	_loads_v4)r*   r+   r/   	body_files       r3   loadszSerializer.loadsA   sR      T%7%7$8:AACDABx~~gtY77r9   c                N   d|j                  di       v ry|j                  di       j                         D ]&  \  }}|j                  j                  |d      |k7  s& y |d   j                  d      }t	        |d   d         }|j                  dd	      d
k(  r|j                  d       ||d   d<   	 |t        j                  |      }n|}|d   j                  dd       t        d|dd|d   S # t        $ r' t        j                  |j                  d            }Y Uw xY w)z`Verify our vary headers match and construct a real urllib3
        HTTPResponse object.
        *r   Nr   r   r   )r/   ztransfer-encoding chunkedutf8strictF)r   preload_content )
r%   r!   r   popr	   r   r   	TypeErrorr(   r
   )	r*   r+   cachedr>   r1   valuebody_rawr   r   s	            r3   prepare_responsezSerializer.prepare_responseS   s8    &**VR(( $ZZ399; 	MFE""640E9	 *%))&1,?
#I.-
 ;;*B/9<KK+,(/z9%	7 zz(+  	zx.SuSz@RSS  	7 ::hoof56D	7s   4C4 4-D$#D$c                v    	 t        j                  |d      }| j                  |||      S # t        $ r Y y w xY w)NF)raw)r8   r?   
ValueErrorrM   )r*   r+   r/   r>   rJ   s        r3   r=   zSerializer._loads_v4   sB    	]]4U3F $$Wfi@@  		s   , 	88)N)r+   r   r   r
   r   zbytes | Nonereturnr7   )r/   zdict[str, Any]rQ   r7   )r+   r   r/   r7   r>   IO[bytes] | NonerQ   HTTPResponse | None)r+   r   rJ   zMapping[str, Any]r>   rR   rQ   rS   )	__name__
__module____qualname__r'   r4   r)   r?   rM   r=   rG   r9   r3   r   r      s    M "	(V (V (V 	(V
 
(VTC '+	8 8 8 $	8
 
8, '+	2T 2T "2T $	2T
 
2Tp '+	A A A $	A
 
Ar9   r   )
__future__r   r   typingr   r   r   r   r   r8   requests.structuresr	   urllib3r
   requestsr   r   rG   r9   r3   <module>r\      s0    # 	 8 8  3  (AA AAr9   