
    bCi&              	           S SK r S SKJr  S SKJrJrJr  SSKJr  SSK	J
r
JrJrJr  SSKJrJrJrJr  SSKJrJr  SS	KJr  SS
KJrJrJr   " S S\\\\\4      5      rg)    N)suppress)AnyOptionalTuple   )BaseProtocol)ClientOSErrorClientPayloadErrorServerDisconnectedErrorServerTimeoutError)_EXC_SENTINELBaseTimerContextset_exceptionstatus_code_must_be_empty_body)HttpResponseParserRawResponseMessage)HttpProcessingError)EMPTY_PAYLOAD	DataQueueStreamReaderc                     ^  \ rS rSrSrS\R                  SS4S jr\S\	4S j5       r
\S\	4S j5       rS-S	 jrS-S
 jrS\	4S jrS\\   SS4U 4S jjrS-S jrS-U 4S jjrS-U 4S jjr\4S\S\SS4U 4S jjjrS\S\SS4S jrSSSSSSSSSS.	S\\   S\	S\	S\	S \\   S!\S"\S#\S$\SS4S% jjrS-S& jrS-S' jrS-S( jrS-S) jr S*\!SS4S+ jr"S,r#U =r$$ ).ResponseHandler   z8Helper class to adapt between Protocol and StreamReader.loopreturnNc                     [         R                  " XS9  [        R                  " X5        SU l        S U l        SU l        S U l        S U l        SU l        SU l	        S U l
        S U l        S U l        SU l        g )N)r   F       )r   __init__r   _should_close_payload_skip_payload_payload_parser_timer_tail	_upgraded_parser_read_timeout_read_timeout_handle_timeout_ceil_threshold)selfr   s     N/home/james-whalen/.local/lib/python3.13/site-packages/aiohttp/client_proto.pyr   ResponseHandler.__init__   sq    d.4&"04"#
