
    bf&              	           d dl Z d dlmZ d dlmZmZmZ ddlmZ ddl	m
Z
mZmZmZ ddlmZmZmZmZ ddlmZmZ dd	lmZ dd
lmZmZmZ  G d deeeeef                            ZdS )    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                       e Zd ZdZdej        ddfdZedefd            Z	edefd            Z
d+dZd+d	Zdefd
Zdee         ddf fdZd+dZd+ fdZd+ fdZefdededdf fdZdededdfdZdddddddddd	dee         dedededee         d ed!ed"ed#eddfd$Zd+d%Zd+d&Zd+d'Zd+d(Zd)e ddfd*Z! xZ"S ),ResponseHandlerz8Helper class to adapt between Protocol and StreamReader.loopreturnNc                     t          j        | |           t          j        | |           d| _        d | _        d| _        d | _        d | _        d| _        d| _	        d | _
        d | _        d | _        d| _        d S )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/var/www/html/Alfredo/env/lib/python3.11/site-packages/aiohttp/client_proto.pyr   zResponseHandler.__init__   s    d....4&&&"04"#
59.2CG!89$$$r   c                     | j         S N)r%   r*   s    r+   upgradedzResponseHandler.upgraded/   s
    ~r   c                     | j         | j                                         r| j        rdS | j        pL| j        pE|                                 d up/| j        d up&t          |           dk    pt          | j                  S NTr   )	r    is_eofr%   r   	exceptionr"   lenboolr$   r.   s    r+   should_closezResponseHandler.should_close3   s    =$T]-A-A-C-C$t~$4   ~ ~~t+  #4/  4yy1}	 
 DJ	
r   c                     d| _         d S NT)r   r.   s    r+   force_closezResponseHandler.force_closeA   s    !r   c                     | j         }|8|                                 d | _         d | _        |                                  d S d S r-   )	transportcloser    _drop_timeout)r*   r;   s     r+   r<   zResponseHandler.closeD   sM    N	 OO!DN DM     	 ! r   c                 H    | j         d uo| j                                          S r-   )r;   
is_closingr.   s    r+   is_connectedzResponseHandler.is_connectedL   s%    ~T)M$.2K2K2M2M.MMr   excc                 (   |                                   |}|}|d u }| j        Et          t                    5  | j                                         d d d            n# 1 swxY w Y   d }| j        j	 | j                                        }nO# t          $ rB}| j        1d|}|s|d|}t          | j        t          |          |           Y d }~nd }~ww xY w| 	                                s]t          |t                    rt          |j         }|rt          |          }|rt          n|}|J |J |                     ||           d| _        d | _        d | _        d | _        d| _        t%                                          |           d S )Nz#Response payload is not completed: z. TF)r=   r"   r   	Exceptionfeed_eofr&   r    r   r
   r2   
isinstanceOSErrorr	   argsr   r   r   _reading_pausedsuperconnection_lost)
r*   rA   original_connection_errorreraised_excconnection_closed_cleanlyuncompletedunderlying_excclient_payload_exc_msgunderlying_non_eof_exc	__class__s
            r+   rJ   zResponseHandler.connection_lostO   s8   $'!0$=$E!+)$$ 0 0$--///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 <#"l3355   =,QnQQ + 5 5 > >8> > / "*+ABB&    {{}} 	E3W== N,.G.LM( D6{CC
 -/. #
 *555+++|-CDDD!#$-----s)   AA#&A#4B 
