ó
    °"³j�  ã                  ó   • 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httpcore2.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     ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/httpcore2/_sync/connection.pyÚexponential_backoffr      s+   é € ð ‚GÜ�_Š_ÖˆØ�q˜!‘t‰mÔò ù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 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        X€l        U	c
  [        5       OU	U l	        S U l
        SU l        [        5       U l        X l        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__'   sa   € ð ŒØ'ÔØ!1ÔØŒØŒØŒØ+ÔØŒ	àAPÑAX´´Ð^mˆÔØ7;ˆÔØ%*ˆÔÜ!›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_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ûð	ú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	X˜l        S S S 5        OVU R
                  UU R                  S.n[        S	[        X5       nU R                  R"                  " S0 UD6n	X˜l        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	X˜l        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._connectb   s~  € Ø×%Ñ%×)Ñ)¨)°RÓ8ˆØ×)Ñ)×-Ñ-¨n¸dÓCˆØ—,‘,˜y¨$Ó/ˆà—}‘}ˆÜ$Ô,BÑCˆàð*7Ø—9‘9Ñ$à $§¡× 1Ñ 1× 8Ñ 8¸Ó AØ $§¡× 1Ñ 1Ø)-×)<Ñ)<Ø#*Ø*.×*>Ñ*>ñ�Fô ˜}¬f°gÔFÈ%Ø!%×!6Ñ!6×!BÒ!BÑ!LÀVÑ!L˜Ø-3Ô*÷ GÐFð
 !%§	¡	Ø#*Ø*.×*>Ñ*>ñ�Fô
 Ð4´f¸gÔNÐRWØ!%×!6Ñ!6×!JÒ!JÑ!TÈVÑ!T˜Ø-3Ô*÷ Oð —<‘<×&Ñ&Ð*<Ó<Ø;?×;LÑ;LÑ;TÔ"5Ô"7ÐZ^×ZkÑZk�KØ;?¿;¿; j°$Ñ%7ÈZÈL�NØ×2Ñ2°>ÔBð (3Ø+7×+\¸4¿<¹<×;LÑ;L×;SÑ;SÐT[Ó;\Ø#*ñ�Fô
 ˜{¬F°GÔDÈØ!'×!1Ò!1Ñ!;°FÑ!;˜Ø-3Ô*÷ Eð ��v�÷5 GÕFú÷ OÕNú÷ EÔDð �ûÜ ¤.Ð1ó 7Ø 1Ó$ØØ Ñ!�Ü˜V›�Ü˜7¤F¨G°VÔ<ÀØ×)Ñ)×/Ñ/°Ô6÷ =×<×<Ð<úð7úòK 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Õ1ús    AÁ
Ac                ó`   • U R                   S L=(       a    U R                   R                  5       $ rm   )r(   Úis_connectedrq   s    r   rt   ÚHTTPConnection.is_connectedŸ   s'   € Ø×Ñ tÐ+×O°×0@Ñ0@×0MÑ0MÓ0OÐOr9   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   rw   ÚHTTPConnection.is_available¢   s]   € Ø×ÑÑ#ð —;‘;×t D§L¡L×$7Ñ$7¸8Ñ$C×$VÈ4Ï;É;Ä×tÐ`d×`tÑ`tÔ\tÐtØ×Ñ×,Ñ,Ó.Ð.r9   c                óh   • U R                   c  U R                  $ U R                   R                  5       $ rm   )r(   r)   Úhas_expiredrq   s    r   rz   ÚHTTPConnection.has_expiredª   s/   € Ø×ÑÑ#Ø×'Ñ'Ð'Ø×Ñ×+Ñ+Ó-Ð-r9   c                óh   • U R                   c  U R                  $ U R                   R                  5       $ rm   )r(   r)   Úis_idlerq   s    r   r}   ÚHTTPConnection.is_idle¯   s/   € Ø×ÑÑ#Ø×'Ñ'Ð'Ø×Ñ×'Ñ'Ó)Ð)r9   c                ó`   • U R                   S L=(       a    U R                   R                  5       $ rm   )r(   Úcan_multiplexrq   s    r   r€   ÚHTTPConnection.can_multiplex´   s'   € Ø×Ñ tÐ+×P°×0@Ñ0@×0NÑ0NÓ0PÐPr9   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   € Ø×ÑÑ#Ø*.×*>×*>Ð&ÐPÀLÐ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—>‘>×*Ñ*Ð+¨2¨d¯i©i«k¨]¸"Ð=Ð=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�   r�   r–   Ú__static_attributes__rY   r9   r   r   r   &   s  † ð .2Ø)-ØØØØ$(ØØ15Ø@Dð.àð.ð +ð.ð 'ð	.ð
 ð.ð ð.ð ð.ð "ð.ð ð.ð /ð.ð >ð.ð 
õ.ô88ô>37ôj&ô)ô
Pô/ô.ô
*ô
Qô,ô
'ô
>ôð
 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ß /Ñ /Ý &Ý #Ý Ý $Ý +àÐ ð 
×	Ò	Ð1Ó	2€ô
ôjÐ(õ jr9   