Viewing File: /opt/alt/python38/lib64/python3.8/site-packages/aiohttp/__pycache__/web_response.cpython-38.pyc

U

'7`Zf@sddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZmZddlmZmZmZmZmZmZmZmZmZmZddlmZmZddlm Z m!Z!dd	l"m#Z#dd
l$m%Z%m&Z&m'Z'm(Z(ddl)m*Z*m+Z+m,Z,m-Z-ddl!m.Z.dd
l/m0Z0m1Z1dZ2er<ddl3m4Z4ee5efZ6nej"jZ6e%sTdej7d<Gdddej8Z9Gddde6e&Z:Gddde:Z;e(fddddddej<deee5ee=e>ee5ee1e5e0e;d	ddZ?dS)N)Executor)	parsedate)MorselSimpleCookie)

TYPE_CHECKINGAnyDictIteratorMappingMutableMappingOptionalTupleUnioncast)CIMultiDictistr)hdrspayload)AbstractStreamWriter)PY_38HeadersMixinrfc822_formatted_timesentinel)	RESPONSESSERVER_SOFTWARE
HttpVersion10
HttpVersion11)Payload)JSONEncoderLooseHeaders)
ContentCodingStreamResponseResponse
json_response)BaseRequestZSameSitesamesitec@seZdZdZdZdZdS)r!deflategzipidentityN)__name__
__module____qualname__r'r(r)r-r-G/opt/alt/python38/lib64/python3.8/site-packages/aiohttp/web_response.pyr!4sr!c
seZdZdZddddeeeeeddddZe	e
dd	d
Ze	dddd
Ze	edddZ
e	e
dddZe	e
dddZe	edddZdefeeeeeeeeffddddZe	ee
dddZddddZe	edddZe	eddd Zdpeedd!d"d#Zdqeee
efdd$d%d&Ze	d'dd(d)Ze	d*dd+d,Zdddd-ddddd.eeeeeeeeeefeee
ee
eeeedd/d0d1Zdd-d2eeeedd3d4d5Z e	eedfd6d7Z!e!j"eedd8d9d7Z!e	edfd:d;Z#e#j"edd8d<d;Z#e	eedfd=d>Z$e$j"eedd8d?d>Z$e	ee%j%dd@dAZ&e&j"eeee'e%j%efdd8dBdAZ&e(j)fe*ddCdDdEZ+eddFdGdHZ,dIddJdKdLZ-dIee.dJdMdNZ/dIe.dJdOdPZ0dddQdRZ1dddSdTZ2e3ddUdVdWZ4dddXdYZ5dre3ddUd[d\Z6edd]d^Z7ee8d_d`daZ9ee8ddbdcddZ:edd_dedfZ;eddgdhZ<e=eddidjZ>eddkdlZ?e@e
dmdndoZAZBS)sr"TNstatusreasonheaders)r1r2r3returncCspd|_d|_d|_d|_d|_t|_d|_d|_d|_	d|_
i|_|dk	rXt||_
nt|_
|||dS)NFr)_body_keep_alive_chunked_compression_compression_forcer_cookies_req_payload_writer	_eof_sent_body_length_stater_headers
set_status)selfr1r2r3r-r-r.__init__GszStreamResponse.__init__r4cCs
|jdk	SN)r<rBr-r-r.preparedbszStreamResponse.preparedzasyncio.Task[None]cCst|jddS)Ntask)getattrr;rFr-r-r.rHfszStreamResponse.taskcCs|jSrE)_statusrFr-r-r.r1jszStreamResponse.statuscCs|jSrE)r7rFr-r-r.chunkednszStreamResponse.chunkedcCs|jSrE)r8rFr-r-r.compressionrszStreamResponse.compressioncCs|jSrE)_reasonrFr-r-r.r2vszStreamResponse.reason)r1r2
_RESPONSESr4cCsV|jrtdt||_|dkrLz||jd}Wntk
rJd}YnX||_dS)NzGCannot change the response status code after the headers have been sentr)rGAssertionErrorintrJ	ExceptionrM)rBr1r2rNr-r-r.rAzs

