
    hY'              	           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SocketTimeoutError)_EXC_SENTINELEMPTY_BODY_STATUS_CODESBaseTimerContextset_exception)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edee         fd(            Zej         dee         ddf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     V/var/www/html/prod/cognitive/venv/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                     t          | j        pI| j        d uo| j                                         p&| j        p| j        d up| j        d up| j        p| j                  S r-   )	boolr   r    is_eofr%   
_exceptionr"   _bufferr$   r.   s    r+   should_closezResponseHandler.should_close3   s     T)H$-2F2F2H2H.H~ d* #4/	
 | z
 
 	
r   c                     d| _         d S NT)r   r.   s    r+   force_closezResponseHandler.force_close?   s    !r   c                     d | _         | j        }|8|                                 d | _        d | _        |                                  d S d S r-   )r3   	transportcloser    _drop_timeout)r*   r:   s     r+   r;   zResponseHandler.closeB   sT    N	 OO!DN DM     	 ! r   c                 H    | j         d uo| j                                          S r-   )r:   
is_closingr.   s    r+   is_connectedzResponseHandler.is_connectedK   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*   r@   original_connection_errorreraised_excconnection_closed_cleanlyuncompletedunderlying_excclient_payload_exc_msgunderlying_non_eof_exc	__class__s
            r+   rI   zResponseHandler.connection_lostN   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-   )rH   pause_readingr<   r*   rQ   s    r+   rU   zResponseHandler.pause_reading   s1    r   c                 p    t                                                       |                                  d S r-   )rH   resume_reading_reschedule_timeoutrV   s    r+   rX   zResponseHandler.resume_reading   s1         """""r   	exc_causec                     d| _         |                                  t                                          ||           d S r7   )r   r<   rH   r   )r*   r@   rZ   rQ   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_sizerb   rc   rd   re   rf   rg   rh   ri   rj   c       	             || _         || _        || _        t          | | j        ||t
          | ||||	
  
        | _        | j        r&| j        dc}
| _        |                     |
           d S d S )N)rb   payload_exceptionresponse_with_bodyrd   re   ri   rj   r   )	r!   r'   r)   r   _loopr
   r&   r$   r_   )r*   rb   rc   rd   re   rf   rg   rh   ri   rj   r`   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(   rq   rn   
call_later_on_read_timeout)r*   timeouts     r+   rY   z#ResponseHandler._reschedule_timeout   sh    $$0%,,... 	-(,
(=(=.) )D%%% )-D%%%r   c                 .    |                                   d S r-   )rY   r.   s    r+   start_timeoutzResponseHandler.start_timeout   s      """""r   c                     | j         S r-   r'   r.   s    r+   rf   zResponseHandler.read_timeout   s    !!r   c                     || _         d S r-   ry   )r*   rf   s     r+   rf   zResponseHandler.read_timeout   s    )r   c                     t          d          }|                     |           | j        t          | j        |           d S d S )Nz#Timeout on reading data from socket)r   r   r    )r*   r@   s     r+   rt   z ResponseHandler._on_read_timeout   sL     !FGG3=$$------ %$r   r`   c                    |                                   |sd S | j        F| j                            |          \  }}|r%d | _        d | _        |r|                     |           d S | j        s| j        | xj        |z  c_        d S 	 | j                            |          \  }}}n# t          $ r}| j	        | j	        
                                 t          |t                    r"t          |j        |j        |j                  }nt                      }|                     ||           Y d }~d S d }~ww xY w|| _        d }|D ]e\  }	}|	j        rd| _        || _        | j        s|	j        t(          v r|                     |	t*          fd           M|                     |	|fd           f|8|t*          ur|                    | j                   n|                                  |r|r|                     |           d S d S d S )N)codemessageheadersTr   )rY   r"   	feed_datar    r_   r%   r&   r$   BaseExceptionr:   r;   rD   r   r}   r~   r   r   r5   r   r!   r   r   on_eofr<   )
r*   r`   eoftailmessagesr/   rN   r@   r]   r~   s
             r+   r_   zResponseHandler.data_received   su     """ 	F +,66t<<IC - $'+$ -&&t,,,F> 	T\1JJ$JJF	'+|'='=d'C'C$Hh 	 	 	~) $$&&&.*=>> ,)',*2*2   *++sN333FFFFF!	$ "*. ( 		6 		6GW# *%)"#DM! 6W\5L%L%L7;;;;115555
 m++t12222""$$$ 	% 	%t$$$$$	% 	% 	% 	%s   B& &
D60A;D11D6)r   N)%__name__
__module____qualname____doc__asyncioAbstractEventLoopr   propertyr1   r/   r5   r8   r;   r?   r   r   rI   rS   rU   rX   r   r   r   ra   r   floatintro   r<   rY   rw   rf   setterrt   bytesr_   __classcell__)rQ   s   @r+   r   r      sV       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- - - -

- 
- 
- 
-# # # # "huo " " " X" *% *T * * * *. . . .D%% D%D D% D% D% D% D% D% D% 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 ; ; ; ; ; ; ; ; ; ;]% ]% ]% ]% ]%lIe4F4T.U$V ]% ]% ]% ]% ]%r   