
    F/jY1              	           d dl Z d dlmZ d dlmZmZ ddlmZ ddlm	Z	m
Z
mZmZmZ ddlmZmZ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y)    N)suppress)AnyCallable   )BaseProtocol)ClientConnectionErrorClientOSErrorClientPayloadErrorServerDisconnectedErrorSocketTimeoutError)_EXC_SENTINELDEFAULT_CHUNK_SIZEEMPTY_BODY_STATUS_CODESBaseTimerContextset_exception
set_result)HttpResponseParserRawResponseMessage)HttpProcessingError)EMPTY_PAYLOAD	DataQueueStreamReaderc                   &    e Zd ZdZdej
                  ddfdZeddej                  d   z  fd       Z	ede
fd       Zede
fd       Zd2d	Zd2d
Zd2dZde
fdZdedz  ddf fdZd2dZd2 fdZd3de
ddf fdZefdededdf fdZ	 d4dededeg df   dz  ddfdZdddddeddddd
dedz  d e
d!e
d"e
d#edz  d$ed%ed&ed'ed(eddfd)Zd2d*Z d2d+Z!d2d,Z"ededz  fd-       Z#e#jH                  d#edz  ddfd.       Z#d2d/Z%d0e&ddfd1Z' xZ(S )5ResponseHandlerz8Helper class to adapt between Protocol and StreamReader.loopreturnNc                    t        j                  | |d        t        j                  | |       d| _        d | _        d| _        d | _        d | _        d | _        d| _	        d | _
        d | _        d| _        d | _        d| _        y )N)r   parserF       )r   __init__r   _should_close_payload_skip_payload_payload_parser_data_received_cb_timer_tail_read_timeout_read_timeout_handle_timeout_ceil_threshold_closed_connection_lost_called)selfr   s     R/var/www/html/maxservice/venv/lib/python3.12/site-packages/aiohttp/client_proto.pyr!   zResponseHandler.__init__   s    dd;4&"-1"#<@
+/@D!56$48',$r   c                     | j                   +| j                  s| j                  j                         | _         | j                   S )a6  Future that is set when the connection is closed.

        This property returns a Future that will be completed when the connection
        is closed. The Future is created lazily on first access to avoid creating
        futures that will never be awaited.

        Returns:
            - A Future[None] if the connection is still open or was closed after
              this property was accessed
            - None if connection_lost() was already called before this property
              was ever accessed (indicating no one is waiting for the closure)
        )r,   r-   _loopcreate_futurer.   s    r/   closedzResponseHandler.closed3   s4     <<(D(D::335DL||r   c                     | j                   S N)	_upgradedr3   s    r/   upgradedzResponseHandler.upgradedE   s    ~~r   c                    t        | j                  xsu | j                  d uxr | j                  j                          xsH | j                  xs: | j
                  d uxs* | j                  d uxs | j                  xs | j                        S r6   )	boolr"   r#   is_eofr7   
_exceptionr%   _bufferr(   r3   s    r/   should_closezResponseHandler.should_closeI   s     T)H$--2F2F2H.H~~ d* ##4/	
 || zz
 	
r   c                     d| _         y NT)r"   r3   s    r/   force_closezResponseHandler.force_closeU   s
    !r   c                     d | _         | j                  }|/|j                          d | _        d | _        | j	                          y y r6   )r<   	transportcloser#   _drop_timeoutr.   rC   s     r/   rD   zResponseHandler.closeX   A    NN	 OO!DN DM 	 !r   c                     d | _         | j                  }|/|j                          d | _        d | _        | j	                          y y r6   )r<   rC   abortr#   rE   rF   s     r/   rI   zResponseHandler.aborta   rG   r   c                 X    | j                   d uxr | j                   j                          S r6   )rC   
is_closingr3   s    r/   is_connectedzResponseHandler.is_connectedj   s&    ~~T)M$..2K2K2M.MMr   excc                    d| _         | j                          |}|}|d u }| j                  @|rt        | j                  d        n'|J t	        | j                  t        d|      |       | j                  2t        t              5  | j                  j                          d d d        d }| j                  	 | j                  j                         }| j                         sSt        |t              rt!        |j"                   }|rt%        |      }|rt&        n|}|J |J | j	                  ||       d| _        d | _
        d | _        d | _        d| _        t,        	| ]  |       y # 1 sw Y   xY w# t        $ rD}| j                  .d|}|s|d|}t	        | j                  t        |      |       Y d }~d }~ww xY w)NTzConnection lost: z#Response payload is not completed: z. F)r-   rE   r,   r   r   r   r%   r   	Exceptionfeed_eof_parserr#   r
   r;   