zStreamResponse.set_statuscCs|jSrEr6rFr-r-r.
keep_aliveszStreamResponse.keep_alivecCs
d|_dS)NFrSrFr-r-r.force_closeszStreamResponse.force_closecCs|jSrE)r>rFr-r-r.body_lengthszStreamResponse.body_lengthcCstdt|jst|jjS)Nzoutput_length is deprecated)warningswarnDeprecationWarningr<rPZbuffer_sizerFr-r-r.
output_lengths
zStreamResponse.output_length)
chunk_sizer4cCs2d|_tj|jkrtd|dk	r.tdtdS)z,Enables automatic chunked transfer encoding.Tz>You can't enable chunked encoding when a content length is setNzChunk size is deprecated #1615)r7rCONTENT_LENGTHr@RuntimeErrorrWrXrY)rBr[r-r-r.enable_chunked_encodingsz&StreamResponse.enable_chunked_encoding)forcer4cCsTt|tkr*|rtjntj}tdtn|dk	rDt|tsDt	dd|_
||_dS)z&Enables response compression encoding.z+Using boolean for force is deprecated #3318Nz1force should one of None, bool or ContentEncodingT)typeboolr!r'r)rWrXrY
isinstancerPr8r9)rBr_r-r-r.enable_compressionsz!StreamResponse.enable_compressionzCIMultiDict[str]cCs|jSrE)r@rFr-r-r.r3szStreamResponse.headerszSimpleCookie[str]cCs|jSrE)r:rFr-r-r.cookiesszStreamResponse.cookies/)expiresdomainmax_agepathsecurehttponlyversionr&)namevaluerfrgrhrirjrkrlr&r4c
Cs|j|}|dk	r,|jdkr,|j|d||j|<|j|}|dk	rR||d<n|ddkrf|d=|dk	rv||d<|dk	rt||d<nd|kr|d=||d<|dk	r||d<|dk	r||d	<|	dk	r|	|d
<|
dk	r|
|d<dS)zSet or update response cookie.

        Sets new cookie or updates existent with new value.
        Also updates only those params which are not None.
        NrOrfThu, 01 Jan 1970 00:00:00 GMTrgzmax-agerirjrkrlr&)r:getZcoded_valuepopstr)
rBrmrnrfrgrhrirjrkrlr&oldcr-r-r.
set_cookies0


zStreamResponse.set_cookie)rgri)rmrgrir4cCs(|j|d|j|ddd||ddS)zBDelete cookie.

        Creates new empty expired cookie.
        NrOrro)rhrfrgri)r:rqru)rBrmrgrir-r-r.
del_cookieszStreamResponse.del_cookiecstjSrE)supercontent_lengthrF	__class__r-r.rxszStreamResponse.content_lengthrnr4cCsD|dk	r0t|}|jrtdt||jtj<n|jtjddS)Nz<You can't set content length when chunked encoding is enable)rQr7r]rrr@rr\rqrBrnr-r-r.rxscstjSrE)rwcontent_typerFryr-r.r}szStreamResponse.content_typecCs|jt||_|dSrE)r}rr
_content_type_generate_content_type_headerr|r-r-r.r}s
cstjSrE)rwcharsetrFryr-r.r#szStreamResponse.charsetcCsZ|j}|dkrtd|jdk	s$t|dkr<|jddnt||jd<|dS)Napplication/octet-streamzYSetting charset for application/octet-stream doesn't make sense, setup content_type firstr)r}r]
_content_dictrPrqrrlowerr)rBrnctyper-r-r.r(scCsF|jtj}|dk	rBt|}|dk	rBtj|dddtjjiSdS)zuThe value of Last-Modified HTTP header, or None.

        This header is represented as a `datetime` object.
        NZtzinfo)r@rpr
LAST_MODIFIEDrdatetimetimezoneZutc)rBZhttpdateZ	timetupler-r-r.
last_modified7szStreamResponse.last_modifiedcCs|dkr|jtjdnlt|ttfrJtdt	t
||jtj<n<t|tjrptd|
|jtj<nt|tr||jtj<dS)Nz%a, %d %b %Y %H:%M:%S GMT)r@rqrrrbrQfloattimestrftimegmtimemathZceilrZutctimetuplerrr|r-r-r.rDs
)CONTENT_TYPEr4cCs^|jdk	st|jdk	stddd|jD}|rJ|jd|}n|j}||j|<dS)Nz; css |]\}}|d|VqdS)=Nr-).0kvr-r-r.	<genexpr>Zsz?StreamResponse._generate_content_type_header.<locals>.<genexpr>)rrPr~joinitemsr@)rBrZparamsrr-r-r.rUsz,StreamResponse._generate_content_type_headercodingr4csH|tjkrD|jdk	st|j|jtj<|j|j|j	tj
ddSrE)r!r)r<rPrnr@rCONTENT_ENCODINGrcZpopallr\)rBrr-r-r._do_start_compressionas

