
    osjf6                       d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
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 ddlmZmZ dd	lmZ dd
lmZ ddlmZ  ej@                  d      Z!e
j*                  e
jD                  z  e
jF                  z  Z$ G d dejJ                        Z& G d de      Z' G d d      Z( G d de      Z)y)    )annotationsN)AsyncGenerator   )AsyncNetworkStream)ConnectionNotAvailableLocalProtocolErrorRemoteProtocolError
WriteErrormap_exceptions)OriginRequestResponse)	AsyncLockAsyncShieldCancellation)Trace)safe_async_iterate   )AsyncConnectionInterfacezhttpcore2.http11c                      e Zd ZdZdZdZdZy)HTTPConnectionStater   r   r      N)__name__
__module____qualname__NEWACTIVEIDLECLOSED     J/root/.hermes/venv/lib/python3.12/site-packages/httpcore2/_async/http11.pyr   r   "   s    
CFDFr    r   c                      e Zd ZdZdZ	 d	 	 	 	 	 	 	 ddZddZddZddZdddZ		 	 	 	 dd	Z
dd
ZdddZd dZd dZd!dZd"dZd"dZd"dZd"dZd"dZd#dZd#dZd$dZ	 	 	 d%	 	 	 	 	 	 	 d&dZy)'AsyncHTTP11Connectioni   i  Nc                    || _         || _        || _        d | _        t        j
                  | _        t               | _        d| _	        t        j                  t        j                  | j                        | _        y )Nr   )our_rolemax_incomplete_event_size)_origin_network_stream_keepalive_expiry
_expire_atr   r   _stater   _state_lock_request_counth11
ConnectionCLIENTMAX_INCOMPLETE_EVENT_SIZE
_h11_state)selforiginstreamkeepalive_expirys       r!   __init__zAsyncHTTP11Connection.__init__-   sa     %/?(,)--$;..ZZ&*&D&D
r    c           	     h  K   | j                  |j                  j                        s/t        d|j                  j                   d| j                         | j
                  4 d {    | j                  t        j                  t        j                  fv r2| xj                  dz  c_
        t        j                  | _        d | _        n
t               d d d       d {    	 d|i}	 t        dt        ||      4 d {   } | j                   di | d {    d d d       d {    t        dt        ||      4 d {   } | j"                  di | d {    d d d       d {    t        dt        ||      4 d {   } | j&                  di | d {   \  }}}}}||||f|_        d d d       d {    | j*                  }	dk(  s|j,                  d	k(  rd
|cxk  rdk  rn nt/        |	      }	t1        |t3        | |      |	d      S 7 7 E# 1 d {  7  sw Y   VxY w7 =7 &7 # 1 d {  7  sw Y   *xY w7 7 7 # 1 d {  7  sw Y   xY w# t$        $ r Y w xY w7 7 7 # 1 d {  7  sw Y   xY w# t4        $ r}
t7               5  t        dt        |      4 d {  7  }| j9                          d {  7   d d d       d {  7   n# 1 d {  7  sw Y   nxY wd d d        |
# 1 sw Y   |
xY wd }
~
ww xY ww)NzAttempted to send request to z on connection to r   requestsend_request_headerssend_request_bodyreceive_response_headerse   s   CONNECT   i,  )http_versionreason_phrasenetwork_stream)statusheaderscontent
extensionsresponse_closedr   )can_handle_requesturlr4   RuntimeErrorr'   r,   r+   r   r   r   r-   r   r*   r   r   logger_send_request_headers_send_request_bodyr
   _receive_response_headersreturn_valuer(   methodAsyncHTTP11UpgradeStreamr   HTTP11ConnectionByteStreamBaseExceptionr   _response_closed)r3   r9   kwargstracer?   rB   r@   rC   trailing_datarA   excs              r!   handle_async_requestz*AsyncHTTP11Connection.handle_async_request?   s#    &&w{{'9'9:!>w{{?Q?Q>RRdeieqeqdrstt## 	/ 	/{{2668K8P8PQQ##q(#188"&,..	/ 	/2	)F !7&Q ? ?UZ4$44>v>>>? ? !4fgvN < <RW1$11;F;;;< < 7&Q  UZ 9$88B6BB !! !!	&"  "11N #GNNj$@sfGZWZGZ!9.-!X24A$0%2&4		 	Y	/ 	/ 	/ 	/ 	/?>? ? ? ?<;< < < <   C   >  	(* 2 !2FGD 2 2//1112 2 2 2 22 I2 I		s  A%L2'H!(L2+A)H'L2H$ L2%J$ *I9  H=I9 II II9 *I+I9 II9 	I#I I#$I9 /I!0I9 4J$ 
