HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/aiohttp/__pycache__/client_proto.cpython-310.pyc
o

���g'�@s�ddlZddlmZddlmZmZmZddlmZddl	m
Z
mZmZm
Z
ddlmZmZmZmZddlmZmZdd	lmZdd
lmZmZmZGdd�deeeeef�ZdS)
�N)�suppress)�Any�Optional�Tuple�)�BaseProtocol)�
ClientOSError�ClientPayloadError�ServerDisconnectedError�SocketTimeoutError)�
_EXC_SENTINEL�EMPTY_BODY_STATUS_CODES�BaseTimerContext�
set_exception)�HttpResponseParser�RawResponseMessage)�HttpProcessingError)�
EMPTY_PAYLOAD�	DataQueue�StreamReadercs�eZdZdZdejddfdd�Zedefdd��Z	edefd	d
��Z
d@dd�Zd@d
d�Zdefdd�Z
deeddf�fdd�Zd@dd�Zd@�fdd�Zd@�fdd�Zefdededdf�fdd�
Zdededdfdd �Zdd!d!d"dd#d$d%d%d&�	d'eed(ed)ed*ed+eed,ed-ed.ed/eddfd0d1�Zd@d2d3�Zd@d4d5�Zd@d6d7�Zedeefd8d9��Zej d+eeddfd:d9��Zd@d;d<�Z!d=e"ddfd>d?�Z#�Z$S)A�ResponseHandlerz8Helper class to adapt between Protocol and StreamReader.�loop�returnNcCs`tj||d�t�||�d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_d|_
dS)N)rF��)r�__init__r�
_should_close�_payload�
_skip_payload�_payload_parser�_timer�_tail�	_upgraded�_parser�
_read_timeout�_read_timeout_handle�_timeout_ceil_threshold)�selfr�r(�?/usr/local/lib/python3.10/dist-packages/aiohttp/client_proto.pyrs
zResponseHandler.__init__cC�|jS�N)r"�r'r(r(r)�upgraded/�zResponseHandler.upgradedcCsFt|jp!|jduo|j��p!|jp!|jdup!|jdup!|jp!|j�Sr+)	�boolrr�is_eofr"�
_exceptionr�_bufferr!r,r(r(r)�should_close3s������zResponseHandler.should_closecCs
d|_dS�NT)rr,r(r(r)�force_close?s
zResponseHandler.force_closecCs2|j}|dur|��d|_d|_|��dSdSr+)�	transport�closer�
_drop_timeout)r'r6r(r(r)r7Bs�zResponseHandler.closecCs|jduo
|j��Sr+)r6�
is_closingr,r(r(r)�is_connectedJszResponseHandler.is_connected�excc	
sT|��|}|}|du}|jdur*tt��
|j��Wd�n1s%wYd}|jdurgz|j��}Wn.tyf}z"|jdur\d|��}|sS|�d|��}t|jt|�|�WYd}~nd}~ww|�	�s�t
|t�rut|j
�}|r{t|�}|rtn|}|dus�J�|dus�J�|�||�d|_d|_d|_d|_d|_t��|�dS)Nz#Response payload is not completed: z. TF)r8rr�	Exception�feed_eofr#rrr	r0�
isinstance�OSErrorr�argsr
rr�_reading_paused�super�connection_lost)	r'r;�original_connection_error�reraised_exc�connection_closed_cleanly�uncompleted�underlying_exc�client_payload_exc_msg�underlying_non_eof_exc��	__class__r(r)rCMs\

�

������

��zResponseHandler.connection_lostcC�|��dSr+)r8r,r(r(r)�eof_received�szResponseHandler.eof_receivedc�t���|��dSr+)rB�
pause_readingr8r,rKr(r)rP��
zResponseHandler.pause_readingcrOr+)rB�resume_reading�_reschedule_timeoutr,rKr(r)rR�rQzResponseHandler.resume_reading�	exc_causecs d|_|��t��||�dSr4)rr8rBr)r'r;rTrKr(r)r�szResponseHandler.set_exception�parser�payloadcCs:||_||_|��|jr|jd}|_|�|�dSdS)Nr)rrr8r!�
data_received)r'rUrV�datar(r(r)�
set_parser�s�zResponseHandler.set_parserFTiri�)	�timer�skip_payload�read_until_eof�auto_decompress�read_timeout�read_bufsize�timeout_ceil_threshold�
max_line_size�max_field_sizerZr[r\r]r^r_r`rarbc	CsZ||_||_||_t||j||t|||||	d�
|_|jr+|jd}
|_|�|
�dSdS)N)rZ�payload_exception�response_with_bodyr\r]rarbr)	rr$r&r�_loopr	r#r!rW)r'rZr[r\r]r^r_r`rarbrXr(r(r)�set_response_params�s&
�
�z#ResponseHandler.set_response_paramscCs"|jdur|j��d|_dSdSr+)r%�cancelr,r(r(r)r8�s


�zResponseHandler._drop_timeoutcCs>|j}|jdur
|j��|r|j�||j�|_dSd|_dSr+)r$r%rgre�
call_later�_on_read_timeout)r'�timeoutr(r(r)rS�s


�
z#ResponseHandler._reschedule_timeoutcCrMr+)rSr,r(r(r)�
start_timeout�szResponseHandler.start_timeoutcCr*r+�r$r,r(r(r)r^�r.zResponseHandler.read_timeoutcCs
||_dSr+rl)r'r^r(r(r)r^�s
cCs0td�}|�|�|jdurt|j|�dSdS)Nz#Timeout on reading data from socket)rrr)r'r;r(r(r)ri�s


�z ResponseHandler._on_read_timeoutrXc

Cs�|��|sdS|jdur&|j�|�\}}|r$d|_d|_|r$|�|�dS|js.|jdur7|j|7_dSz|j�|�\}}}Wn6tyx}z*|j	durT|j	�
�t|t�rdt|j
|j|jd�}nt�}|�||�WYd}~dSd}~ww||_d}|D]&\}	}|	jr�d|_||_|js�|	j
tvr�|�|	tfd�q�|�|	|fd�q�|dur�|tur�|�|j�n|��|r�|r�|�|�dSdSdS)N)�code�message�headersTr)rSr�	feed_datarrWr"r#r!�
BaseExceptionr6r7r>rrmrnrorr3rrr
r�on_eofr8)
r'rX�eof�tail�messagesr-rHr;rVrnr(r(r)rW�s\




����zResponseHandler.data_received)rN)%�__name__�
__module__�__qualname__�__doc__�asyncio�AbstractEventLoopr�propertyr/r-r3r5r7r:rrqrCrNrPrRrrrrYr�float�intrfr8rSrkr^�setterri�bytesrW�
__classcell__r(r(rKr)rs|


8����	�������	�
��
�
$


r)rz�
contextlibr�typingrrr�
base_protocolr�client_exceptionsrr	r
r�helpersrr
rr�httprr�http_exceptionsr�streamsrrrrr(r(r(r)�<module>s"