z$StreamResponse._do_start_compressionr%requestr4cs\|jr||jIdHn>|jtjd}tD]$}|j|kr2||IdHdSq2dS)NrO)	r9rr3rprZACCEPT_ENCODINGrr!rn)rBrZaccept_encodingrr-r-r._start_compressionjs
z!StreamResponse._start_compressioncs*|jr
dS|jdk	r|jS||IdHSrE)r=r<_startrBrr-r-r.preparets

zStreamResponse.preparecsB||_|j}|_|IdH||IdH|IdH|SrE)r;r<_prepare_headersZ
_prepare_hook_write_headers)rBrwriterr-r-r.r|szStreamResponse._startcs|j}|dk	st|j}|dk	s$t|j}|dkr8|j}||_|j}|j}|jD]&}|j	dddd}|
tj|qT|j
r||IdH|jr|tkrtd|j|d|tj<tj|kr|tj=nr|jrH|j|_|jdkr*|tkr$|d|tj<tj|kr(|tj=nd}n|tkrH|jdkrH|tj=|tjd|tjt|tjttj |kr|r|t!krd	|tj <n|tkrd
|tj <dS)NrO)headerrz@Using chunked encoding is forbidden for HTTP/{0.major}.{0.minor}rKF)defgrz
keep-aliveclose)"r;rPr<r6rTrlr@r:valuesoutputaddrZ
SET_COOKIEr8rr7rr]formatZenable_chunkingZTRANSFER_ENCODINGr\
_length_checkrxZlengthr1
setdefaultrZDATErZSERVERrZ
CONNECTIONr)rBrrrTrlr3Zcookiernr-r-r.rs\







zStreamResponse._prepare_headerscs^|j}|dk	st|j}|dk	s$t|j}d|d|d|j|j}|||jIdHdS)NzHTTP/{}.{} {} {}rr)	r;rPr<rlrrJrMZ
write_headersr@)rBrrrlZstatus_liner-r-r.rszStreamResponse._write_headersdatar4csVt|tttfs tdt||jr.td|jdkr@td|j	|IdHdS)N#data argument must be byte-ish (%r)z%Cannot call write() after write_eof()z$Cannot call write() before prepare())
rbbytes	bytearray
memoryviewrPr`r=r]r<writerBrr-r-r.rs

zStreamResponse.writecsD|jrtd|jdk	s tdtjdtdd|jIdHdS)NzEOF has already been sentResponse has not been startedz2drain method is deprecated, use await resp.write())
stacklevel)r=rPr<rWrXrYdrainrFr-r-r.rszStreamResponse.draincsnt|tttfs tdt||jr*dS|jdk	s<td|j|IdHd|_d|_	|jj
|_d|_dS)NrrT)rbrrrrPr`r=r<	write_eofr;Zoutput_sizer>rr-r-r.rs

zStreamResponse.write_eofcCs\|jrd}n2|jr:|jdk	s t|jjd|jjd}nd}d|jjd|jd|dS)Neof znot prepared<>)	r=rGr;rPmethodrirzr*r2)rBinfor-r-r.__repr__szStreamResponse.__repr__)keyr4cCs
|j|SrEr?rBrr-r-r.__getitem__szStreamResponse.__getitem__)rrnr4cCs||j|<dSrEr)rBrrnr-r-r.__setitem__szStreamResponse.__setitem__cCs|j|=dSrErrr-r-r.__delitem__szStreamResponse.__delitem__cCs
t|jSrE)lenr?rFr-r-r.__len__szStreamResponse.__len__cCs
t|jSrE)iterr?rFr-r-r.__iter__szStreamResponse.__iter__cCstt|SrE)hashidrFr-r-r.__hash__szStreamResponse.__hash__)otherr4cCs||kSrEr-)rBrr-r-r.__eq__szStreamResponse.__eq__)N)N)r)Cr*r+r,rrQrrrr rCpropertyrarGrHr1rKrLr2rr
r
rArTrUrVrZr^rr!rcr3rdrurvrxsetterr}rrrrrrrrrrrrrrrrrrrrrrrrrr	rrobjectr
__classcell__r-r-ryr.r"Cs5	

:

