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__/streams.cpython-310.pyc
o

;j?^�@s$UddlZddlZddlZddlZddlmZmZddlmZm	Z	m
Z
ddlmZddl
mZmZmZmZmZmZddlmZddlmZd	Ze
d
�ZGdd�de�ZGd
d�de	e�ZGdd�d�ZGdd�d�ZGdd�de�Ze�Z eee!d<Gdd�de	e�Z"Gdd�de"e�Z#dS)�N)�	Awaitable�Callable)�Final�Generic�TypeVar�)�BaseProtocol)�
_EXC_SENTINEL�DEFAULT_CHUNK_SIZE�BaseTimerContext�	TimerNoop�
set_exception�
set_result)�LineTooLong)�internal_logger)�
EMPTY_PAYLOAD�	EofStream�StreamReader�	DataQueue�_Tc@seZdZdZdS)rzeof stream indication.N)�__name__�
__module__�__qualname__�__doc__�rr�C/opt/saltstack/salt/lib/python3.10/site-packages/aiohttp/streams.pyrsrc@sFeZdZdZdegeefddfdd�Zddd	�Zdefd
d�Z	dS)
�AsyncStreamIterator��	read_funcr�returnNcC�
||_dS�Nr)�selfrrrr�__init__&�
zAsyncStreamIterator.__init__�AsyncStreamIterator[_T]cC�|Sr!r�r"rrr�	__aiter__)�zAsyncStreamIterator.__aiter__c�s8�z	|��IdH}Wn	tyt�w|dkrt�|S�N�)rr�StopAsyncIteration�r"�rvrrr�	__anext__,s��zAsyncStreamIterator.__anext__)rr%)
rrr�	__slots__rrrr#r(r/rrrrr"s

rc@s:eZdZdZddd�Zd
dd	�Zdeeeffd
d�Z	dS)�ChunkTupleAsyncStreamIterator��_stream�streamrrNcCr r!r2)r"r4rrrr#:r$z&ChunkTupleAsyncStreamIterator.__init__cCr&r!rr'rrrr(=r)z'ChunkTupleAsyncStreamIterator.__aiter__c�s"�|j��IdH}|dkrt�|S)N�r+F)r3�	readchunkr,r-rrrr/@s
�z'ChunkTupleAsyncStreamIterator.__anext__)r4rrN)rr1)
rrrr0r#r(�tuple�bytes�boolr/rrrrr16s


r1c@s\eZdZdZdZddd�dedededBdej	dBd	df
d
d�Z
d	efdd
�Zd	e
efdd�Zded	e
efdd�Zd	e
efdd�Zd	efdd�Zd	eeeffdd�Zded	dfdd�Zd	edBfdd�Zefdeded	dfdd �Zd!egdfd	dfd"d#�ZdUd$d%�Zd	efd&d'�Zd	efd(d)�Z dUd*d+�Z!e"d	efd,d-��Z#d.ed	dfd/d0�Z$dVd.ed2ed	efd3d4�Z%dUd5d6�Z&dUd7d8�Z'd9ed	dfd:d;�Z(dd<�d=edBd	efd>d?�Z)	@dWddA�dBedCedBd	efdDdE�Z*dXded	efdGdH�Z+d	efdIdJ�Z,d	eeeffdKdL�Z-ded	efdMdN�Z.dXded	efdOdP�Z/ded	efdQdR�Z0ded	efdSdT�Z1dS)Yra*An enhancement of asyncio.StreamReader.

    Supports asynchronous iteration by line, chunk or as available::

        async for line in reader:
            ...
        async for chunk in reader.iter_chunked(1024):
            ...
        async for slice in reader.iter_any():
            ...

    )�	_protocol�
_low_water�_high_water�_low_water_chunks�_high_water_chunks�_loop�_size�_cursor�_http_chunk_splits�_buffer�_buffer_offset�_eof�_waiter�_eof_waiter�
_exception�_timer�_eof_callbacks�_eof_counter�total_bytes�total_compressed_bytesN)�timer�loop�protocol�limitrNrOrcCs�||_||_|d|_|durt��}td|d�|_|jd|_||_d|_	d|_
d|_t�
�|_d|_d|_d|_d|_d|_|durHt�n||_g|_d|_d|_d|_dS)N���rF)r:r;r<�asyncioZget_event_loop�maxr>r=r?r@rArB�collections�dequerCrDrErFrGrHrrIrJrKrLrM)r"rPrQrNrOrrrr#ls,


zStreamReader.__init__cCs�|jjg}|jr|�d|j�|jr|�d�|jtkr(|�d|j|jf�|jr3|�d|j�|j	r>|�d|j	�dd�
|�S)Nz%d bytes�eofzlow=%d high=%dzw=%rze=%r�<%s>� )�	__class__rr@�appendrEr;r
r<rFrH�join)r"�inforrr�__repr__�s