J	J$ J$J%J:J$ JAJ$  L2$L2'H:-H0.H:5L2=I9  II9 III	I9 I#!I9 #I6)I,*I61I9 9	JJ$ JJ$ JJ$ J!JJ!J$ $	L/-
L*7LK
LK>&K)
'K>,L7K:8L>LLLL
L*L'	"L**L//L2c                  K   |j                   j                  di       }|j                  dd       }t        t        j                  t        i      5  t        j
                  |j                  |j                  j                  |j                        }d d d        | j                  |       d {    y # 1 sw Y   %xY w7 w)Ntimeoutwrite)rO   targetrC   rZ   )rE   getr   r.   r   r   rO   rH   r\   rC   _send_eventr3   r9   timeoutsrZ   events        r!   rK   z+AsyncHTTP11Connection._send_request_headers   s     %%)))R8,,w-S335GHI 	KK~~{{))E	 ug666	 	 	7s+   ACAB5C/C0C5B>:Cc                "  K   |j                   j                  di       }|j                  dd       }t        |j                  t        j
                        sJ t        |j                        4 d {   }|2 3 d {   }t        j                  |      }| j                  ||       d {    ;7 A7 87 	6 d d d       d {  7   n# 1 d {  7  sw Y   nxY w| j                  t        j                         |       d {  7   y w)NrZ   r[   )datar]   )rE   r^   
isinstancer5   typingAsyncIterabler   r.   Datar_   EndOfMessage)r3   r9   ra   rZ   iteratorchunkrb   s          r!   rL   z(AsyncHTTP11Connection._send_request_body   s     %%)))R8,,w-'..&*>*>???%gnn5 	? 	?' ? ?ee,&&ug&>>>	??>  (	? 	? 	? 	? 	?
 s//17CCCs   A.D0B21D4C7B8;B4<B8?-C,B6-C2D4B86C8C9DCDCCC/DD	Dc                   K   | j                   j                  |      }|&| j                  j                  ||       d {    y y 7 w)Nr]   )r2   sendr(   r[   )r3   rb   rZ   bytes_to_sends       r!   r_   z!AsyncHTTP11Connection._send_event   sG     ,,U3$&&,,]G,LLL %Ls   >A	 AA	c                  K   |j                   j                  di       }|j                  dd       }	 | j                  |       d {   }t        |t        j
                        rn+t        |t        j                        r|j                  dk(  rn`d|j                  z   }|j                  j                         }| j                  j                  \  }}||j                  |j                  ||fS 7 w)NrZ   readr]   r=   s   HTTP/)rE   r^   _receive_eventre   r.   r   InformationalResponsestatus_coder?   rC   	raw_itemsr2   rV   reason)	r3   r9   ra   rZ   rb   r?   rC   rV   _s	            r!   rM   z/AsyncHTTP11Connection._receive_response_headers   s      %%)))R8,,vt,--g->>E%.%!:!:;@Q@QUX@X   %"4"44 --))+??88qU..g}TT ?s   AC1C/B(C1c               ^  K   |j                   j                  di       }|j                  dd       }	 | j                  |       d {   }t        |t        j
                        rt        |j                         n+t        |t        j                  t        j                  f      ry y7 cw)NrZ   rp   r]   )
rE   r^   rq   re   r.   rh   bytesrd   ri   PAUSEDr`   s        r!   _receive_response_bodyz,AsyncHTTP11Connection._receive_response_body   s     %%)))R8,,vt,--g->>E%*EJJ''EC$4$4cjj#AB >s   AB-B+A$B-c                  K   	 t        t        j                  t        i      5  | j                  j	                         }d d d        t        j
                  u r| j                  j                  | j                  |       d {   }|dk(  r4| j                  j                  t        j                  k(  rd}t        |      | j                  j                  |       n|S # 1 sw Y   xY w7 hw)Nr]   r    z/Server disconnected without sending a response.)r   r.   r	   r2   
next_event	NEED_DATAr(   rp   READ_NUM_BYTEStheir_stateSEND_RESPONSEreceive_data)r3   rZ   rb   rd   msgs        r!   rq   z$AsyncHTTP11Connection._receive_event   s     !8!8:M NO 52245 %!1166t7J7JT[6\\ 3;4??#>#>#BSBS#SKC-c22,,T2 - 5 5 ]s)   !C-CAC-C+AC-C($C-c                  K   | j                   4 d {    | j                  j                  t        j                  u r| j                  j
                  t        j                  u rdt        j                  | _        | j                  j                          | j                  At        j                         }|| j                  z   | _        n| j                          d {    d d d       d {    y 7 7 7 	# 1 d {  7  sw Y   y xY wwN)r,   r2   	our_stater.   DONEr   r   r   r+   start_next_cycler)   time	monotonicr*   aclose)r3   nows     r!   rS   z&AsyncHTTP11Connection._response_closed   s     ## 	$ 	$((CHH49T9TX[X`X`9`166002))5..*C&)D,B,B&BDOkkm##	$ 	$ 	$ $	$ 	$ 	$ 	$sW   DC1DCC7C3C7 D+C5,D3C75D7D	=D >D	Dc                ~   K   t         j                  | _        | j                  j	                          d {    y 7 wr   )r   r   r+   r(   r   r3   s    r!   r   zAsyncHTTP11Connection.aclose   s-      *00""))+++s   3=;=c                     || j                   k(  S r   )r'   r3   r4   s     r!   rG   z(AsyncHTTP11Connection.can_handle_request   s    %%r    c                $    | j                          S r   )	is_closedr   s    r!   is_connectedz"AsyncHTTP11Connection.is_connected   s    >>###r    c                <    | j                   t        j                  k(  S r   r+   r   r   r   s    r!   is_availablez"AsyncHTTP11Connection.is_available   s    
 {{16666r    c                    t        j                         }| j                  }|d uxr ||kD  }| j                  t        j
                  k(  xr | j                  j                  d      }|xs |S )Nis_readable)r   r   r*   r+   r   r   r(   get_extra_info)r3   r   	expire_atkeepalive_expiredserver_disconnecteds        r!   has_expiredz!AsyncHTTP11Connection.has_expired   so    nn OO	%T1EcIo
 #kk-@-E-EE 