r"csVeZdZdddddddddd	eeeeeeeeeeeeeeeedd
fddZ	e
eeee
fddd	Zejejejfeeedd
dd	Ze
eeddd
Zejedddd
Ze
eedfddZejeeddddZd"eddfdd
ZdedfddZeddddZeddfd d!ZZS)#r#Nr/)	bodyr1r2textr3r}rzlib_executor_size
zlib_executor)
rr1r2rr3r}rrrr4c	s^|dk	r|dk	rtd|dkr(t}
nt|ts<t|}
n|}
|dk	rXd|krXtd|dk	rtj|
kr||sr|rtdnRt|tstdt||dkrd}|dkrd}|d||
tj<||}d}nNtj|
kr|dk	s|dk	rtdn*|dk	r|dk	r|d|7}||
tj<t	j
|||
d	|dk	rB||_n||_d|_
||_|	|_dS)
Nz&body and text are not allowed togetherrz,charset must not be in content_type argumentzPpassing both Content-Type header and content_type or charset params is forbiddentext argument must be str (%r)
text/plainutf-8z
; charset=r0)
ValueErrorrrbrrrr	TypeErrorr`encoderwrCrr_compressed_body_zlib_executor_size_zlib_executor)rBrr1r2rr3r}rrrZreal_headersryr-r.rCsP










zResponse.__init__rDcCs|jSrE)r5rFr-r-r.rYsz
Response.body)rrr\r4cCs|dkrd|_d|_nt|ttfr2||_d|_nztj||_}Wn&tjk
rnt	dt
|YnXd|_|j}|js||kr|j
}|dk	rt|||<||kr|j||<|jr|jD]\}}||kr|||<qd|_dS)NFzUnsupported body type %rT)r5
_body_payloadrbrrrZPAYLOAD_REGISTRYrpLookupErrorrr`r@r7sizerrr}r3rr)rBrrr\r3rrrnr-r-r.r]s.

cCs |jdkrdS|j|jpdS)Nr)r5decoderrFr-r-r.rs
z
Response.text)rr4cCs`|dks"t|ts"tdt||jdkr2d|_|jdkrBd|_||j|_d|_d|_	dS)NrrrrF)
rbrrrPr`r}rrr5rr)rBrr-r-r.rs



csX|jr
dStj|jkrtjS|jdk	r2t|jS|jr<dS|j	dk	rPt|j	SdSdS)Nr)
r7rr\r@rwrxrrrr5rFryr-r.rxs



zResponse.content_lengthr{cCstddS)Nz#Content length is set automatically)r]r|r-r-r.rxsrrcs|jr
dS|jdkr|j}n|j}|r4td||jdk	sBt|jdk	sPt|dk	r|jjtjksp|j	dkrt
IdHq|jrt
t|}||jIdHt
IdHqt
t
t|IdHnt
IdHdS)Nzdata arg is not supported, got )ri0)r=rr5rPr;r<_methodrZ	METH_HEADrJrwrrrrrr)rBrrrryr-r.rs"

zResponse.write_eofr%rcsX|jsFtj|jkrF|jsF|jdk	r:tt|j|jtj<nd|jtj<t	|IdHS)N0)
r7rr\r@rr5rrrrwrrryr-r.rs
zResponse._start)	zlib_moder4cCsB|dksttj|d}|j}|dk	s*t||||_dS)Nr)Zwbits)rPzlibcompressobjr5compressflushr)rBrrbody_inr-r-r._compress_bodys
zResponse._compress_bodyrcs|js|jrt|IdHS|tjkr|tjkr<dtjntj}|j	}|dk	sTt
|jdk	rt||jkrt
|j|j|IdHn
|||j}|dk	st
|j|jtj<tt||jtj<dS)N)rr7rwrr!r)r(rZ	MAX_WBITSr5rPrrasyncioZget_event_loopZrun_in_executorrrrrnr@rrrrr\)rBrrrZbody_outryr-r.rs*

zResponse._do_start_compression)r)r*r+r,rrQrrrr rrCrrrrrrrrr\rrrxrrrrr!rrr-r-ryr.r#sXF(
r#r/zapplication/json)rrr1r2r3r}dumps)	rrrr1r2r3r}rr4cCs6|tk	r"|s|rtdn||}t||||||dS)Nz3only one of data, text, or body should be specified)rrr1r2r3r})rrr#)rrrr1r2r3r}rr-r-r.r$s
r$)@rZcollections.abccollectionsrenumZjsonrrrWrconcurrent.futuresrZemail.utilsrZhttp.cookiesrrtypingrrrr	r
rrr
rrZ	multidictrrrOrrabcrZhelpersrrrrZhttprrrrrZtypedefsrr __all__Zweb_requestr%rrZ	BaseClassZ	_reservedEnumr!r"r#rrrQr$r-r-r-r.<module>sj0

Rf
Back to Directory File Manager