HEX
Server: LiteSpeed
System: Linux s787.bom1.mysecurecloudhost.com 4.18.0-477.13.1.lve.el8.x86_64 #1 SMP Thu Jun 1 16:40:47 EDT 2023 x86_64
User: mobilech (5348)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/__pycache__/web_response.cpython-310.pyc
o

;j?x�@slddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlmZddl
mZddlmZddlmZmZmZmZmZmZddlmZmZdd	lmZmZdd
lmZddl m!Z!m"Z"ddl#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.dd
l
m/Z/m0Z0m1Z1ddlm2Z2ddl3m4Z4m5Z5m6Z6dd�eD�Z7dZ8er�ddl9m:Z:e
e;efZ<nejj
Z<ed�Z=Gdd�dej>�Z?dd�e?D�Z@Gdd�de
e;e(eBefe'�ZAGdd�deA�ZBe,fddddddejCd�ded e;dBd!eDdBd"eEd#e;dBd$e6dBd%e;d&e5d'eBfd(d)�ZFe,fdddddd*�ded&e4d!eDdBd"eEd#e;dBd$e6dBd%e;d'eBfd+d,�ZGdS)-�N)�Iterator�MutableMapping)�Executor)�
HTTPStatus)�SimpleCookie)�
TYPE_CHECKING�Any�Optional�TypeVar�cast�overload)�CIMultiDict�istr�)�hdrs�payload)�AbstractStreamWriter)�MAX_SYNC_CHUNK_SIZE�ZLibCompressor)�ETAG_ANY�QUOTED_ETAG_RE�ETag�HeadersMixin�ResponseKey�must_be_empty_body�parse_http_date�rfc822_formatted_time�sentinel�should_remove_content_length�validate_etag_value)�SERVER_SOFTWARE�
HttpVersion10�
HttpVersion11)�Payload)�JSONBytesEncoder�JSONEncoder�LooseHeaderscCsi|]}|j|j�qS�)�value�phrase)�.0Zhttp_statusr'r'�H/opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/web_response.py�
<dictcomp>%sr,)�
ContentCoding�StreamResponse�Response�
json_response�json_bytes_response)�BaseRequest�_Tc@seZdZdZdZdZdS)r-�deflate�gzip�identityN)�__name__�
__module__�__qualname__r4r5r6r'r'r'r+r-<sr-cCsi|]}|j|�qSr'�r()r*�codingr'r'r+r,Fscs�eZdZUdeBeBeBed<dZdZdZ	e
dBed<dZe
ed<dZe
ed<dZ
edBed<dZedBed	<dZed
ed<dZedBed<dZe
ed
<dZe
dBed<dZdZedBed<dZe�Zeeed<ddddd�dededBdedBdeedBddf
dd�Z e!de
fdd��Z"e!d�dd��Z#e!defd d!��Z$e!de
fd"d#��Z%e!de
fd$d%��Z&e!defd&d'��Z'	d�dededBddfd(d)�Z(dededBddfd*d+�Z)e!de
dBfd,d-��Z*d�d.d/�Z+e!defd0d1��Z,e!defd2d3��Z-d�d4edBddfd5d6�Z.		d�d7e
eBdBd8edBddfd9d:�Z/e!d�d<d=��Z0e!defd>d?��Z1dddd@ddddddA�	dBedCedDedBdEedBdFeeBdBdGedHe
dBdIe
dBdJedBdKedBdLe
dBddfdMdN�Z2dd@ddddO�dBedEedBdGedHe
dBdIe
dBdKedBddfdPdQ�Z3e!dedBf�fdRdS��Z4e4j5dCedBddfdTdS��Z4e!def�fdUdV��Z6e6j5dCeddfdWdV��Z6e!dedBf�fdXdY��Z7e7j5dCedBddfdZdY��Z7e!de8j8dBfd[d\��Z9e9j5dCee:Be8j8BeBdBddfd]d\��Z9e!de;dBfd^d_��Z<e<j5dCe;eBdBddfd`d_��Z<e=j>fdae?ddfdbdc�Z@ddeddfdedf�ZAd�dhdi�ZBdgd
dedBfdjdk�ZCdgd
defdldm�ZDd�dndo�ZEd�dpdq�ZFdreeBeGBddfdsdt�ZHd�dudv�ZId�dreddfdxdy�ZJdefdzd{�ZKeLd|eMeNdeNfd}d~��ZOeLd|edePfdd~��ZOd|eeMeNBdePfd�d~�ZOeLd|eMeNdCeNddfd�d���ZQeLd|edCePddfd�d���ZQd|eeMeNBdCePddfd�d��ZQd|eeMeNBddfd�d��ZRdefd�d��ZSdeTeeMePBfd�d��ZUdefd�d��ZVd�eWde
fd�d��ZXde
fd�d��ZY�ZZS)�r.N�_bodyT�_keep_aliveF�_chunked�_compression�_compression_strategy�_compression_forcer2�_req�_payload_writer�	_eof_sent�_must_be_empty_bodyr�_cookies�_seen_str_keys��)�status�reason�headers�
_real_headersrIrJrKrL�returncCsBi|_|dur||_n|durt|�|_nt�|_|�||�dS)a;Initialize a new stream response object.

        _real_headers is an internal parameter used to pass a pre-populated
        headers object. It is used by the `Response` class to avoid copying
        the headers when creating a new response object. It is not intended
        to be used by external code.
        N)�_state�_headersr
�_set_status)�selfrIrJrKrLr'r'r+�__init__`szStreamResponse.__init__cCs|jp|jduS�N)rDrC�rQr'r'r+�preparedzszStreamResponse.prepared�asyncio.Task[None] | NonecCs|jr|jjSdSrS)rB�taskrTr'r'r+rW~szStreamResponse.taskcC�|jSrS)�_statusrTr'r'r+rI��zStreamResponse.statuscCrXrS)r>rTr'r'r+�chunked�rZzStreamResponse.chunkedcCrXrS)r?rTr'r'r+�compression�rZzStreamResponse.compressioncCrXrS)�_reasonrTr'r'r+rJ�rZzStreamResponse.reasoncCs|jrJd��|�||�dS)NzGCannot change the response status code after the headers have been sent)rUrP�rQrIrJr'r'r+�
set_status�s
��zStreamResponse.set_statuscCsDt|�|_|durt�|jd�}nd|vsd|vrtd��||_dS)N��
�
zReason cannot contain \r or \n)�intrY�REASON_PHRASES�get�
ValueErrorr]r^r'r'r+rP�s

