ó
    §ZÇ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     ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/httpcore/_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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__'   sg   € ð ŒØ'ÔØ!1ÔØŒØŒØŒØ+ÔØŒ	ð -Ñ4ŒKŒM¸/ð 	Ôð 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×:Ñ:ÜØ/°·±×0BÑ0BÐ/CÐCUÐVZ×VbÑVbÐUcÐdóð ð	Ø×#Ó#Ø×#Ñ#Ñ+Ø!Ÿ]™]¨7Ó3�Fà!'×!6Ñ!6°|Ó!D�Jà"¨$Ð.÷ HØ&×=Ñ=Ó?À4ÑGð %ö (¨D¯K¯KÀÇÇÝ:á+:Ø#'§<¡<Ø#)Ø-1×-CÑ-Cñ,˜Õ(ô ,<Ø#'§<¡<Ø#)Ø-1×-CÑ-Cñ,˜Ô(÷% $ð6 ×Ñ×.Ñ.¨wÓ7Ð7÷7 $Õ#ûô. ó 	Ø#'ˆ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._connecti   s”  € Ø×%Ñ%×)Ñ)¨)°RÓ8ˆØ×)Ñ)×-Ñ-¨n¸dÓCˆØ—,‘,˜y¨$Ó/ˆà—}‘}ˆÜ$Ô,BÑCˆàð3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ô
 Ø-¬v°wôàØ!%×!6Ñ!6×!JÒ!Jñ "Ø$ñ"˜ð .4Ô*÷ð —<‘<×&Ñ&Ð*<Ó<ð  ×,Ñ,Ñ4ô ,Ô-à!×.Ñ.ð  ð
 <@¿;¿; j°$Ñ%7ÈZÈL�NØ×2Ñ2°>ÔBð (3Ø+7÷ ,=ØŸ<™<×,Ñ,×3Ñ3°GÓ<Ø#*ñ	�Fô ˜{¬F°GÔDÈØ!'×!1Ò!1Ñ!;°FÑ!;˜Ø-3Ô*÷ Eð ��v�÷G GÕFú÷õ ú÷. EÔDð �ûÜ ¤.Ð1ó 7Ø 1Ó$ØØ Ñ!�Ü˜V›�Ü˜7¤F¨G°VÔ<ÀØ×)Ñ)×/Ñ/°Ô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Õ1ús    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×G¸D¿K¹K¼÷-à×,Ñ,Ô,ðð
 ×Ñ×,Ñ,Ó.Ð.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   € Ø×ÑÑ#Ø*.×*>×*>Ð&Ð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�   Ú__static_attributes__rY   r9   r   r   r   &   s  † ð .2Ø)-ØØØØ$(ØØ15Ø@Dð.àð.ð +ð.ð 'ð	.ð
 ð.ð ð.ð ð.ð "ð.ð ð.ð /ð.ð >ð.ð 
õ.ô<"8ôH<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   