isinstanceOSErrorr	   argsr   r   r"   _reading_pausedsuperconnection_lost)
r.   rM   original_connection_errorreraised_excconnection_closed_cleanlyuncompletedunderlying_excclient_payload_exc_msgunderlying_non_eof_exc	__class__s
            r/   rW   zResponseHandler.connection_lostm   s   '+$$'!0$=$E!<<# )4<<.0<<<LL)+,E+IJ . +)$ 0$$--/0 <<#"ll335" {{}3W=,.G.L.LM(6{C
 - . #
 *555+++|-CD!#$-[0 0  ==,=n=PQ + 5598<> / "*+AB&s$   E*:E6 *E36	G?:F>>Gc                 $    | j                          y r6   )rE   r3   s    r/   eof_receivedzResponseHandler.eof_received   s    r   c                 B    t         |           | j                          y r6   )rV   pause_readingrE   )r.   r_   s    r/   rc   zResponseHandler.pause_reading   s    r   Tresume_parserc                 D    t         |   |       | j                          y r6   )rV   resume_reading_reschedule_timeout)r.   rd   r_   s     r/   rf   zResponseHandler.resume_reading   s    }-  "r   	exc_causec                 T    d| _         | j                          t        |   ||       y r@   )r"   rE   rV   r   )r.   rM   rh   r_   s      r/   r   zResponseHandler.set_exception   s(    
 "c9-r   r   payloaddata_received_cbc                     || _         || _        || _        | j                          | j                  r&| j                  dc}| _        | j                  |       y y )Nr   )r#   r%   r&   rE   r(   data_received)r.   r   rj   rk   datas        r/   
set_parserzResponseHandler.set_parser   sS      %!1::#zz3D$*t$ r   Fr    i     )
timerskip_payloadread_until_eofauto_decompressread_timeoutread_bufsizetimeout_ceil_thresholdmax_line_sizemax_field_sizemax_headersrq   rr   rs   rt   ru   rv   rw   rx   ry   rz   c       
             || _         || _        || _        t        | | j                  ||t
        | ||||	|
      | _        | j                  r&| j                  dc}| _        | j                  |       y y )N)rq   payload_exceptionresponse_with_bodyrs   rt   rx   ry   rz   r   )	r$   r)   r+   r   r1   r
   rQ   r(   rm   )r.   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   rn   s               r/   set_response_paramsz#ResponseHandler.set_response_params   s~     *)'=$)JJ0#//)+')#
 ::#zz3D$*t$ r   c                 `    | j                   "| j                   j                          d | _         y y r6   )r*   cancelr3   s    r/   rE   zResponseHandler._drop_timeout  s-    $$0%%,,.(,D% 1r   c                     | j                   }| j                  | j                  j                          |r,| j                  j	                  || j
                        | _        y d | _        y r6   )r)   r*   r   r1   
call_later_on_read_timeout)r.   timeouts     r/   rg   z#ResponseHandler._reschedule_timeout  sZ    $$$$0%%,,.(,

(=(=..)D% )-D%r   c                 $    | j                          y r6   )rg   r3   s    r/   start_timeoutzResponseHandler.start_timeout  s      "r   c                     | j                   S r6   r)   r3   s    r/   ru   zResponseHandler.read_timeout  s    !!!r   c                     || _         y r6   r   )r.   ru   s     r/   ru   zResponseHandler.read_timeout   s
    )r   c                     t        d      }| j                  |       | j                  t        | j                  |       y y )Nz#Timeout on reading data from socket)r   r   r#   )r.   rM   s     r/   r   z ResponseHandler._on_read_timeout$  s8     !FG3==$$--- %r   rn   c                 n   |r| j                          | j                  ^| j                  | j                          | j                  j                  |      \  }}|r!d | _        d | _        |r| j                  |       y | j                  s| j                  | xj                  |z  c_        y 	 | j                  j                  |      \  }}}|| _        d }|D ]j  \  }	}|	j&                  rd| _        || _        | j*                  s|	j                  t,        v r| j                  |	t.        fd       W| j                  |	|fd       l |4|t.        ur|j1                  | j2                         n| j3                          |r|r| j                  |       y y y # t        $ r}| j                  | j                  j                          t        |t              s t        |t              r-t        |j                  |j                   |j"                        }n
t               }| j%                  ||       Y d }~y d }~ww xY w)N)codemessageheadersTr   )rg   r%   r&   	feed_datar#   rm   r7   rQ   r(   BaseExceptionrC   rD   rR   rO   r   r   r   r   r   r>   r"   r$   r   r   on_eofrE   )
r.   rn   eoftailmessagesr8   r\   rM   rj   r   s
             r/   rm   zResponseHandler.data_received*  s    $$& +%%1&&(,,66t<IC $'+$&&t,>>T\\1JJ$J	'+||'='=d'C$Hh* "'+ ( 		6GW##%)"#DM!!W\\5L%L7;115		6 
 m+t112""$t$ 8Y  	~~) $$&ni8.*=>)',,*22*22 *+sN3%	s   ,F 	H4BH//H4)r   N)Tr6   ))__name__
__module____qualname____doc__asyncioAbstractEventLoopr!   propertyFuturer4   r:   r8   r>   rA   rD   rI   rL   r   rW   ra   rc   rf   r   r   r   r   ro   r   r   floatintr~   rE   rg   r   ru   setterr   bytesrm   __classcell__)r_   s   @r/   r   r      sJ   B-W66 -4 -, w~~d33  " $   	
d 	
 	
"!!Nd NI.=4#7 I.D I.V#D #D # $1.. !. 
	. 7;	%% % #2t8,t3	%
 
%0 *."$ $%).()!"$%  $&$% 	$%
 $% $% dl$% $% !&$% $% $% $% 
$%L-

-# "edl " " * *$ * *.H%% H%D H%r   r   ) r   
contextlibr   typingr   r   base_protocolr   client_exceptionsr   r	   r
   r   r   helpersr   r   r   r   r   r   httpr   r   http_exceptionsr   streamsr   r   r   tupler    r   r/   <module>r      sS        '   9 0 ; ;X%lIe4F4T.U$V X%r   