$J^J^JmJmK
 !7$77r    c                <    | j                   t        j                  k(  S r   r   r   s    r!   is_idlezAsyncHTTP11Connection.is_idle  s    {{16666r    c                <    | j                   t        j                  k(  S r   )r+   r   r   r   s    r!   r   zAsyncHTTP11Connection.is_closed  s    {{18888r    c                |    t        | j                        }|d| j                  j                   d| j                   S )Nz, HTTP/1.1, , Request Count: )strr'   r+   namer-   r   s     r!   infozAsyncHTTP11Connection.info  s:    T\\"<(8(8'99J4K^K^J_``r    c           	         | j                   j                  }t        | j                        }d| d|d| j                  j
                   d| j                   d	S )N<z [z, r   z]>)	__class__r   r   r'   r+   r   r-   )r3   
class_namer4   s      r!   __repr__zAsyncHTTP11Connection.__repr__  sU    ^^,,
T\\":,b
"T[[-=-=,>>OPTPcPcOddfggr    c                   K   | S wr   r   r   s    r!   
__aenter__z AsyncHTTP11Connection.__aenter__!  s     s   c                @   K   | j                          d {    y 7 wr   )r   )r3   exc_type	exc_value	tracebacks       r!   	__aexit__zAsyncHTTP11Connection.__aexit__$  s      kkms   r   )r4   r   r5   r   r6   float | NonereturnNone)r9   r   r   r   )r9   r   r   r   )rb   z	h11.EventrZ   r   r   r   )r9   r   r   z:tuple[bytes, int, bytes, list[tuple[bytes, bytes]], bytes])r9   r   r   AsyncGenerator[bytes])rZ   r   r   zh11.Event | type[h11.PAUSED]r   r   )r4   r   r   bool)r   r   )r   r   )r   r#   )NNN)r   ztype[BaseException] | Noner   zBaseException | Noner   ztypes.TracebackType | Noner   r   )r   r   r   r~   r1   r7   rX   rK   rL   r_   rM   rz   rq   rS   r   rG   r   r   r   r   r   r   r   r   r   r   r    r!   r#   r#   )   s    N * *.	

 #
 '	

 