C8CCc                 .    |                                   d S r-   )r=   r.   s    r+   eof_receivedzResponseHandler.eof_received   s    r   c                 p    t                                                       |                                  d S r-   )rI   pause_readingr=   r*   rR   s    r+   rV   zResponseHandler.pause_reading   s1    r   c                 p    t                                                       |                                  d S r-   )rI   resume_reading_reschedule_timeoutrW   s    r+   rY   zResponseHandler.resume_reading   s1         """""r   	exc_causec                     d| _         |                                  t                                          ||           d S r8   )r   r=   rI   r   )r*   rA   r[   rR   s      r+   r   zResponseHandler.set_exception   s?    
 "c9-----r   parserpayloadc                     || _         || _        |                                  | j        r&| j        dc}| _        |                     |           d S d S )Nr   )r    r"   r=   r$   data_received)r*   r]   r^   datas       r+   
set_parserzResponseHandler.set_parser   sc      %: 	%#z3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_sizerc   rd   re   rf   rg   rh   ri   rj   rk   c       	             || _         || _        || _        t          | | j        ||t
          | ||||	
  
        | _        | j        r&| j        dc}
| _        |                     |
           d S d S )N)rc   payload_exceptionresponse_with_bodyre   rf   rj   rk   r   )	r!   r'   r)   r   _loopr
   r&   r$   r`   )r*   rc   rd   re   rf   rg   rh   ri   rj   rk   ra   s              r+   set_response_paramsz#ResponseHandler.set_response_params   s     *)'=$)J0#//)+')
 
 
 : 	%#z3D$*t$$$$$	% 	%r   c                 X    | j         "| j                                          d | _         d S d S r-   )r(   cancelr.   s    r+   r=   zResponseHandler._drop_timeout   s6    $0%,,...(,D%%% 10r   c                     | j         }| j        | j                                         |r'| j                            || j                  | _        d S d | _        d S r-   )r'   r(   rr   ro   
call_later_on_read_timeout)r*   timeouts     r+   rZ   z#ResponseHandler._reschedule_timeout   sh    $$0%,,... 	-(,
(=(=.) )D%%% )-D%%%r   c                 .    |                                   d S r-   )rZ   r.   s    r+   start_timeoutzResponseHandler.start_timeout   s      """""r   c                     t          d          }|                     |           | j        t          | j        |           d S d S )Nz#Timeout on reading data from socket)r   r   r    )r*   rA   s     r+   ru   z ResponseHandler._on_read_timeout   sL     !FGG3=$$------ %$r   ra   c                    |                                   |sd S | j        F| j                            |          \  }}|r%d | _        d | _        |r|                     |           d S | j        s| j        | xj        |z  c_        d S 	 | j                            |          \  }}}nZ# t          $ rM}| j	        | j	        
                                 |                     t                      |           Y d }~d S d }~ww xY w|| _        d }|D ]k\  }}|j        rd| _        || _        | j        st!          |j                  r|                     |t$          fd           S|                     ||fd           l|8|t$          ur|                    | j                   n|                                  |r"|r|                     |           d S || _        d S d S r1   )rZ   r"   	feed_datar    r`   r%   r&   r$   BaseExceptionr;   r<   r   r   r6   r   r!   r   coder   on_eofr=   )	r*   ra   eoftailmessagesr/   rO   r^   messages	            r+   r`   zResponseHandler.data_received   sA     """ 	F +,66t<<IC - $'+$ -&&t,,,F~ .*!5

d"




/3|/E/Ed/K/K,Hh$   ~1 ,,...&&':'<'<nMMMFFFFF "*26(0 > >$GW+ 2-1*$+DM) >-K. . > '?CCCC'91====&
 m33t'9::::**,,, * ***400000%)


	* *s   B& &
C=0AC88C=)r   N)#__name__
__module____qualname____doc__asyncioAbstractEventLoopr   propertyr5   r/   r6   r9   r<   r@   r   r|   rJ   rT   rV   rY   r   r   r   rb   r   floatintrp   r=   rZ   rx   ru   bytesr`   __classcell__)rR   s   @r+   r   r      s       BB:W6 :4 : : : :* $    X 
d 
 
 
 X
" " " "! ! ! !Nd N N N N6.8M#: 6.t 6. 6. 6. 6. 6. 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      sb          ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '                       9 8 8 8 8 8 8 8 0 0 0 0 0 0 ; ; ; ; ; ; ; ; ; ;Q* Q* Q* Q* Q*lIe4F4T.U$V Q* Q* Q* Q* Q*r   