idOk\ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z mZddlmZmZmZmZmZmZmZmZmZmZddlmZmZddlmZmZddl m!Z!dd l"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+dd l,m-Z-m.Z.m/Z/m0Z0dd lm1Z1dd l2m3Z3m4Z4d Z5erddl6m7Z7ee8efZ9n ej jZ9e$s de j:d<Gddej;Z<Gdde9e'Z=Gdde=Z>e*fddddddej?ddedee8dee@deAdee8dee4d e8d!e3d"e>fd#ZBdS)$N)Executor)Morsel SimpleCookie) TYPE_CHECKINGAnyDictIteratorMappingMutableMappingOptionalTupleUnioncast) CIMultiDictistr)hdrspayload)AbstractStreamWriter) ETAG_ANYPY_38QUOTED_ETAG_REETag HeadersMixinparse_http_daterfc822_formatted_timesentinelvalidate_etag_value) RESPONSESSERVER_SOFTWARE HttpVersion10 HttpVersion11)Payload) JSONEncoder LooseHeaders) ContentCodingStreamResponseResponse json_response) BaseRequestSameSitesamesiteceZdZdZdZdZdS)r&deflategzipidentityN)__name__ __module__ __qualname__r.r/r0I/opt/cloudlinux/venv/lib/python3.11/site-packages/aiohttp/web_response.pyr&r&=s G DHHHr5r&ceZdZdZdddddedeedeeddfd Ze de fd Z e dRd Z e defd Z e de fdZe de fdZe defdZdefdedeedeeeeeffddfdZe dee fdZdSdZe defdZe defdZdTdeeddfdZ dTdeee efddfdZe dUdZe dVdZddddddddd d!ed"ed#eed$eed%eeeefd&ed'ee d(ee d)eed*eeddfd+Zddd,d!ed$eed&eddfd-Z e deeffd. Z!e!j"d"eeddfd/Z!e deffd0 Z#e#j"d"eddfd1Z#e deeffd2 Z$e$j"d"eeddfd3Z$e dee%j%fd4Z&e&j"d"eeee'e%j%efddfd5Z&e dee(fd6Z)e)j"d"eee(efddfd7Z)e*j+fd8e,ddfd9Z-d:eddfd;Z.dWd>Z/dde?efdNZ@defdOZAdPeBde fdQZCxZDS)Yr'TNstatusreasonheadersr:r;r<returnc8d|_d|_d|_d|_d|_t |_d|_d|_d|_ d|_ i|_ |t||_ nt|_ |||dS)NFr)_body _keep_alive_chunked _compression_compression_forcer_cookies_req_payload_writer _eof_sent _body_length_stater_headers set_status)selfr:r;r<s r6__init__zStreamResponse.__init__Ps +/ !;?+7>> +/ ?C&(  .9'.B.BDMM'MMDM '''''r5c|jduSN)rFrLs r6preparedzStreamResponse.preparedks#4//r5Optional[asyncio.Task[None]]c,|jr |jjSdSrO)rEtaskrPs r6rTzStreamResponse.taskos 9 9> !4r5c|jSrO)_statusrPs r6r:zStreamResponse.statusv |r5c|jSrO)rArPs r6chunkedzStreamResponse.chunkedz }r5c|jSrO)rBrPs r6 compressionzStreamResponse.compression~   r5c|jSrO)_reasonrPs r6r;zStreamResponse.reasonrWr5 _RESPONSESc|jr Jdt||_|' ||jd}n#t$rd}YnwxYw||_dS)NzGCannot change the response status code after the headers have been sentr)rQintrV Exceptionr_)rLr:r;r`s r6rKzStreamResponse.set_statuss =  X   6{{ > #DL1!4     s= A  A c|jSrOr@rPs r6 keep_alivezStreamResponse.keep_alives r5cd|_dS)NFrfrPs r6 force_closezStreamResponse.force_closes r5c|jSrO)rHrPs r6 body_lengthzStreamResponse.body_lengthr]r5c`tjdt|jsJ|jjS)Nzoutput_length is deprecated)warningswarnDeprecationWarningrF buffer_sizerPs r6 output_lengthzStreamResponse.output_lengths1 35GHHH#####//r5 chunk_sizecd|_tj|jvrt d|t jdtdSdS)z,Enables automatic chunked transfer encoding.Tz>You can't enable chunked encoding when a content length is setNzChunk size is deprecated #1615)rArCONTENT_LENGTHrJ RuntimeErrorrmrnro)rLrrs r6enable_chunked_encodingz&StreamResponse.enable_chunked_encodingsX  $- / /S   ! M:,>D y ) **,,,,,r5cdt|jtjS)zuThe value of Last-Modified HTTP header, or None. This header is represented as a `datetime` object. )rrJrr LAST_MODIFIEDrPs r6 last_modifiedzStreamResponse.last_modifiedBs% t}001CDDEEEr5c*|'|jtjddSt |t t frMtjdtj tj ||jtj<dSt |tj r;tjd| |jtj<dSt |tr||jtj<dSdS)Nz%a, %d %b %Y %H:%M:%S GMT)rJrrrr{rcfloattimestrftimegmtimemathceildatetime utctimetuplerrs r6rzStreamResponse.last_modifiedJs = M  d0$ 7 7 7 7 7 U| , , 604 +T[59I9I-J-J11DM$, - - -x0 1 1 604 +U-?-?-A-A11DM$, - - -s # # 605DM$, - - - 6 6r5c0|jtj}|sdS|tkrt tSt j|}|sdS|dd\}}t t||S)N)rr)is_weakr) rJrrETAGrrr fullmatchgrouprz)rL quoted_valuematchrrs r6etagzStreamResponse.etag[s}((33  (4 X % %h''' '(66 4Q**MM    r5c|'|jtjddSt |t r |t ks%t |tr+|jt krt |jtj<dSt |t r)t|d|d|jtj<dSt |trat |jt rGt|j|j r d|jdn d|jd}||jtj<dStdt|d)N"zW/"zUnsupported etag type: z . etag must be str, ETag or None) rJrrrr{rrrrrr ValueErrorry)rLr hdr_values r6rzStreamResponse.etagksV = M  di . . . . .$$ ():): ud # #*;(- x(?(?'/DM$) $ $ $ s # #   & & &'35|||DM$) $ $ $ t $ $ EK)E)E   , , ,05 U,ek,,,,CUu{CUCUCUI'0DM$) $ $ $2$u++222 r5 CONTENT_TYPEc|jJ|jJdd|jD}|r|jdz|z}n|j}||j|<dS)Nz; c3*K|]\}}|d|VdS)=Nr4).0kvs r6 z?StreamResponse._generate_content_type_header..s0MM$!Qa::!::MMMMMMr5)rrjoinitemsrJ)rLrparamsrs r6rz,StreamResponse._generate_content_type_headers!---!---MM$2D2J2J2L2LMMMMM  '&-6EE&E&+ l###r5codingcK|tjkrh|jJ|j|jt j<|j|j|jt j ddSdSrO) r&r0rFrrJrCONTENT_ENCODINGr|popallrt)rLrs r6_do_start_compressionz$StreamResponse._do_start_compressionsx ]+ + +'33339 4   +' '[[)))))))))r5cK||_|jx}|_|d{V||d{V|d{V|SrO)rErF_prepare_headers _prepare_hook_write_headers)rLrwriters r6rzStreamResponse._starts (/(??%##%%%%%%%%%##D)))))))))!!######### r5cK|j}|J|j}|J|j}||j}||_|j}|j}|jD]@}|ddd}| tj |A|j r| |d{V|jrq|tkr't!d|j|d|tj<tj|vr |tj=n|jr|j|_|jX|tkrJ|jdkr?|d|tj<tj|vr |tj=n$d}n!|tkr|jdvr |tj=|jd vr |tjd |tjt9|tjt<tj|vr<|r|t@krd |tj<dSdS|tkrd |tj<dSdSdS) Nrb)headerrz@Using chunked encoding is forbidden for HTTP/{0.major}.{0.minor}rYF)defgrri0rz keep-aliveclose)!rErFr@rgrrJrDvaluesoutputaddr SET_COOKIErBrrAr"ruformatenable_chunkingTRANSFER_ENCODINGrt _length_checkrlengthr: setdefaultrDATErSERVERr CONNECTIONr!)rLrrrgrr<cookiers r6rzStreamResponse._prepare_headerss)"""%!!!%   +J%/-m**,, 0 0FMMM,,QRR0E KK / / / /   3))'22 2 2 2 2 2 2 2 = 1-''"3396'/3J3J  " " $ $ $.7GD* +"g--D/0   1 /FM}$m++ s0B0B**,,,6?GD23*g55#D$78!&JJM))dk=V.V.VD/0 ;j ( (   t02L M M M49&;&=&=>>>4;888 ?' ) ) 7m++/;GDO,,,,+m++/6GDO,,, * ) ,+r5cK|j}|J|j}|J|j}d|d|d|j|j}|||jd{VdS)NzHTTP/{}.{} {} {}rr)rErFrrrVr_ write_headersrJ)rLrrr status_lines r6rzStreamResponse._write_headerss)"""%!!!/(// AJ DL$,  ""; >>>>>>>>>>>r5datacKt|tttfsJdt |z|jrt d|jt d|j|d{VdS)N#data argument must be byte-ish (%r)z%Cannot call write() after write_eof()z$Cannot call write() before prepare()) r{bytes bytearray memoryviewryrGrurFwriterLrs r6rzStreamResponse.writes 5)Z0   > > 04:: = > > > > HFGG G   'EFF F"((...........r5cK|jr Jd|j Jdtjdtd|jd{VdS)NzEOF has already been sentResponse has not been startedz2drain method is deprecated, use await resp.write()r) stacklevel)rGrFrmrnrodrainrPs r6rzStreamResponse.drains>>>#>>>>#//1P/// @     "((***********r5r5cBKt|tttfsJdt |z|jrdS|j Jd|j|d{Vd|_d|_|jj |_ d|_dS)NrrT) r{rrrryrGrF write_eofrE output_sizerHrs r6rzStreamResponse.write_eofs 5)Z0   > > 04:: = > > > >  F#//1P///",,T222222222  0<#r5c|jrd}n/|jr&|jJ|jjd|jjd}nd}d|jjd|jd|dS)Neof z not prepared<>)rGrQrEmethodrrr1r;)rLinfos r6__repr__zStreamResponse.__repr__sy > "DD ] "9(((i&:::::DD!DB4>*BBT[BB4BBBBr5keyc|j|SrOrIrLrs r6 __getitem__zStreamResponse.__getitem__(s{3r5c||j|<dSrOr)rLrrs r6 __setitem__zStreamResponse.__setitem__+s  Cr5c|j|=dSrOrrs r6 __delitem__zStreamResponse.__delitem__.s K   r5c*t|jSrO)lenrIrPs r6__len__zStreamResponse.__len__1s4;r5c*t|jSrO)iterrIrPs r6__iter__zStreamResponse.__iter__4sDK   r5c:tt|SrO)hashidrPs r6__hash__zStreamResponse.__hash__7sBtHH~~r5otherc ||uSrOr4)rLr$s r6__eq__zStreamResponse.__eq__:s u}r5)r=rR)r=NrO)r=r})r=r)rr*r=Nr5)Er1r2r3rrcr rr%rMpropertyrzrQrTr:rYr\r;rr r rKrgrirkrqrvrr&r|r<rrrrsetterrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rr#objectr& __classcell__rs@r6r'r'LshM  $*. (((( ( ,' (  ((((60$000X0X XX!T!!!X!X !%4=  CsCx01   " HTN   X !!!!!S!!!X!0s000X0 P P(3- P4 P P P P=A((eD-$789( (((($XX"& $-1!%#'!%"&1%1%1%1%1% # 1%  1%%S/*1%1%1%4.1%#1%3-1% 1%1%1%1%h59c    $,SM @C     $& &&&&&X& 9HSM 9d 9 9 9 9$c$$$$$X$-#-$---- #X ^ -Xc] -t - - -^ -Fx(9:FFFXF6eC0A3$FGH6 6666   htn    X   [(5s#34[*$(#4 , ,  ,  , , , ,<-2MPW2W T./{{7++ L00+w/B$'0C +*$ w(>> 6BL!23 v|LLL  DIIDI15#5 +r5c|jSrO)r?rPs r6r.z Response.bodys zr5rrtc"|d|_d|_nt|ttfr||_d|_n t j|x|_}n2#t j$r tdt|zwxYwd|_|j }|j s||vr|j }|t|||<||vr |j||<|jr(|jD]\}}||vr|||<d|_dS)NFzUnsupported body type %rT)r? _body_payloadr{rrrPAYLOAD_REGISTRYr LookupErrorrryrJrAsizerrr<rr8)rLr.rrtr<rArrs r6r.z Response.bodysS <*.DJ',D   ui0 1 1 -DJ!&D   J$+$<$@$@$F$FF TT& J J J !;d4jj!HIII J"&D mG= 8^7%B%By#.1$iiGN+7**(,(9 %| -$(L$6$6$8$8--LS%'))', $s &A%%/BcV|jdS|j|jpdS)Nr5)r?decoderrPs r6r/z Response.texts, : 4z  !8999r5c|/t|tsJdt|z|jdkrd|_|jd|_||j|_d|_d|_dS)Nr3rr4r5F) r{rryrrr7r?r>r8)rLr/s r6r/z Response.texts|z #  || +d4jj 8||   : : : ,D  < "DL[[.. " $r5c|jrdStj|jvrt jS|jt|jS|jrdS|j t|j SdS)Nr) rArrtrJrrr8rr>r?rs r6rzResponse.content_lengthst = 4  $- / /77) )  ,t,-- -   4 Z #tz?? "1r5rc td)Nz#Content length is set automatically)rurs r6rzResponse.content_lengths@AAAr5r5rcK|jrdS|j|j}n|j}|r Jd||jJ|jJ||jjt jks |jdvr(t d{VdS|j rXtt|}|j|jd{Vt d{VdSt tt|d{VdSt d{VdS)Nzdata arg is not supported, got r)rGr8r?rErF_methodr METH_HEADrVrrr>rr#rr)rLrr.rrs r6rzResponse.write_eofs >  F  (48JDD(DCCC4CCCCCy$$$#///  y DN22dlj6P6Pgg'')))))))))))# ;w--#gmD$8999999999gg'')))))))))))gg''UD(9(9:::::::::::''##%% % % % % % % % % %r5rr*c6K|jsitj|jvrV|jsO|j4t t|j|jtj<nd|jtj<t |d{VS)N0) rArrtrJr>r?rrrr)rLrrs r6rzResponse._starts} =!4DM!I!I% =:)9rArrr&r0r/rO MAX_WBITSr?r9rasyncioget_event_looprun_in_executorr:rTr8rrJrrrrt)rLrrLrSbody_outrs r6rzResponse._do_start_compressionsa   ? ?66v>>>>>>>> > ]+ + +(.1C'C'CT^## jG&&&(4LL4#;;;,..>>')s $"*.&*!%,0,0D,D,D,D, D,  D, sm D,,'D,smD,#D,%SMD, )D, D,D,D,D,D,D,LhuUG^45X [".#2 &%&%&%&% &%  &%&%&%[&%P:hsm:::X:  [ % % % % %[ % X$BHSMBdBBBB&&E&D&&&&&&,-M-6J------TTTTTTD-DDDDDDDDDDDDr5r(r8zapplication/json)r/r.r:r;r<rdumpsrr/r.r:r;r<rr\r=cz|tur|s|rtd||}t||||||S)Nz3only one of data, text, or body should be specified)r/r.r:r;r<r)rrr()rr/r.r:r;r<rr\s r6r)r)"sc 8  4 RSS S5;;D   !    r5)CrXcollections.abc collectionsrenumjsonrrrmrOconcurrent.futuresr http.cookiesrrtypingrrrr r r r r rr multidictrrrbrrabcrhelpersrrrrrrrrrhttprr r!r"r#typedefsr$r%__all__ web_requestr*r BaseClass _reservedEnumr&r'r(r\rrcr)r4r5r6ros  ''''''--------                        ('''''''%%%%%%                      KJJJJJJJJJJJ//////// J/((((((sCx(II.I .$.FZ DIoooooY ooodaDaDaDaDaD~aDaDaDJ  &**  3- 5/    SM l # r5