59.2CG!89$r   c                     U R                   $ N)r&   r+   s    r,   upgradedResponseHandler.upgraded/   s    ~~r   c                 z   U R                   b  U R                   R                  5       (       a  U R                  (       a  gU R                  =(       dk    U R                  =(       dX    U R	                  5       S L=(       d?    U R
                  S L=(       d*    [        U 5      S:  =(       d    [        U R                  5      $ NTr   )	r!   is_eofr&   r    	exceptionr#   lenboolr%   r0   s    r,   should_closeResponseHandler.should_close3   s    ==$T]]-A-A-C-Ct~~   ~~ ~~t+  ##4/  4y1}	 
 DJJ	
r   c                     SU l         g NT)r    r0   s    r,   force_closeResponseHandler.force_closeA   s
    !r   c                     U R                   nUb/  UR                  5         S U l         S U l        U R                  5         g g r/   )	transportcloser!   _drop_timeout)r+   r@   s     r,   rA   ResponseHandler.closeD   s:    NN	 OO!DN DM 	 !r   c                 j    U R                   S L=(       a    U R                   R                  5       (       + $ r/   )r@   
is_closingr0   s    r,   is_connectedResponseHandler.is_connectedL   s&    ~~T)M$..2K2K2M.MMr   excc                 4  > U R                  5         UnUnUS L nU R                  b2  [        [        5         U R                  R	                  5         S S S 5        S nU R
                  b   U R
                  R	                  5       nU R                  5       (       dc  [        U[        5      (       a  [        UR                  6 nU(       a  [        U5      nU(       a  [        OUnUc   eUc   eU R                  X85        SU l        S U l        S U l        S U l        SU l        [$        T	U ]M  U5        g ! , (       d  f       N= f! [         aN  nU R                  b6  SU< 3nU(       d	  U< SU< 3n[        U R                  [        U5      U5         S nAGNS nAff = f)Nz#Response payload is not completed: z. TF)rB   r#   r   	Exceptionfeed_eofr'   r!   r   r
   r5   
isinstanceOSErrorr	   argsr   r   r    _reading_pausedsuperconnection_lost)
r+   rH   original_connection_errorreraised_excconnection_closed_cleanlyuncompletedunderlying_excclient_payload_exc_msgunderlying_non_eof_exc	__class__s
            r,   rQ   ResponseHandler.connection_lostO   s   $'!0$=$E!+)$$$--/ % <<#"ll335" {{}}3W==,.G.L.LM(6{C
 - . #
 *555+++|D!#$-[ %$  ==,=n=PQ + 5598<> / "*+AB&s$   D.)D? .
D<?
F	AFFc                 $    U R                  5         g r/   )rB   r0   s    r,   eof_receivedResponseHandler.eof_received   s    r   c                 B   > [         TU ]  5         U R                  5         g r/   )rP   pause_readingrB   r+   rY   s    r,   r_   ResponseHandler.pause_reading   s    r   c                 B   > [         TU ]  5         U R                  5         g r/   )rP   resume_reading_reschedule_timeoutr`   s    r,   rc   ResponseHandler.resume_reading   s       "r   	exc_causec                 R   > SU l         U R                  5         [        TU ]  X5        g r<   )r    rB   rP   r   )r+   rH   rf   rY   s      r,   r   ResponseHandler.set_exception   s&    
 "c-r   parserpayloadc                     X l         Xl        U R                  5         U R                  (       a%  U R                  Sso0l        U R	                  U5        g g )Nr   )r!   r#   rB   r%   data_received)r+   ri   rj   datas       r,   
set_parserResponseHandler.set_parser   sE      %::#zz3D*t$ r   FTi   r   i  )	timerskip_payloadread_until_eofauto_decompressread_timeoutread_bufsizetimeout_ceil_thresholdmax_line_sizemax_field_sizerp   rq   rr   rs   rt   ru   rv   rw   rx   c       	             X l         XPl        Xpl        [        U U R                  UU[
        U(       + UUUU	S9
U l        U R                  (       a%  U R                  Ssol        U R                  U
5        g g )N)rp   payload_exceptionresponse_with_bodyrr   rs   rw   rx   r   )	r"   r(   r*   r   _loopr
   r'   r%   rl   )r+   rp   rq   rr   rs   rt   ru   rv   rw   rx   rm   s              r,   set_response_params#ResponseHandler.set_response_params   ss     *)'=$)JJ0#//)+')
 ::#zz3D*t$ r   c                 b    U R                   b"  U R                   R                  5         S U l         g g r/   )r)   cancelr0   s    r,   rB   ResponseHandler._drop_timeout   s-    $$0%%,,.(,D% 1r   c                     U R                   nU R                  b  U R                  R                  5         U(       a+  U R                  R	                  XR
                  5      U l        g S U l        g r/   )r(   r)   r   r|   
call_later_on_read_timeout)r+   timeouts     r,   rd   #ResponseHandler._reschedule_timeout   sX    $$$$0%%,,.(,

(=(=..)D% )-D%r   c                 $    U R                  5         g r/   )rd   r0   s    r,   start_timeoutResponseHandler.start_timeout   s      "r   c                     [        S5      nU R                  U5        U R                  b  [        U R                  U5        g g )Nz#Timeout on reading data from socket)r   r   r!   )r+   rH   s     r,   r    ResponseHandler._on_read_timeout   s8     !FG3==$$--- %r   rm   c                 
   U R                  5         U(       d  g U R                  bK  U R                  R                  U5      u  p#U(       a&  S U l        S U l        U(       a  U R	                  U5        g U R
                  (       d  U R                  c  U =R                  U-  sl        g  U R                  R                  U5      u  pEnXPl        S nU H{  u  pUR                  (       a  SU l        Xpl        U R                  (       d  [!        UR"                  5      (       a  U R                  U[$        4S5        Mh  U R                  X4S5        M}     Ub5  U[$        La  UR'                  U R(                  5        OU R)                  5         U(       a   U(       a  U R	                  U5        g X0l        g g ! [         aK  nU R                  b  U R                  R                  5         U R                  [        5       U5         S nAg S nAff = fr4   )rd   r#   	feed_datar!   rl   r&   r'   r%   BaseExceptionr@   rA   r   r   r9   r    r"   r   coder   on_eofrB   )	r+   rm   eoftailmessagesr1   rV   rj   messages	            r,   rl   ResponseHandler.data_received   s     " +,,66t<IC $'+$&&t,~~!5

d"

/3||/E/Ed/K,H "*26(0$G++-1*$+M))-K. . '?C'91= )1 &
 m3t'9'9:**,**40%)
	 G % ~~1 ,,.&&':'<nMs   &F- -
H7AG==H)r'   r!   r#   r(   r)   rO   r    r"   r%   r*   r$   r&   r@   )r   N)%__name__
__module____qualname____firstlineno____doc__asyncioAbstractEventLoopr   propertyr8   r1   r9   r=   rA   rF   r   r   rQ   r\   r_   rc   r   r   r   rn   r   floatintr}   rB   rd   r   r   bytesrl   __static_attributes____classcell__)rY   s   @r,   r   r      s   B:W66 :4 :* $   
d 
 
"!Nd N6.8M#: 6.t 6.p# $1.. !. 
	. .% %s %t %$ -1"$ $(,!()!""% ()"% 	"%
 "% "% uo"% "% !&"% "% "% 
"%H-

-#.?*% ?*D ?* ?*r   r   )r   
contextlibr   typingr   r   r   base_protocolr   client_exceptionsr	   r
   r   r   helpersr   r   r   r   httpr   r   http_exceptionsr   streamsr   r   r   r    r   r,   <module>r      sV      ' ' '   9 0 ; ;Q*lIe4F4T.U$V Q*r   