U n a@spddlZddlZddlZddlZddlmZddlmZddlm Z m Z m Z ddZ dd Z Gd d d eZdS) N)msgpack)CaseInsensitiveDict) HTTPResponsepickle text_typecCst|dS)Nascii)base64 b64decodeencode)br cC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_vendor\cachecontrol\serialize.py_b64_decode_bytes srcCst|dS)Nutf8)rdecode)sr r r_b64_decode_strsrc@sNeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ dS) SerializerNc Cst|j}|dkr*|jdd}t||_d|tdd|jD|j|j t |j |j |j di}i|d<d|kr|dd}|D]:}t |}|j|d}|dk rt |}||d|<qd d tj|d d gS) NF)decode_contentresponsecss"|]\}}t|t|fVqdSN)r.0kvr r r 2sz#Serializer.dumps..)bodyheadersstatusversionreasonstrictrvary,,scc=4T) use_bin_type)rrreadioBytesIO_fpdictitemsrr rr!r"rsplitstripgetjoinrdumps) selfrequestrrresponse_headersdatavaried_headersheader header_valuer r rr1s4   zSerializer.dumpscCs|sdSz|dd\}}Wntk r4d}YnX|dddkrR||}d}|dddd}zt|d |||WStk rYdSXdS) Nr%rscc=0scc==rz _loads_v{})r- ValueErrorrgetattrformatAttributeError)r2r3r5verr r rloadsJs zSerializer.loadscCsd|dikrdS|diD] \}}|j|d|kr$dSq$|dd}t|ddd}|dd d kr|d||dd<zt|}Wn$tk rt|d }YnXt f|d d |dS)z`Verify our vary headers match and construct a real urllib3 HTTPResponse object. *r#Nrrr)r5ztransfer-encodingchunkedrF)rpreload_content) r/r,rpoprr(r) TypeErrorr r)r2r3cachedr7valuebody_rawrrr r rprepare_responsehs  zSerializer.prepare_responsecCsdSrr r2r3r5r r r _loads_v0szSerializer._loads_v0cCs2zt|}Wntk r$YdSX|||Sr)rrAr<rKr2r3r5rHr r r _loads_v1s zSerializer._loads_v1c Csztt|d}Wnttjfk r6YdSXt|dd|dd<tdd|dd D|dd<t |dd|dd<tdd|d  D|d <| ||S) Nrrrcss"|]\}}t|t|fVqdSrrrr r rrsz'Serializer._loads_v2..rr!css.|]&\}}t||dk r t|n|fVqdSrrPrr r rrsr#) jsonrAzlib decompressrr<errorrr+r,rrKrNr r r _loads_v2s zSerializer._loads_v2cCsdSrr rLr r r _loads_v3szSerializer._loads_v3cCs6ztj|dd}Wntk r(YdSX|||S)NF)raw)rrAr<rKrNr r r _loads_v4s zSerializer._loads_v4)N) __name__ __module__ __qualname__r1rArKrMrOrUrVrXr r r rrs 4&r)r r(rQrR pip._vendorrZpip._vendor.requests.structuresrcompatrrrrrobjectrr r r rs