zStreamResponse._set_statuscCrXrS�r=rTr'r'r+�
keep_alive�rZzStreamResponse.keep_alivecCs
d|_dS)NFrgrTr'r'r+�force_close��
zStreamResponse.force_closecCrXrS)�_body_lengthrTr'r'r+�body_length�rZzStreamResponse.body_lengthcCst�dt�|jsJ�|jjS)Nzoutput_length is deprecated)�warnings�warn�DeprecationWarningrCZbuffer_sizerTr'r'r+�
output_length�s
zStreamResponse.output_length�
chunk_sizecCs2tj|jvr
td��|durt�dt�d|_dS)z,Enables automatic chunked transfer encoding.z>You can't enable chunked encoding when a content length is setNzChunk size is deprecated #1615T)r�CONTENT_LENGTHrO�RuntimeErrorrmrnror>)rQrqr'r'r+�enable_chunked_encoding�s�
z&StreamResponse.enable_chunked_encoding�force�strategycCsXt|t�r|r
tjntj}t�dt�n
|dur!t|t�s!Jd��d|_||_	||_
dS)z&Enables response compression encoding.z+Using boolean for force is deprecated #3318Nz1force should one of None, bool or ContentEncodingT)�
isinstance�boolr-r4r6rmrnror?rAr@)rQrurvr'r'r+�enable_compression�s
���
z!StreamResponse.enable_compression�CIMultiDict[str]cCrXrS)rOrTr'r'r+rK�rZzStreamResponse.headerscCs|jdur	t�|_|jSrS)rFrrTr'r'r+�cookies�s
zStreamResponse.cookies�/)	�expires�domain�max_age�path�secure�httponly�version�samesite�partitioned�namer(r}r~rr�r�r�r�r�r�c	
Cs�|jdur	t�|_||j|<|j|}|dur||d<n
|�d�dkr&|d=|dur.||d<|dur9t|�|d<nd|vr@|d=||d<|durL||d<|durT||d<|	dur\|	|d	<|
durd|
|d
<|durn||d<dSdS)z�Set or update response cookie.

        Sets new cookie or updates existent with new value.
        Also updates only those params which are not None.
        Nr}�Thu, 01 Jan 1970 00:00:00 GMTr~zmax-ager�r�r�r�r�r�)rFrre�str)