$>D
7
DMUU	CU.	2	$,&$78 79ah
 04*.04	, ( .	
 
r    r#   c                  $    e Zd ZddZddZddZy)rQ   c                .    || _         || _        d| _        y )NF)_connection_request_closed)r3   
connectionr9   s      r!   r7   z#HTTP11ConnectionByteStream.__init__.  s    %r    c               2  K   d| j                   i}	 t        dt        | j                   |      4 d {    t         | j                  j
                  di |      4 d {   }|2 3 d {   }| 7 C7 7 6 d d d       d {  7   n# 1 d {  7  sw Y   nxY wd d d       d {  7   y # 1 d {  7  sw Y   y xY w# t        $ r@}t               5  | j                          d {  7   d d d        |# 1 sw Y   |xY wd }~ww xY ww)Nr9   receive_response_bodyr   )	r   r   rJ   r   r   rz   rR   r   r   )r3   rT   rj   rk   rW   s        r!   	__aiter__z$HTTP11ConnectionByteStream.__aiter__3  s     T]]+	4fdmmVT $ $-.Ud.>.>.U.U._X^._` $ $dl'/ $ $e#$$$x$ $ $ $ $$ $ $ $ $  	 )* $kkm##$I$I	s   D C A6C *B6 A8!B6$B'A<+A:
,A</B6C 8B6:A<<B=B6B	B6B!	BB!	B6$C /B20C 5D6C<B?=CC DC 	D
DD2C53D8
DD	DDDc                  K   | j                   s^d| _         t        dt        | j                        4 d {    | j                  j                          d {    d d d       d {    y y 7 87 7 
# 1 d {  7  sw Y   y xY ww)NTrF   )r   r   rJ   r   r   rS   r   s    r!   r   z!HTTP11ConnectionByteStream.acloseB  sz     ||DL.F : :&&77999: : : :9: : : :sV   3B	A.B	A4A0A4B	'A2(B	0A42B	4B:A=;BB	N)r   r#   r9   r   r   r   )r   r   r   )r   r   r   r7   r   r   r   r    r!   rQ   rQ   -  s    
:r    rQ   c                  T    e Zd ZddZd	d
dZd	ddZddZ	 	 d	 	 	 	 	 	 	 ddZddZy)rP   c                     || _         || _        y r   )_stream_leading_data)r3   r5   leading_datas      r!   r7   z!AsyncHTTP11UpgradeStream.__init__J  s    )r    Nc                   K   | j                   r%| j                   d | }| j                   |d  | _         |S | j                  j                  ||       d {   S 7 wr   )r   r   rp   )r3   	max_bytesrZ   buffers       r!   rp   zAsyncHTTP11UpgradeStream.readN  sX     ''
3F!%!3!3IJ!?DM**9g>>>>s   AAAAc                X   K   | j                   j                  ||       d {    y 7 wr   )r   r[   )r3   r   rZ   s      r!   r[   zAsyncHTTP11UpgradeStream.writeV  s      ll  111s    *(*c                T   K   | j                   j                          d {    y 7 wr   )r   r   r   s    r!   r   zAsyncHTTP11UpgradeStream.acloseY  s     ll!!###s   (&(c                X   K   | j                   j                  |||       d {   S 7 wr   )r   	start_tls)r3   ssl_contextserver_hostnamerZ   s       r!   r   z"AsyncHTTP11UpgradeStream.start_tls\  s'      \\++K'RRRRs   !*(*c                8    | j                   j                  |      S r   )r   r   )r3   r   s     r!   r   z'AsyncHTTP11UpgradeStream.get_extra_infod  s    ||**400r    )r5   r   r   rx   r   r   r   )r   intrZ   r   r   rx   )r   rx   rZ   r   r   r   r   )NN)r   zssl.SSLContextr   z
str | NonerZ   r   r   r   )r   r   r   z
typing.Any)	r   r   r   r7   rp   r[   r   r   r   r   r    r!   rP   rP   I  sS    *?2$ '+ $	S#S $S 	S
 
S1r    rP   )*
__future__r   enumloggingsslr   typesrf   collections.abcr   r.   _backends.baser   _exceptionsr   r   r	   r
   r   _modelsr   r   r   _synchronizationr   r   _tracer   _utilsr   
interfacesr   	getLoggerrJ   rh   ri   H11SendEventIntEnumr   r#   rQ   rP   r   r    r!   <module>r      s    "   
    * 
 /  0 / A  ' 0			-	. {{SXX%(8(88$,, A4 AH: :811 1r    