Ë
    /æjž  ã                  óþ   — 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mZ ddl	m
Z
mZmZ ddlmZmZ ddlmZmZmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ dZ ej>                  d«      Z dd„Z! G d„ de«      Z"y)é    )ÚannotationsNé   )ÚSyncBackend)ÚSOCKET_OPTIONÚNetworkBackendÚNetworkStream)ÚConnectErrorÚConnectTimeout)ÚOriginÚRequestÚResponse)Údefault_ssl_context)ÚLock)ÚTraceé   )ÚHTTP11Connection)ÚConnectionInterfaceg      à?zhttpcore2.connectionc              #  óZ   K  — d–— t        j                  «       D ]  }| d|z  z  –— Œ y­w)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     ú]/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/httpcore2/_sync/connection.pyÚexponential_backoffr      s1   è ø€ ð ‚GÜ�_‰_Óò ˆØ�q˜!‘t‰mÓñùs   ‚)+c                  óØ   — e Z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„Zdd„Z	 	 	 d	 	 	 	 	 	 	 dd„Zy)ÚHTTPConnectionNc                óâ   — || _         || _        || _        || _        || _        || _        || _        || _        |	€
t        «       n|	| _	        d | _
        d| _        t        «       | _        |
| _        y )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__zHTTPConnection.__init__'   ss   € ð ˆŒØ'ˆÔØ!1ˆÔØˆŒØˆŒØˆŒØ+ˆÔØˆŒ	àAPÐAX´´Ð^mˆÔØ7;ˆÔØ%*ˆÔÜ!›VˆÔØ-ˆÕó    c                ó¾  — | j                  |j                  j                  «      s/t        d|j                  j                  › d| j                  › �«      ‚	 | j
                  5  | j                  €§| j                  |«      }|j                  d«      }|d uxr |j                  «       dk(  }|s| j                  r7| j                  s+ddlm}  || j                  || j                  ¬«      | _        n't        | j                  || j                  ¬«      | _        d d d «       | j                  j%                  |«      S # 1 sw Y   Œ$xY w# t         $ r}d| _        |‚d }~ww xY w)	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!   r0   r;   r    r   ÚBaseExceptionr(   Úhandle_request)r+   Úrequestr<   r9   Úhttp2_negotiatedr;   Úexcs          r   rD   zHTTPConnection.handle_requestC   s>  € Ø×&Ñ& w§{¡{×'9Ñ'9Ô:ÜÐ!>¸w¿{¹{×?QÑ?QÐ>RÐRdÐei×eqÑeqÐdrÐsÓtÐtð	Ø×#Ñ#ñ Ø×#Ñ#Ð+Ø!Ÿ]™]¨7Ó3�Fà!'×!6Ñ!6°|Ó!D�JØ'1¸Ð'=Ò'mÀ*×BcÑBcÓBeÐimÑBmÐ$Ù'¨D¯KªKÀÇÂÝ:á+:Ø#'§<¡<Ø#)Ø-1×-CÑ-Cô,˜Õ(ô ,<Ø#'§<¡<Ø#)Ø-1×-CÑ-Cô,˜Ô(÷ð0 ×Ñ×.Ñ.¨wÓ7Ð7÷1ð ûô( ò 	Ø#'ˆDÔ ØˆIûð	ús1   ÁE Á"B4D9ÄE Ä9EÄ>E Å	EÅ	EÅEc                óŒ  — |j                   j                  di «      }|j                   j                  dd «      }|j                  dd «      }| j                  }t        t        ¬«      }	 	 | j
                  €’| j                  j                  j                  d«      | j                  j                  | j                  || j                  dœ}t        dt        ||«      5 } | j                  j                  di |¤Ž}	|	|_        d d d «       nX| j
                  || j                  dœ}t        d	t        ||«      5 } | j                  j"                  di |¤Ž}	|	|_        d d d «       | j                  j$                  d