zStreamReader.__repr__cC�
t|j�Sr!)r�readliner'rrrr(�r$zStreamReader.__aiter__�ncs����t��fdd��S)z>Returns an asynchronous iterator that yields chunks of size n.cs
����Sr!)�readr�rcr"rr�<lambda>�s
z+StreamReader.iter_chunked.<locals>.<lambda>)�set_read_chunk_sizer�r"rcrrer�iter_chunked�s
zStreamReader.iter_chunkedcCra)z3Yield all available data as soon as it is received.)r�readanyr'rrr�iter_any�s
zStreamReader.iter_anycCst|�S)z�Yield chunks of data as they are received by the server.

        The yielded objects are tuples
        of (bytes, bool) as returned by the StreamReader.readchunk method.
        )r1r'rrr�iter_chunks�szStreamReader.iter_chunkscCs|j|jfSr!�r;r<r'rrr�get_read_buffer_limits��z#StreamReader.get_read_buffer_limitscCs"||jkr||_|d|_dSdS)z7Raise buffer limits to match the consumer's chunk size.rRNrmrhrrrrg�s
�z StreamReader.set_read_chunk_sizecC�|jSr!�rHr'rrr�	exception��zStreamReader.exception�exc�	exc_causecCsX||_|j��|j}|durd|_t|||�|j}|dur*d|_t|||�dSdSr!)rHrJ�clearrFr
rG�r"rtru�waiterrrrr
�s
�zStreamReader.set_exception�callbackcCsB|jrz|�WdStyt�d�YdSw|j�|�dS�N�Exception in eof callback)rE�	ExceptionrrrrJr]�r"ryrrr�on_eof�s�zStreamReader.on_eofc	Cs�d|_|j}|durd|_t|d�|j}|dur!d|_t|d�|jjdd�|jD]}z|�Wq+ty@t�	d�Yq+w|j�
�dS)NTF)Z
resume_parserr{)rErFrrGr:�resume_readingrJr|rrrrv)r"rx�cbrrr�feed_eof�s"



�zStreamReader.feed_eofcCrp)z&Return True if  'feed_eof' was called.�rEr'rrr�is_eof�szStreamReader.is_eofcC�|jo|jS)z=Return True if the buffer is empty and 'feed_eof' was called.�rErCr'rrr�at_eof�szStreamReader.at_eofc�sH�|jrdS|jdus
J�|j��|_z|jIdHWd|_dSd|_wr!)rErGr?�
create_futurer'rrr�wait_eof�s�zStreamReader.wait_eofcCs|jdur|jS|jSr!)rMrLr'rrr�total_raw_bytess
zStreamReader.total_raw_bytes�datacCsxtjdtdd�|sdS|jr|jd|jd�|jd<d|_|jt|�7_|jt|�8_|j�|�d|_	dS)zDrollback reading some data from stream, inserting it to buffer head.zJunread_data() is deprecated and will be removed in future releases (#3260)rR)�
stacklevelNr)
�warnings�warn�DeprecationWarningrDrCr@�lenrA�
appendleftrK)r"r�rrr�unread_datas�
zStreamReader.unread_datar�sizecCs~|jrJd��|sdSt|�}|j|7_|j�|�|j|7_|j}|dur2d|_t|d�|j|jkr=|j	�
�dS)Nzfeed_data after feed_eofF)rEr�r@rCr]rLrFrr<r:�
pause_reading)r"r�r��data_lenrxrrr�	feed_datas

zStreamReader.feed_datacCs*|jdur|jrtd��t��|_dSdS)Nz@Called begin_http_chunk_receiving when some data was already fed)rBrL�RuntimeErrorrWrXr'rrr�begin_http_chunk_receiving0s
��z'StreamReader.begin_http_chunk_receivingcCs�|jdur	td��|jr|jdnd}|j|krdS|j�|j�t|j�|jkr.|j��|j}|dur?d|_t	|d�dSdS)NzFCalled end_chunk_receiving without calling begin_chunk_receiving first���r)
rBr�rLr]r�r>r:r�rFr)r"�posrxrrr�end_http_chunk_receiving8s
�


�z%StreamReader.end_http_chunk_receiving�	func_namec�s��|jjs	td��|jdurtd|��|j��}|_z$|j�
|IdHWd�n1s0wYWd|_dSWd|_dSd|_w)NzConnection closed.zH%s() called while another coroutine is already waiting for incoming data)r:�	connectedr�rFr?r�rI)r"r�rxrrr�_wait\s"�
���
�zStreamReader._wait��max_line_lengthr�c�s�|j|d�IdHS)N��max_size)�	readuntil�r"r�rrrrbqs�zStreamReader.readline�
r��	separatorr�c
�s��t|�}|dkr
td��|jdur|j�d}d}d}|p|j}|rx|jrf|rf|j}|jd�||�d}|�|rA|||dnd�}	||	7}|t|	�7}|rRd}||krat|dd�d	|��|jrf|s'|j	rl	|S|rv|�
d
�IdH|s"|S)Nrz,Separator should be at least one-byte stringr+Trr�F�ds...r�)r��
ValueErrorrHr<rCrD�find�_read_nowait_chunkrrEr�)
r"r�r�Zseplen�chunkZ
chunk_sizeZ
not_enough�offsetZicharr�rrrr�ts>�


�
���zStreamReader.readuntilr�c�s��|jdur	|j�	|jr%|js%t|dd�d|_|jdkr%tjddd�|s)dS|dkrK|�tj	�g}	|�
�IdH}|s@n|�|�q6d�|�S|�|�|jsd|jsd|�
d	�IdH|jsd|jrV|�|�S)
NTrKrr�zEMultiple access to StreamReader in eof state, might be infinite loop.)�
stack_infor+rd)rHrErC�getattrrKr�warningrg�sys�maxsizerjr]r^r��_read_nowait)r"rc�blocks�blockrrrrd�s8�

�
�

�
zStreamReader.readc�sD�|jdur	|j�|js|js|�d�IdH|js|jr|�d�S)Nrjr�)rHrCrEr�r�r'rrrrj�s�
�
zStreamReader.readanyc�s��	|jdur
|j�|jr0|j��}||jkrdS||jkr(|�||j�dfSt�d�|js
|jr:|�d�dfS|j	r?dS|�
d�IdHq)	aReturns a tuple of (data, end_of_http_chunk).

        When chunked transfer
        encoding is used, end_of_http_chunk is a boolean indicating if the end
        of the data corresponds to the end of a HTTP chunk , otherwise it is
        always False.
        TN�r+TzESkipping HTTP chunk end due to data consumption beyond chunk boundaryr�Fr5r6)rHrB�popleftrAr�rr�rCr�rEr�)r"r�rrrr6�s(�



���zStreamReader.readchunkc�sx�|jdur	|j�g}|dkr7|�|�IdH}|s(d�|�}t�|t|�|��|�|�|t|�8}|dksd�|�S)Nrr+)rHrdr^rU�IncompleteReadErrorr�r])r"rcr�r��partialrrr�readexactly�s�


�
zStreamReader.readexactlycCs2|jdur|j�|jr|j��std��|�|�S)Nz9Called while some coroutine is waiting for incoming data.)rHrFZdoner�r�rhrrr�read_nowaits
�
zStreamReader.read_nowaitcCs�|jd}|j}|dkr$t|�||kr$||||�}|j|7_n|r5|j��||d�}d|_n|j��}t|�}|j|8_|j|7_|j}|re|d|jkre|��|re|d|jksX|j|jkr}|jdusxt|j�|jkr}|j	�
�|S)Nrr�)rCrDr�r�r@rArBr;r=r:r)r"rcZfirst_bufferr�r�r�Zchunk_splitsrrrr�s,


�

zStreamReader._read_nowait_chunkcs��j��|dkr%t�j�}|dkr��d�Sd��fdd�t|�D��Sg}�jrB��|�}|�|�|t|�8}|dkr?n�js*|rId�|�SdS)z6Read not more than n bytes, or whole buffer if n == -1r�rr+csg|]}��d��qS�r�)r�)�.0�_r'rr�
<listcomp>9sz-StreamReader._read_nowait.<locals>.<listcomp>r)rIZassert_timeoutr�rCr�r^�ranger])r"rc�count�chunksr�rr'rr�/s




�zStreamReader._read_nowait�rN�r)r�r�)2rrrrr0r�intrrU�AbstractEventLoopr#�strr`rr8r(rirkr1rlr7rnrg�
BaseExceptionrrr	r
rr~r�r9r�r�r��propertyr�r�r�r�r�r�rbr�rdrjr6r�r�r�r�rrrrrGs|
�����
�"���
�
	


