
    *,h                         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 Zd Z e       Z G d d	e      Zy)
    N)msgpack)CaseInsensitiveDict   )HTTPResponsepickle	text_typec                 J    t        j                  | j                  d            S )Nascii)base64	b64decodeencode)bs    d/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/serialize.py_b64_decode_bytesr      s    AHHW-..    c                 6    t        |       j                  d      S )Nutf8)r   decode)ss    r   _b64_decode_strr      s    Q&&v..r   c                   J    e Zd Zd
dZd
dZd
dZd
dZd
dZd
dZd Z	d
d	Z
y)
SerializerNc           	         t        |j                        }|,|j                  d      }t        j                  |      |_        d|t        d |j                  j                         D              |j                  |j                  t        |j                        |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	t%        j&                  |d
      g      S )NF)decode_contentresponsec              3   N   K   | ]  \  }}t        |      t        |      f  y wN)r   .0kvs      r   	<genexpr>z#Serializer.dumps.<locals>.<genexpr>0   s&      !59QYq\9Q<0!   #%)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_values	            r   r8   zSerializer.dumps   s@   .x/?/?@< ===6D::d+HL   !=E=M=M=S=S=U!  $??$,,$X__5#??#+#:#:

 W&&-g6<<SAN( 5"6*002&2264@+#,\#:L(4Wf%5 yy'7==D#IJKKr   c                 "   |sy 	 |j                  dd      \  }}|d d dk7  r||z   }d}|j                  dd      d   j                  d      }	  t        | d	j	                  |            |||      S # t        $ r d}Y dw xY w# t
        $ r Y y w xY w)
Nr,   r   s   cc=0   s   cc=   =r
   z
_loads_v{})r4   
ValueErrorr   getattrformatAttributeError)r9   r:   r<   	body_filevers        r   loadszSerializer.loadsH   s    	

4+IC r7f:DC iia $++G4	:74!4!4S!9:7D)TT  	C	   	 	s#   A1 "B 1A?>A?	BBc                 $   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|}t        d|dd|d   S # t        $ r' t        j                  |j                  d            }Y @w xY w)z`Verify our vary headers match and construct a real urllib3
        HTTPResponse object.
        *r*   Nr   r$   r%   )r<   ztransfer-encoding chunkedr   F)r$   preload_content )
r6   r3   r%   popr   r/   r0   	TypeErrorr   r   )	r9   r:   cachedrH   r>   valuebody_rawr%   r$   s	            r   prepare_responsezSerializer.prepare_responsef   s    &**VR(( $ZZ399; 	MFE""640E9	 *%))&1%6*+=i+HI;;*B/9<KK+,(/z9%	7 zz(+  SuSz@RSS  	7 ::hoof56D	7s   4C -DDc                      y r   rP   r9   r:   r<   rH   s       r   	_loads_v0zSerializer._loads_v0        	r   c                 r    	 t        j                  |      }| j                  |||      S # t        $ r Y y w xY wr   )r   rJ   rD   rV   r9   r:   r<   rH   rS   s        r   	_loads_v1zSerializer._loads_v1   s@    	\\$'F $$Wfi@@  		s   * 	66c                    |J 	 t        j                  t        j                  |      j	                  d            }t        |d   d         |d   d<   t        d |d   d   j                         D              |d   d<   t        |d   d         |d   d<   t        d |d   j                         D              |d<   | j                  |||      S # t
        t        j                  f$ r Y y w xY w)	Nr   r   r$   c              3   N   K   | ]  \  }}t        |      t        |      f  y wr   r   r   s      r   r"   z'Serializer._loads_v2.<locals>.<genexpr>   s+      -
1 Q!34-
r#   r%   r(   c              3   V   K   | ]!  \  }}t        |      |t        |      n|f # y wr   r`   r   s      r   r"   z'Serializer._loads_v2.<locals>.<genexpr>   s1      
1 Qq}!3!L
s   ')r*   )jsonrJ   zlib
decompressr   rD   errorr   r2   r3   r   rV   r\   s        r   	_loads_v2zSerializer._loads_v2   s     	ZZ 5 < <V DEF
 &7vj7I&7Q%Rz6"(, -
z*95;;=-
 )
z9% (7vj7I(7S'Tz8$ 
v,,.
 
v
 $$Wfi@@ DJJ' 		s   7C C,+C,c                      y r   rP   rX   s       r   	_loads_v3zSerializer._loads_v3   rZ   r   c                 v    	 t        j                  |d      }| j                  |||      S # t        $ r Y y w xY w)NF)raw)r   rJ   rD   rV   r\   s        r   	_loads_v4zSerializer._loads_v4   sB    	]]4U3F $$Wfi@@  		s   , 	88r   )__name__
__module____qualname__r8   rJ   rV   rY   r]   rf   rh   rk   rP   r   r   r   r      s1    *LX<'TRAA*Ar   r   )r   r/   rb   rc   pip._vendorr   pip._vendor.requests.structuresr   compatr   r   r   r   r   object_default_body_readr   rP   r   r   <module>rt      sC   
  	    ? 3 3// X cA cAr   