U ÀÒ.e*ã@spddlZddlZddlZddlZddlmZddlmZddlm Z m Z m Z dd„Z dd „Z Gd d „d eƒZdS) éN)Úmsgpack)ÚCaseInsensitiveDicté)Ú HTTPResponseÚpickleÚ text_typecCst | d¡¡S)NÚascii)Úbase64Z b64decodeÚencode)Úb©r úF/usr/lib/python3.8/site-packages/pip/_vendor/cachecontrol/serialize.pyÚ_b64_decode_bytes srcCst|ƒ d¡S)NÚutf8)rÚdecode)Úsr r r Ú_b64_decode_strsrc@sNeZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dS)Ú SerializerNc CsÚt|jƒ}|dkr*|jdd�}t |¡|_d|tdd„|j ¡Dƒƒ|j|j t |j ƒ|j |j dœi}i|d<d|krÂ|d d¡}|D]:}t |ƒ ¡}|j |d¡}|dk r´t |ƒ}||d|<q†d  d tj|d d �g¡S) NF)Údecode_contentÚresponsecss"|]\}}t|ƒt|ƒfVqdS©N)r©Ú.0ÚkÚvr r r Ú 2sz#Serializer.dumps..)ÚbodyÚheadersÚstatusÚversionÚreasonÚstrictrÚvaryú,ó,scc=4T)Z use_bin_type)rrÚreadÚioÚBytesIOZ_fpÚdictÚitemsrrrr r!rÚsplitÚstripÚgetÚjoinrÚdumps) ÚselfÚrequestrrZresponse_headersÚdataZvaried_headersÚheaderZ header_valuer r r r.s4  ÿ÷ÿ zSerializer.dumpscCsœ|sdSz| dd¡\}}Wntk r4d}YnX|dd…dkrR||}d}| dd¡d d¡}zt|d  |¡ƒ||ƒWStk r–YdSXdS) Nr$rscc=0éscc=ó=éÿÿÿÿrz _loads_v{})r*Ú ValueErrorrÚgetattrÚformatÚAttributeError)r/r0r1Zverr r r ÚloadsJs zSerializer.loadscCsØd| di¡krdS| di¡ ¡D] \}}|j |d¡|kr$dSq$|d d¡}t|ddd�}| dd ¡d kr€| d¡||dd<zt |¡}Wn$tk r¾t | d ¡¡}YnXt f|d d œ|d—ŽS)z`Verify our vary headers match and construct a real urllib3 HTTPResponse object. Ú*r"Nrrr)r1ztransfer-encodingÚZchunkedrF)rZpreload_content) r,r)rÚpoprr&r'Ú TypeErrorr r)r/r0Úcachedr2ÚvalueZbody_rawrrr r r Úprepare_responsehs  zSerializer.prepare_responsecCsdSrr ©r/r0r1r r r Ú _loads_v0ŒszSerializer._loads_v0cCs2zt |¡}Wntk r$YdSX| ||¡Sr)rr:r6rA©r/r0r1r?r r r Ú _loads_v1’s zSerializer._loads_v1c Cs¸zt t |¡ d¡¡}Wnttjfk r6YdSXt|ddƒ|dd<tdd„|dd  ¡Dƒƒ|dd<t |ddƒ|dd<tdd„|d   ¡Dƒƒ|d <|  ||¡S) Nrrrcss"|]\}}t|ƒt|ƒfVqdSr©rrr r r r¢sÿz'Serializer._loads_v2..rr css.|]&\}}t|ƒ|dk r t|ƒn|fVqdSrrFrr r r r§sÿr") Újsonr:ÚzlibÚ decompressrr6Úerrorrr(r)rrArDr r r Ú _loads_v2šsþ þ zSerializer._loads_v2cCsdSrr rBr r r Ú _loads_v3®szSerializer._loads_v3cCs6ztj|dd�}Wntk r(YdSX| ||¡S)Nzutf-8)Úencoding)rr:r6rArDr r r Ú _loads_v4´s zSerializer._loads_v4)N) Ú__name__Ú __module__Ú __qualname__r.r:rArCrErKrLrNr r r r rs 4$r)r r&rGrHZ pip._vendorrZpip._vendor.requests.structuresrÚcompatrrrrrÚobjectrr r r r Ús