v r¸| j&                  €
t)        «       n| j&                  }
| j*                  r| j,                  rddgndgndg}|
j/                  |«       |
|xs% | j                  j                  j                  d«      |dœ}t        dt        ||«      5 } 	j0                  di |¤Ž}	|	|_        d d d «       |	S 	S # 1 sw Y   ŒÛxY w# 1 sw Y   ŒçxY w# 1 sw Y   	S xY w# t2        t4        f$ r\ |dk  r‚ |dz  }t7        |«      }t        dt        |«      5 }| j                  j9                  |«       d d d «       n# 1 sw Y   nxY wY nw xY w�Œ^)NÚtimeoutÚsni_hostnameÚconnect)r   Úascii)ÚhostÚportr2   rI   r5   Úconnect_tcp)ÚpathrI   r5   Úconnect_unix_socket)ó   httpss   wssr:   zhttp/1.1)r-   Úserver_hostnamerI   Ú	start_tlsr   r   Úretry© )Ú
extensionsÚgetr#   r   ÚRETRIES_BACKOFF_FACTORr%   r   rM   ÚdecoderN   r$   r*   r   Úloggerr&   rO   Úreturn_valuerQ   Úschemer   r   r"   r!   Úset_alpn_protocolsrT   r	   r
   ÚnextÚsleep)r+   rE   ÚtimeoutsrJ   rI   Úretries_leftÚdelaysÚkwargsÚtracer<   r-   Úalpn_protocolsÚdelays                r   r@   zHTTPConnection._connectb   s°  € Ø×%Ñ%×)Ñ)¨)°RÓ8ˆØ×)Ñ)×-Ñ-¨n¸dÓCˆØ—,‘,˜y¨$Ó/ˆà—}‘}ˆÜ$Ô,BÔCˆàð*7Ø—9‘9Ð$à $§¡× 1Ñ 1× 8Ñ 8¸Ó AØ $§¡× 1Ñ 1Ø)-×)<Ñ)<Ø#*Ø*.×*>Ñ*>ñ�Fô ˜}¬f°g¸vÓFð 4È%Ø!B ×!6Ñ!6×!BÑ!BÑ!LÀVÑ!L˜Ø-3˜Ô*÷4ð 4ð
 !%§	¡	Ø#*Ø*.×*>Ñ*>ñ�Fô
 Ð4´f¸gÀvÓNð 4ÐRWØ!J ×!6Ñ!6×!JÑ!JÑ!TÈVÑ!T˜Ø-3˜Ô*÷4ð —<‘<×&Ñ&Ð*<Ñ<Ø;?×;LÑ;LÐ;TÔ"5Ô"7ÐZ^×ZkÑZk�KØX\×XcÒXc¸D¿KºK t¨ZÑ&8ÈdÉVÐjtÐiu�NØ×2Ñ2°>ÔBð (3Ø+7Ò+\¸4¿<¹<×;LÑ;L×;SÑ;SÐT[Ó;\Ø#*ñ�Fô
 ˜{¬F°G¸VÓDð 4ÈØ!1 ×!1Ñ!1Ñ!;°FÑ!;˜Ø-3˜Ô*÷4ð ��v�÷54ð 4ú÷4ð 4ú÷4ð �ûÜ ¤.Ð1ò 7Ø 1Ò$ØØ Ñ!�Ü˜V›�Ü˜7¤F¨G°VÓ<ð 7ÀØ×)Ñ)×/Ñ/°Ô6÷7÷ 7ñ 7üð7úñK s€   Á)A1I Ã$H1Ã>5I Ä3$H=ÅB4I ÈI	È%	I È/I È1H:È6I È=IÉI É	IÉI ÉI É7KÊJ2Ê)	KÊ2J;	Ê7KË Kc                ó    — || j                   k(  S ©N)r   )r+   r,   s     r   r=   z!HTTPConnection.can_handle_request—   s   € Ø˜Ÿ™Ñ%Ð%r7   c                ó    — | j                   �6t        dt        d i «      5  | j                   j                  «        d d d «       y y # 1 sw Y   y xY w)NÚclose)r'   r   r[   rk   ©r+   s    r   rk   zHTTPConnection.closeš   sM   € Ø×ÑÐ'Ü�w¤¨¨bÓ1ñ )Ø× Ñ ×&Ñ&Ô(÷)ð )ð (÷)ð )ús   ŸAÁAc                óV   — | j                   d uxr | j                   j                  «       S ri   )r'   Úis_connectedrl   s    r   rn   zHTTPConnection.is_connectedŸ   s'   € Ø×Ñ tÐ+ÒO°×0@Ñ0@×0MÑ0MÓ0OÐOr7   c                óØ   — | j                   €E| j                  xr7 | j                  j                  dk(  xs | j                   xr | j
                   S | j                   j                  «       S )NrR   )r'   r"   r   r]   r!   r(   Úis_availablerl   s    r   rp   zHTTPConnection.is_available¢   s]   € Ø×ÑÐ#ð —;‘;Òt D§L¡L×$7Ñ$7¸8Ñ$CÒ$VÈ4Ï;É;ÀÒtÐ`d×`tÑ`tÐ\tÐtØ×Ñ×,Ñ,Ó.Ð.r7   c                óf   — | j                   €| j                  S | j                   j                  «       S ri   )r'   r(   Úhas_expiredrl   s    r   rr   zHTTPConnection.has_expiredª   s/   € Ø×ÑÐ#Ø×'Ñ'Ð'Ø×Ñ×+Ñ+Ó-Ð-r7   c                óf   — | j                   €| j                  S | j                   j                  «       S ri   )r'   r(   Úis_idlerl   s    r   rt   zHTTPConnection.is_idle¯   s/   € Ø×ÑÐ#Ø×'Ñ'Ð'Ø×Ñ×'Ñ'Ó)Ð)r7   c                óV   — | j                   d uxr | j                   j                  «       S ri   )r'   Úcan_multiplexrl   s    r   rv   zHTTPConnection.can_multiplex´   s'   € Ø×Ñ tÐ+ÒP°×0@Ñ0@×0NÑ0NÓ0PÐPr7   c                óf   — | j                   €| j                  S | j                   j                  «       S ri   )r'   r(   Ú	is_closedrl   s    r   rx   zHTTPConnection.is_closed·   s/   € Ø×ÑÐ#Ø×'Ñ'Ð'Ø×Ñ×)Ñ)Ó+Ð+r7   c                ón   — | j                   €| j                  rdS dS | j                   j                  «       S )NzCONNECTION FAILEDÚ
CONNECTING)r'   r(   Úinforl   s    r   r{   zHTTPConnection.info¼   s7   € Ø×ÑÐ#Ø*.×*>Ò*>Ð&ÐPÀLÐPØ×Ñ×$Ñ$Ó&Ð&r7   c                óX   — d| j                   j                  › d| j                  «       › d�S )Nú<z [z]>)Ú	__class__Ú__name__r{   rl   s    r   Ú__repr__zHTTPConnection.__repr__Á   s(   € Ø�4—>‘>×*Ñ*Ð+¨2¨d¯i©i«k¨]¸"Ð=Ð=r7   c                ó   — | S ri   rV   rl   s    r   Ú	__enter__zHTTPConnection.__enter__Ç   s   € Øˆr7   c                ó$   — | j                  «        y ri   )rk   )r+   Úexc_typeÚ	exc_valueÚ	tracebacks       r   Ú__exit__zHTTPConnection.__exit__Ê   s   € ð 	�
‰
�r7   )	NNTFr   NNNN)r,   r   r-   zssl.SSLContext | Noner.   zfloat | Noner/   Úboolr0   rˆ   r1   Úintr2   ú
str | Noner3   rŠ   r4   zNetworkBackend | Noner5   z%typing.Iterable[SOCKET_OPTION] | NoneÚreturnÚNone)rE   r   r‹   r   )rE   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__r6   rD   r@   r=   rk   rn   rp   rr   rt   rv   rx   r{   r€   r‚   r‡   rV   r7   r   r   r   &   s
  „ ð .2Ø)-ØØØØ$(ØØ15Ø@Dð.àð.ð +ð.ð 'ð	.ð
 ð.ð ð.ð ð.ð "ð.ð ð.ð /ð.ð >ð.ð 
ó.ó88ó>37ój&ó)ó
Pó/ó.ó
*ó
Qó,ó
'ó
>óð
 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
ôr7   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   rY   Ú	getLoggerr[   r   r   rV   r7   r   ú<module>r       sg   ðÝ "ã Û Û 
Û Û å (ß IÑ Iß 6ß /Ñ /Ý &Ý #Ý Ý $Ý +àÐ ð 
ˆ×	Ñ	Ð1Ó	2€ó
ôjÐ(õ jr7   