rQr�r(r}r~rr�r�r�r�r�r��cr'r'r+�
set_cookie�s4



�zStreamResponse.set_cookie)r~r�r�r�r�cCs8|jdur|j�|d�|j|ddd|||||d�	dS)zBDelete cookie.

        Creates new empty expired cookie.
        Nr`rr�)rr}r~r�r�r�r�)rF�popr�)rQr�r~r�r�r�r�r'r'r+�
del_cookies

�zStreamResponse.del_cookiec�t�jSrS)�super�content_lengthrT��	__class__r'r+r�3�zStreamResponse.content_lengthcCsF|durt|�}|jrtd��t|�|jtj<dS|j�tjd�dS)Nz<You can't set content length when chunked encoding is enable)rcr>rsr�rOrrrr��rQr(r'r'r+r�8s�cr�rS)r��content_typerTr�r'r+r�Dr�zStreamResponse.content_typecCs|jt|�|_|��dSrS)r�r��
_content_type�_generate_content_type_headerr�r'r'r+r�Is
cr�rS)r��charsetrTr�r'r+r�Or�zStreamResponse.charsetcCsZ|j}|dkrtd��|jdusJ�|dur|j�dd�n	t|���|jd<|��dS)N�application/octet-streamzYSetting charset for application/octet-stream doesn't make sense, setup content_type firstr�)r�rs�
_content_dictr�r��lowerr�)rQr(�ctyper'r'r+r�Ts�cCst|j�tj��S)zuThe value of Last-Modified HTTP header, or None.

        This header is represented as a `datetime` object.
        )rrOrer�
LAST_MODIFIEDrTr'r'r+�
last_modifiedcszStreamResponse.last_modifiedcCs�|dur|j�tjd�dSt|ttf�r't�dt�	t
�|���|jtj<dSt|tj�r;t�d|�
��|jtj<dSt|t�rH||jtj<dSdt|�j��}t|��)Nz%a, %d %b %Y %H:%M:%S GMTz$Unsupported type for last_modified: )rOr�rr�rwrc�float�time�strftime�gmtime�math�ceil�datetime�utctimetupler��typer7�	TypeError)rQr(�msgr'r'r+r�ks��
cCsZ|j�tj�}|sdS|tkrttd�St�|�}|sdS|�dd�\}}tt	|�|d�S)Nr:r�)�is_weakr()
rOrer�ETAGrrr�	fullmatch�grouprx)rQZquoted_value�matchr�r(r'r'r+�etags

�zStreamResponse.etagcCs�|dur|j�tjd�dSt|t�r|tks!t|t�r)|jtkr)t|jtj<dSt|t�r>t	|�d|�d�|jtj<dSt|t�rgt|jt�rgt	|j�|j
rXd|j�d�nd|j�d�}||jtj<dStdt|��d���)N�"zW/"zUnsupported etag type: z . etag must be str, ETag or None)
rOr�rr�rwr�rrr(rr�rfr�)rQr(Z	hdr_valuer'r'r+r��s"�


"��CONTENT_TYPEcCs^|jdusJ�|jdusJ�d�dd�|j��D��}|r%|jd|}n|j}||j|<dS)Nz; css"�|]\}}|�d|��VqdS)�=Nr')r*�k�vr'r'r+�	<genexpr>�s� z?StreamResponse._generate_content_type_header.<locals>.<genexpr>)r�r��join�itemsrO)rQr��paramsr�r'r'r+r��sz,StreamResponse._generate_content_type_headerr;c�sR�|tjurdS|jdusJ�|j|jtj<|j�|j|j�|j�	tj
d�dSrS)r-r6rCr(rOr�CONTENT_ENCODINGryr@Zpopallrr)rQr;r'r'r+�_do_start_compression�s�
�z$StreamResponse._do_start_compression�requestc�sf�|jr|�|j�IdHdS|j�tjd���}t��D]\}}||vr0|�|�IdHdSqdS)Nr`)	rAr�rKrerZACCEPT_ENCODINGr��CONTENT_CODINGSr�)rQr�Zaccept_encodingr(r;r'r'r+�_start_compression�s���z!StreamResponse._start_compressionc�s<�|jrdS|jdur|jSt|j|j�|_|�|�IdHSrS)rDrCr�methodrIrE�_start)rQr�r'r'r+�prepare�s�
zStreamResponse.preparec�sD�||_|j}|_|��IdH|�|�IdH|��IdH|SrS)rBrC�_prepare_headersZ
_prepare_hook�_write_headers)rQr��writerr'r'r+r��s�zStreamResponse._startc�s��|j}|dus
J�|j}|dusJ�|j}|dur|j}||_|j}|j}|jrB|j��D]}|jdd�dd�}|�	t
j|�q.|jrM|�
|�IdH|jro|tkrbtd|jj�d|jj����|jsn|��d|t
j<n"|jr�|j|_|jdur�|tkr�|js�|��d|t
j<n|js�d}|jr�t
j|vr�t|j|j�r�|t
j=t
j|vr�|t
j=n|jr�|jn|jdkr�|�t
jd	�|�t
jt ��|�t
j!t"�t
j#|vr�|r�|t$kr�d
|t
j#<dSdS|tkr�d|t
j#<dSdSdS)Nr`)�headerrz-Using chunked encoding is forbidden for HTTP/�.r[Frr�z
keep-alive�close)%rBrCr=rhr�rOrF�values�output�addrZ
SET_COOKIEr?r�r>r"rs�major�minorrEZenable_chunkingZTRANSFER_ENCODING�
_length_checkr��lengthrrrr�rI�
setdefaultr�ZDATErZSERVERr Z
CONNECTIONr!)rQr�r�rhr�rKZcookier(r'r'r+r��sz����
�

��
�
��zStreamResponse._prepare_headersc�s~�|j}|dus
J�|j}|dusJ�|j}d|d�d|d�d|j�d|j��}|�||j�IdH|jr=|��dSdS)NzHTTP/rr�r� )	rBrCr�rYr]Z
write_headersrO�_send_headers_immediatelyZsend_headers)rQr�r�r�Zstatus_liner'r'r+r�s�(�zStreamResponse._write_headers�datac�sX�t|tttf�sJdt|���|jrtd��|jdur!td��|j�|�IdHdS)N�#data argument must be byte-ish (%r)z%Cannot call write() after write_eof()z$Cannot call write() before prepare())	rw�bytes�	bytearray�
memoryviewr�rDrsrC�write�rQr�r'r'r+r�(s�
�
�
zStreamResponse.writec�sF�|jrJd��|jdusJd��tjdtdd�|j��IdHdS)NzEOF has already been sent�Response has not been startedz2drain method is deprecated, use await resp.write()r�)�
stacklevel)rDrCrmrnro�drainrTr'r'r+r�4s��zStreamResponse.drain�c�sp�t|tttf�sJdt|���|jrdS|jdusJd��|j�|�IdHd|_d|_|jj	|_
d|_dS)Nr�r�T)rwr�r�r�r�rDrC�	write_eofrBZoutput_sizerkr�r'r'r+r�>s�
�
�

zStreamResponse.write_eofcCs\|jrd}n|jr|jdusJ�|jj�d|jj�d�}nd}d|jj�d|j�d|�d�S)N�eofr�znot prepared�<�>)rDrUrBr�r�r�r7rJ)rQ�infor'r'r+�__repr__NszStreamResponse.__repr__�keycC�dSrSr'�rQr�r'r'r+�__getitem__X�zStreamResponse.__getitem__cCr�rSr'r�r'r'r+r�[r�cCs
|j|SrS�rNr�r'r'r+r�^rjcCr�rSr'�rQr�r(r'r'r+�__setitem__ar�zStreamResponse.__setitem__cCr�rSr'r�r'r'r+r�dr�cCsJt|t�s|tjvrddlm}tj�|�tjd|dd�||j	|<dS)Nr)�NotAppKeyWarningz�It is recommended to use web.ResponseKey instances for keys.
https://docs.aiohttp.org/en/stable/web_advanced.html#response-s-storager�)�categoryr�)
rwrr.rGZweb_exceptionsr�r�rmrnrN)rQr�r(r�r'r'r+r�gs�
�cCs|j|=dSrSr�r�r'r'r+�__delitem__y�zStreamResponse.__delitem__cC�
t|j�SrS)�lenrNrTr'r'r+�__len__|rjzStreamResponse.__len__cCr�rS)�iterrNrTr'r'r+�__iter__rjzStreamResponse.__iter__cCstt|��SrS)�hash�idrTr'r'r+�__hash__�r�zStreamResponse.__hash__�othercCs||uSrSr')rQr�r'r'r+�__eq__�szStreamResponse.__eq__cCsdS)NTr'rTr'r'r+�__bool__�r�zStreamResponse.__bool__)rMrVrS)rMN)NN)rMrz)r�r2rMN�r�)[r7r8r9r�r�r#�__annotations__r�r<r=rxr>r?r@rcrAr-rBr	rCrrDrErkrFrr��setrGr�r&r
rR�propertyrUrWrIr[r\rJr_rPrhrirlrprtryrKr{r�r�r��setterr�r�r�r�r�rr�rr�rr�r�r�r�r�r�r�r�r�r�r�r�rrr3r�rr�r�r�rr�r��objectr�r��
__classcell__r'r'r�r+r.Msp
����
�
����
�

�
��
�
�����
��	�
���
�
�9�������	
�����
�



A


r.csdeZdZUdZedBed<dZdddddddedd�	dede	de
dBd	e
dBd
edBde
dBde
dBd
e	dedBddf�fdd�Z
edeeBeBdBfdd��Zejdeddfdd��Zede
dBfdd��Zejd	e
ddfdd��Zede	dBfdd��Zejde	dBddfdd��Zd'deddf�fdd�
Zd d!def�fd"d#�Zd$eddf�fd%d&�Z�ZS)(r/N�_compressed_bodyFrH)	�bodyrIrJ�textrKr�r��zlib_executor_size�
zlib_executorrrIrJrrKr�r�rrrMc	sB|dur|durtd��|durt�}
nt|�}
|dur$d|vr$td��|dur`tj|
vr6|s1|r5td��nOt|t�sCtdt|���|durId}|durOd}|d||
tj<|�|�}d}n%tj|
vrr|dusm|durqtd��n|dur�|dur�|d|7}||
tj<t	�j
|||
d	�|dur�||_n||_||_
|	|_dS)
Nz&body and text are not allowed togetherr�z,charset must not be in content_type argumentzPpassing both Content-Type header and content_type or charset params is forbidden�text argument must be str (%r)�
text/plain�utf-8z
; charset=)rIrJrL)rfr
rr�rwr�r�r��encoder�rRrr�_zlib_executor_size�_zlib_executor)rQrrIrJrrKr�r�rrZreal_headersr�r'r+rR�sN

��


��

zResponse.__init__cCrXrS)r<rTr'r'r+r�rZz
Response.bodycCs�|durd|_nJt|ttf�r||_n?ztj�|�|_}Wntjy.tdt	|���w|j
}tj|vr=|j
|tj<|jrR|j��D]\}}||vrQ|||<qEd|_dS)NzUnsupported body type %r)r<rwr�r�rZPAYLOAD_REGISTRYre�LookupErrorrfr�rOrr�r�rKr�r)rQrrKr�r(r'r'r+r�s$�
�
cCs |jdurdS|j�|jpd�S)Nr)r<�decoder�rTr'r'r+r�s
z
Response.textcCsZ|dust|t�sJdt|���|jdkrd|_|jdur!d|_|�|j�|_d|_dS)Nrr�rr)rwr�r�r�r�rr<r)rQrr'r'r+r�s
�
�


cCsb|jrdStj|jvrt|jtj�S|jdurt|j�St|jt	�r%dS|jdur/t|j�SdS)Nr)
r>rrrrOrcrr�rwr<r#rTr'r'r+r�s



zResponse.content_lengthr(cCstd��)Nz#Content length is set automatically)rsr�r'r'r+r�sr�r�c�s��|jrdS|jdur|j}n|j}|rJd|����|jdus"J�|jdus)J�|dus0|jr:t���IdHdSt|jt	�rhz|j�
|j�IdHW|j��IdHn	|j��IdHwt���IdHdSt��tt
|��IdHdS)Nzdata arg is not supported, got )rDrr<rBrCrEr�r�rwr#r�r�rr�)rQr�rr�r'r+r�s"�
$zResponse.write_eofr�r2c�s��tj|jvrt|j|j�r|jtj=n;|jsOt|jt	�r.|jj
}dur-t|�|jtj<n!|jr6t|j�nd}|dksG|jdkrO|jtj
vrOt|�|jtj<t��|�IdHS)N�0i0)rrrrOrr�rIr>rwr<r#�sizer�r�Z
METH_HEAD_ALLr�r�)rQr�rZbody_lenr�r'r+r�3s�
��zResponse._startr;c�s��|js
t|jt�rt��|�IdHS|tjurdSt|j	|j
|jd�}|jdus+J�|�|j�IdH|�
�|_|j	|jtj<tt|j��|jtj<dS)N)�encodingZmax_sync_chunk_size�executor)r>rwr<r#r�r�r-r6rr(r	r
�compress�flushrrOrr�r�r�rr)rQr;Z
compressorr�r'r+r�Es�
��zResponse._do_start_compressionr�)r7r8r9rr�r�r�rrrcr�r&rrRr�r�r#rr�rr�r�rr�r-r�r�r'r'r�r+r/�s`
�������	�
���A
r/rHzapplication/json)rrrIrJrKr��dumpsr�rrrIrJrKr�rrMcCs4|tur|s|rtd��||�}t||||||d�S)Nz3only one of data, text, or body should be specified)rrrIrJrKr��rrfr/)r�rrrIrJrKr�rr'r'r+r0Ys�r0�rrIrJrKr�cCs2|tur|durtd��||�}t|||||d�S)z�Create a JSON response using a bytes-returning encoder.

    Use this when your JSON encoder (like orjson) returns bytes
    instead of str, avoiding the encode/decode overhead.
    Nz,only one of data or body should be specifiedrr)r�rrrIrJrKr�r'r'r+r1ss�r1)HZasyncio�collections.abc�collectionsr��enum�jsonr�r�rmrr�concurrent.futuresr�httprZhttp.cookiesr�typingrrr	r
rrZ	multidictr
rr`rr�abcrZcompression_utilsrrZhelpersrrrrrrrrrrrr r!r"r#Ztypedefsr$r%r&rd�__all__Zweb_requestr2r�Z	BaseClassr3�Enumr-r�r.r/rr�rcr0r1r'r'r'r+�<module>s� 4
	
"CO���������	�

����������	