
    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   )SyncBackend)SOCKET_OPTIONNetworkBackendNetworkStream)ConnectErrorConnectTimeout)OriginRequestResponse)default_ssl_context)Lock)Trace   )HTTP11Connection)ConnectionInterfaceg      ?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     K/var/www/html/env/lib/python3.13/site-packages/httpcore/_sync/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)HTTPConnection&   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__HTTPConnection.__init__'   sg     '!1+	 -4KM/ 	 8<%*!V-    c                   U R                  UR                  R                  5      (       d/  [        SUR                  R                   SU R                   35      e U R
                     U R                  c  U R                  U5      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        U R                  R%                  U5      $ ! , (       d  f       N)= f! [          a  nSU l        UeS nAff = f)	NzAttempted to send request to z on connection to 
ssl_objecth2r   )HTTP2Connection)r-   streamr/   T)can_handle_requesturlr-   RuntimeErrorr   r*   r(   _connectget_extra_infoselected_alpn_protocolr#   r"   r1   r=   r!   r   BaseExceptionr)   handle_request)r,   requestr>   r;   http2_negotiatedr=   excs          r   rF   HTTPConnection.handle_requestE   sE   &&w{{'9'9::/0B0B/CCUVZVbVbUcd 	####+!]]73F!'!6!6|!DJ"$. H&==?4G % (DKK:+:#'<<#)-1-C-C,( ,<#'<<#)-1-C-C,(% $6 ..w777 $#.  	#'D I	s7   E 'CE*E 
EE E 
E6(	E11E6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       nU R                  R                  " S0 UD6n	Xl        S S S 5        OVU R
                  UU R                  S.n[        S	[        X5       nU R                  R"                  " S0 UD6n	Xl        S S S 5        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       nW	R.                  " S0 UD6n	Xl        S S S 5        U	$ W	$ ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       W	$ = f! [0        [2        4 ab    US::  a  e US-  n[5        U5      n[        S[        UW5       nU R                  R7                  U5        S S S 5         O! , (       d  f        O= ff = fGMn  )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   HTTPConnection._connecti   s   %%)))R8))--ndC,,y$/}}$,BC3799$ $ 1 1 8 8 A $ 1 1)-)<)<#**.*>*>F }fgF%!%!6!6!B!B!LV!L-3* GF
 !%		#**.*>*>F
 -vw!%!6!6!J!J "$" .4* <<&&*<<  ,,4 ,-!..  
 <@;;j$%7ZLN22>B (3+7 ,=<<,,33G<#*	F {FGD!'!1!1!;F!;-3* E vG GF . ED  .1 71$!V7FGV<))//6 =<<<7] s   &A1I #H':4I .#H8B1I I		I %I '
H51I 8
II 	
II I 9KJ:0K:
K		K	Kc                    XR                   :H  $ N)r   )r,   r-   s     r   r?   !HTTPConnection.can_handle_request   s    %%r9   c                    U R                   b6  [        S[        S 0 5         U R                   R                  5         S S S 5        g g ! , (       d  f       g = f)Nclose)r(   r   r^   rp   r,   s    r   rp   HTTPConnection.close   sB    'wb1  &&( 21 (11s   A
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_availablerq   s    r   rt   HTTPConnection.is_available   sf    #
  -\\((H4GDKK-,,,
 ,,..r9   c                h    U R                   c  U R                  $ U R                   R                  5       $ rm   )r(   r)   has_expiredrq   s    r   rw   HTTPConnection.has_expired   s/    #'''++--r9   c                h    U R                   c  U R                  $ U R                   R                  5       $ rm   )r(   r)   is_idlerq   s    r   rz   HTTPConnection.is_idle   s/    #'''''))r9   c                h    U R                   c  U R                  $ U R                   R                  5       $ rm   )r(   r)   	is_closedrq   s    r   r}   HTTPConnection.is_closed   s/    #'''))++r9   c                z    U R                   c  U R                  (       a  S$ S$ U R                   R                  5       $ )NzCONNECTION FAILED
CONNECTING)r(   r)   inforq   s    r   r   HTTPConnection.info   s7    #*.*>*>&PLP$$&&r9   c                X    SU R                   R                   SU R                  5        S3$ )N<z [z]>)	__class____name__r   rq   s    r   __repr__HTTPConnection.__repr__   s(    4>>**+2diik]"==r9   c                    U $ rm   rY   rq   s    r   	__enter__HTTPConnection.__enter__   s    r9   c                $    U R                  5         g rm   )rp   )r,   exc_type	exc_value	tracebacks       r   __exit__HTTPConnection.__exit__   s     	

r9   )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NetworkBackend | 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?   rp   rt   rw   rz   r}   r   r   r   r   __static_attributes__rY   r9   r   r   r   &   s    .2)-$(15@D.. +. '	.
 . . . ". . /. >. 
.<"8H<7|&)

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