$����
�')"rc@sBeZdZdZd/dd�Zdefdd�ZdedBfdd	�Ze	fd
ededdfdd
�Z
degdfddfdd�Zd/dd�Z
defdd�Zdefdd�Zd/dd�Zd0dededefdd�Zdeddfdd�Zdd �d!edBdefd"d#�Zd1dedefd%d&�Zdefd'd(�Zdeeeffd)d*�Zdedefd+d,�Zd1dedefd-d.�ZdS)2�EmptyStreamReader��_read_eof_chunkrNcCsd|_d|_dS)NFr)r�rLr'rrrr#Js
zEmptyStreamReader.__init__cCsd|jjS)NrZ)r\rr'rrrr`NrozEmptyStreamReader.__repr__cC�dSr!rr'rrrrrQr)zEmptyStreamReader.exceptionrtrucCr�r!r)r"rtrurrrr
TszEmptyStreamReader.set_exceptionrycCs,z|�WdStyt�d�YdSwrz)r|rrrr}rrrr~[s
�zEmptyStreamReader.on_eofcCr�r!rr'rrrr�ar)zEmptyStreamReader.feed_eofcC�dS�NTrr'rrrr�dr)zEmptyStreamReader.is_eofcCr�r�rr'rrrr�gr)zEmptyStreamReader.at_eofc�s�dSr!rr'rrrr�j��zEmptyStreamReader.wait_eofrr�rccCr��NFr)r"r�rcrrrr�mr)zEmptyStreamReader.feed_datacCr�r!rrhrrrrgpr)z%EmptyStreamReader.set_read_chunk_sizer�r�c���dSr*rr�rrrrbsr�zEmptyStreamReader.readliner�c�r�r*rrhrrrrdvr�zEmptyStreamReader.readc�r�r*rr'rrrrj{r�zEmptyStreamReader.readanyc�s�|js	d|_dSdS)NTr5r�r�r'rrrr6~s
�zEmptyStreamReader.readchunkc�s�t�d|��r*)rUr�rhrrrr��s�zEmptyStreamReader.readexactlycCr�r*rrhrrrr��r)zEmptyStreamReader.read_nowaitr�r�r�)rrrr0r#r�r`r�rrr	r
rr~r�r9r�r�r�r8r�r�rgrbrdrjr7r6r�r�rrrrr�Fs4
���
�

r�rc@s�eZdZdZdejddfdd�Zdefdd�Zde	fd	d
�Z
de	fdd�ZdedBfd
d�Z
efdededdfdd�Zddededdfdd�Zddd�Zdefdd�Zdeefdd�ZdS) rz>DataQueue is a general-purpose blocking queue with one reader.rOrNcCs&||_d|_d|_d|_t��|_dSr�)r?rErFrHrWrXrC)r"rOrrrr#�s
zDataQueue.__init__cCrar!)r�rCr'rrr�__len__�r$zDataQueue.__len__cCrpr!r�r'rrrr��rszDataQueue.is_eofcCr�r!r�r'rrrr��szDataQueue.at_eofcCrpr!rqr'rrrrr�rszDataQueue.exceptionrtrucCs4d|_||_|j}durd|_t|||�dSdSr�)rErHrFr
rwrrrr
�s�zDataQueue.set_exceptionrr�r�cCs6|j�||f�|j}durd|_t|d�dSdSr!)rCr]rFr)r"r�r�rxrrrr��s
�zDataQueue.feed_datacCs,d|_|j}durd|_t|d�dSdSr�)rErFr)r"rxrrrr��s
�zDataQueue.feed_eofc	�s��|js*|js*|jrJ�|j��|_z|jIdHWntjtjfy)d|_�w|jr6|j��\}}|S|j	dur>|j	�t
�r!)rCrErFr?r�rU�CancelledError�TimeoutErrorr�rHr)r"r�r�rrrrd�s �
�
zDataQueue.readcCrar!)rrdr'rrrr(�r$zDataQueue.__aiter__r�r�)rrrrrUr�r#r�r�r9r�r�r�rrr	r
rr�r�rdrr(rrrrr�s&���
�
rcs^eZdZdZdededejddf�fdd�Zdd
e	deddf�fdd
�
Z
de	fdd�Z�ZS)�FlowControlDataQueuez�FlowControlDataQueue resumes and pauses an underlying stream.

    It is a destination for parsed data.

    This class is deprecated and will be removed in version 4.0.
    rPrQrOrNcs(t�j|d�d|_||_|d|_dS)N)rOrrR)�superr#r@r:�_limit)r"rPrQrO�r\rrr#�szFlowControlDataQueue.__init__rr�r�csFt��||�|j|7_|j|jkr|jjs!|j��dSdSdSr!)r�r�r@r�r:�_reading_pausedr��r"r�r�r�rrr��s
�zFlowControlDataQueue.feed_datac	�s��|js*|js*|jrJ�|j��|_z|jIdHWntjtjfy)d|_�w|jrL|j��\}}|j	|8_	|j	|j
krJ|jjrJ|j�
�|S|jdurT|j�t�r!)rCrErFr?r�rUr�r�r�r@r�r:r�rrHrr�rrrrd�s&�
�

zFlowControlDataQueue.readr�)
rrrrrr�rUr�r#rr�rd�
__classcell__rrr�rr��s����r�)$rUrWr�r��collections.abcrr�typingrrrZ
base_protocolrZhelpersr	r
rrr
rZhttp_exceptionsr�logr�__all__rr|rrr1rr�r�__annotations__rr�rrrr�<module>s0
 FA