
    eg                    |    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y)
    )annotationsN)IOTYPE_CHECKINGAnyMappingcast)msgpack)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	 d	 	 	 	 	 	 	 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,   ,z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              /var/www/html/FastMealFinder_FlaskServer-InitialRelease/venv/lib/python3.12/site-packages/pip/_vendor/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   bytesr	   r4   )r*   r/   s     r3   r)   zSerializer.serialize>   s    E7==DABB    c                
   |sy 	 |j                  dd      \  }}|d d dk7  r||z   }d}|j                  dd      d   j                  d      }	  t        | d	|       |||      S # t        $ r d}Y Xw xY w# t        $ r Y y w xY w)
Nr      s   cc=0   s   cc=   =ascii_loads_v)r#   
ValueErrordecodegetattrAttributeError)r*   r+   r/   	body_fileververstrs         r3   loadszSerializer.loadsA   s     	

4+IC r7f:DC 4#B'..w7	5748F8!45gtYOO  	C	   	 	s#   A% A6 %A32A36	BB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+   cachedrD   r1   valuebody_rawr   r   s	            r3   prepare_responsezSerializer.prepare_responsed   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                     y NrO   r*   r+   r/   rD   s       r3   	_loads_v0zSerializer._loads_v0        r8   c                     y rW   rO   rX   s       r3   	_loads_v1zSerializer._loads_v1   s     r8   c                     y rW   rO   rX   s       r3   	_loads_v2zSerializer._loads_v2   rZ   r8   c                     y rW   rO   rX   s       r3   	_loads_v3zSerializer._loads_v3   rZ   r8   c                v    	 t        j                  |d      }| j                  |||      S # t        $ r Y y w xY w)NF)raw)r	   rG   r@   rU   )r*   r+   r/   rD   rR   s        r3   	_loads_v4zSerializer._loads_v4   sB    	]]4U3F $$Wfi@@  		s   , 	88rW   )r+   r   r   r   r   zbytes | Nonereturnr7   )r/   zdict[str, Any]rd   r7   )r+   r   r/   r7   rD   IO[bytes] | Nonerd   HTTPResponse | None)r+   r   rR   zMapping[str, Any]rD   re   rd   rf   )r+   r   r/   r7   rD   re   rd   None)__name__
__module____qualname__r'   r4   r)   rG   rU   rY   r\   r^   r`   rc   rO   r8   r3   r   r      s   M "	(V (V (V 	(V
 
(VTC '+	! ! ! $	!
 
!N '+	2T 2T "2T $	2T
 
2Tp '+		 	 	 $		
 
	 '+	   $	
 
 '+		 	 	 $		
 
	 '+		 	 	 $		
 
	 '+	A A A $	A
 
Ar8   r   )
__future__r   r   typingr   r   r   r   r   pip._vendorr	   pip._vendor.requests.structuresr
   pip._vendor.urllib3r   pip._vendor.requestsr   r   rO   r8   r3   <module>rq      s0    # 	 8 8  ? ,4}A }Ar8   