
    h!                        S SK Jr  S SKrS SKrS SKrS SKrS SKrSSKJr  SSK	J
r
JrJr  SSKJrJr  SSKJrJrJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  Sr\R>                  " S5      r SS jr! " S S\5      r"g)    )annotationsN   )AutoBackend)SOCKET_OPTIONAsyncNetworkBackendAsyncNetworkStream)ConnectErrorConnectTimeout)OriginRequestResponse)default_ssl_context)	AsyncLock)Trace   )AsyncHTTP11Connection)AsyncConnectionInterfaceg      ?zhttpcore.connectionc              #  `   #    Sv   [         R                  " 5        H  nU SU-  -  v   M     g7f)z
Generate a geometric sequence that has a ratio of 2 and starts with 0.

For example:
- `factor = 2`: `0, 2, 4, 8, 16, 32, 64, ...`
- `factor = 3`: `0, 3, 6, 12, 24, 48, 96, ...`
r   r   N)	itertoolscount)factorns     L/var/www/html/env/lib/python3.13/site-packages/httpcore/_async/connection.pyexponential_backoffr      s+      G__q!tm s   ,.c                      \ rS rSr         S                     SS jjrSS jrSS jrSS jrSS jrSS jr	SS	 jr
SS
 jrSS jrSS jrSS jrSS jr   S       SS jjrSrg)AsyncHTTPConnection&   Nc                    Xl         X l        X0l        X@l        XPl        X`l        Xpl        Xl        U	c
  [        5       OU	U l	        S U l
        SU l        [        5       U l        Xl        g )NF)_origin_ssl_context_keepalive_expiry_http1_http2_retries_local_address_udsr   _network_backend_connection_connect_failedr   _request_lock_socket_options)selforiginssl_contextkeepalive_expiryhttp1http2retrieslocal_addressudsnetwork_backendsocket_optionss              r   __init__AsyncHTTPConnection.__init__'   sh     '!1+	 -4KM/ 	 =A%*&[-    c                ^  #    U R                  UR                  R                  5      (       d/  [        SUR                  R                   SU R                   35      e U R
                   IS h  vN   U R                  c  U R                  U5      I S h  vN nUR                  S5      nUS L=(       a    UR                  5       S:H  nU(       d"  U R                  (       a9  U R                  (       d(  SSKJn  U" U R                  UU R                  S9U l        O$[        U R                  UU R                  S9U l        S S S 5      IS h  vN   U R                  R%                  U5      I S h  vN $  GN N N,! , IS h  vN  (       d  f       NA= f! [          a  nSU l        UeS nAff = f N@7f)	NzAttempted to send request to z on connection to 
ssl_objecth2r   )AsyncHTTP2Connection)r-   streamr/   T)can_handle_requesturlr-   RuntimeErrorr   r*   r(   _connectget_extra_infoselected_alpn_protocolr#   r"   r1   r=   r!   r   BaseExceptionr)   handle_async_request)r,   requestr>   r;   http2_negotiatedr=   excs          r   rF   (AsyncHTTPConnection.handle_async_requestE   si    &&w{{'9'9::/0B0B/CCUVZVbVbUcd 	)))##+#'==#99F!'!6!6|!DJ"$. H&==?4G % (DKK?+?#'<<#)-1-C-C,( ,A#'<<#)-1-C-C,(% *)6 %%::7CCC7 *9 *))).  	#'D I	 Ds   AF-F -E/.F 1"E6E2B(E6<F E4F F-*F++F-/F 2E64F 6F<E?=F	F F-F 
F(	F##F((F-c                  #    UR                   R                  S0 5      nUR                   R                  SS 5      nUR                  SS 5      nU R                  n[        [        S9n  U R
                  c  U R                  R                  R                  S5      U R                  R                  U R                  UU R                  S.n[        S[        X5       IS h  vN nU R                  R                  " S0 UD6I S h  vN n	Xl        S S S 5      IS h  vN   OnU R
                  UU R                  S.n[        S	[        X5       IS h  vN nU R                  R"                  " S0 UD6I S h  vN n	Xl        S S S 5      IS h  vN   U R                  R$                  S
;   a  U R&                  c
  [)        5       OU R&                  n
U R*                  (       a  SS/OS/nU
R-                  U5        U
U=(       d%    U R                  R                  R                  S5      US.n[        S[        X5       IS h  vN nW	R.                  " S0 UD6I S h  vN n	Xl        S S S 5      IS h  vN   U	$ W	$  GN GNs GN`! , IS h  vN  (       d  f       GN= f GNI GN( GN! , IS h  vN  (       d  f       GN+= f N Nh NT! , IS h  vN  (       d  f       W	$ = f! [0        [2        4 a    US::  a  e US-  n[5        U5      n[        S[        UW5       IS h  vN  nU R                  R7                  U5      I S h  vN    S S S 5      IS h  vN     O! , IS h  vN  (       d  f        O= ff = fGM  7f)Ntimeoutsni_hostnameconnect)r   ascii)hostportr3   rL   r6   connect_tcp)pathrL   r6   connect_unix_socket)   httpss   wsszhttp/1.1r<   )r.   server_hostnamerL   	start_tlsr   r   retry )
extensionsgetr$   r   RETRIES_BACKOFF_FACTORr&   r   rP   decoderQ   r%   r+   r   loggerr'   rR   return_valuerT   schemer    r   r#   set_alpn_protocolsrW   r	   r
   nextsleep)r,   rG   timeoutsrM   rL   retries_leftdelayskwargstracer>   r.   alpn_protocolsdelays                r   rB   AsyncHTTPConnection._connecti   s    %%)))R8))--ndC,,y$/}}$,BC3=99$ $ 1 1 8 8 A $ 1 1)-)<)<#**.*>*>F  %]FGLLPU'+'<'<'H'H'R6'R!R-3*  MLL
 !%		#**.*>*>F
  %-vw   '+'<'<'P'P ($( " .4*    <<&&*<<  ,,4 ,-!..  
 <@;;j$%7ZLN22>B (3+7 ,=<<,,33G<#*	F  %[&'JJe'-'7'7'A&'A!A-3*  KJ vG  M!R  MLLL "       .  K!A  KJJ  .1 =1$!V &'6BBe//55e<<< CBBBBB=] s  A%M6(A5K I1K ! I:I4
I:K I74K JK  J0J1
J;K JB1K 8J99K <J?J;
J?K (J=)K .M6/K 0M61K 4I:7K :J JJ	K JK J6$J'%J61	K ;J?=K ?KKKK M6K =M0LM0M;L><MM0MM0M6M,	MM,	'M0*M6,M00M6c                    XR                   :H  $ N)r   )r,   r-   s     r   r?   &AsyncHTTPConnection.can_handle_request   s    %%r9   c                  #    U R                   bN  [        S[        S 0 5       IS h  vN   U R                   R                  5       I S h  vN   S S S 5      IS h  vN   g g  N8 N N
! , IS h  vN  (       d  f       g = f7f)Nclose)r(   r   r^   acloser,   s    r   rq   AsyncHTTPConnection.aclose   s^     'WfdB77&&--/// 877 (7/ 8777sV   $A?AA?A%A!	A%A?A#A?!A%#A?%A<+A.,A<8A?c                   U R                   c\  U R                  =(       aI    U R                  R                  S:H  =(       d    U R                  (       + =(       a    U R
                  (       + $ U R                   R                  5       $ )NrU   )r(   r#   r   r`   r"   r)   is_availablerr   s    r   ru    AsyncHTTPConnection.is_available   sf    #
  -\\((H4GDKK-,,,
 ,,..r9   c                h    U R                   c  U R                  $ U R                   R                  5       $ rm   )r(   r)   has_expiredrr   s    r   rx   AsyncHTTPConnection.has_expired   s/    #'''++--r9   c                h    U R                   c  U R                  $ U R                   R                  5       $ rm   )r(   r)   is_idlerr   s    r   r{   AsyncHTTPConnection.is_idle   s/    #'''''))r9   c                h    U R                   c  U R                  $ U R                   R                  5       $ rm   )r(   r)   	is_closedrr   s    r   r~   AsyncHTTPConnection.is_closed   s/    #'''))++r9   c                z    U R                   c  U R                  (       a  S$ S$ U R                   R                  5       $ )NzCONNECTION FAILED
CONNECTING)r(   r)   inforr   s    r   r   AsyncHTTPConnection.info   s7    #*.*>*>&PLP$$&&r9   c                X    SU R                   R                   SU R                  5        S3$ )N<z [z]>)	__class____name__r   rr   s    r   __repr__AsyncHTTPConnection.__repr__   s(    4>>**+2diik]"==r9   c                   #    U $ 7frm   rY   rr   s    r   
__aenter__AsyncHTTPConnection.__aenter__   s
     s   c                @   #    U R                  5       I S h  vN   g  N7frm   )rq   )r,   exc_type	exc_value	tracebacks       r   	__aexit__AsyncHTTPConnection.__aexit__   s      kkms   )r)   r(   r"   r#   r!   r%   r'   r   r*   r$   r+   r    r&   )	NNTFr   NNNN)r-   r   r.   zssl.SSLContext | Noner/   zfloat | Noner0   boolr1   r   r2   intr3   
str | Noner4   r   r5   zAsyncNetworkBackend | Noner6   z%typing.Iterable[SOCKET_OPTION] | NonereturnNone)rG   r   r   r   )rG   r   r   r   )r-   r   r   r   )r   r   )r   r   )r   str)r   r   )NNN)r   ztype[BaseException] | Noner   zBaseException | Noner   ztypes.TracebackType | Noner   r   )r   
__module____qualname____firstlineno__r7   rF   rB   r?   rq   ru   rx   r{   r~   r   r   r   r   __static_attributes__rY   r9   r   r   r   &   s    .2)-$(6:@D.. +. '	.
 . . . ". . 4. >. 
.<"DH<=|&0

/.
*
,
'
>
 04*.04	, ( .	
 
 r9   r   )r   floatr   ztyping.Iterator[float])#
__future__r   r   loggingssltypestyping_backends.autor   _backends.baser   r   r   _exceptionsr	   r
   _modelsr   r   r   _sslr   _synchronizationr   _tracer   http11r   
interfacesr   r\   	getLoggerr^   r   r   rY   r9   r   <module>r      se    "   
   ( S S 6 / / & (  ) 0  
		0	1
x2 xr9   