§
    îŽ’jQ   ã                  ó  — 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"dS )é    )ÚannotationsNé   )ÚSyncBackend)ÚSOCKET_OPTIONÚNetworkBackendÚNetworkStream)ÚConnectErrorÚConnectTimeout)ÚOriginÚRequestÚResponse)Údefault_ssl_context)ÚLock)ÚTraceé   )ÚHTTP11Connection)ÚConnectionInterfaceg      à?zhttpcore2.connectionÚfactorÚfloatÚreturnútyping.Iterator[float]c              #  óR   K  — dV — t          j        ¦   «         D ]}| d|z  z  V — ŒdS )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)r   Úns     úHC:\Projects\DSCons\.venv\Lib\site-packages\httpcore2\_sync\connection.pyÚexponential_backoffr      sI   è è € ð €G€G€GÝŒ_ÑÔð ð ˆØ�q˜!‘t‰mÐÐÐÐðð ó    c                  ó¢   — e Zd Z	 	 	 	 	 	 	 	 	 d3d4d„Zd5d„Zd6d„Zd7d „Zd8d!„Zd9d"„Zd9d#„Z	d9d$„Z
d9d%„Zd9d&„Zd9d'„Zd:d)„Zd:d*„Zd;d+„Z	 	 	 d<d=d2„ZdS )>ÚHTTPConnectionNTFr   Úoriginr   Ússl_contextússl.SSLContext | NoneÚkeepalive_expiryúfloat | NoneÚhttp1ÚboolÚhttp2ÚretriesÚintÚlocal_addressú
str | NoneÚudsÚnetwork_backendúNetworkBackend | NoneÚsocket_optionsú%typing.Iterable[SOCKET_OPTION] | Noner   ÚNonec                óô   — || _         || _        || _        || _        || _        || _        || _        || _        |	€t          ¦   «         n|	| _	        d | _
        d| _        t          ¦   «         | _        |
| _        d S )NF)Ú_originÚ_ssl_contextÚ_keepalive_expiryÚ_http1Ú_http2Ú_retriesÚ_local_addressÚ_udsr   Ú_network_backendÚ_connectionÚ_connect_failedr   Ú_request_lockÚ_socket_options)Úselfr!   r"   r$   r&   r(   r)   r+   r-   r.   r0   s              r   Ú__init__zHTTPConnection.__init__'   s   € ð ˆŒØ'ˆÔØ!1ˆÔØˆŒØˆŒØˆŒØ+ˆÔØˆŒ	àAPÐAXµ±´°Ð^mˆÔØ7;ˆÔØ%*ˆÔÝ!™VœVˆÔØ-ˆÔÐÐr   Úrequestr   r   c                óx  — |                       |j        j        ¦  «        s$t          d|j        j        › d| j        › �¦  «        ‚	 | j        5  | j        €›|                      |¦  «        }|                     d¦  «        }|d uo| 	                    ¦   «         dk    }|s| j
        r+| j        s$ddlm}  || j        || j        ¬¦  «        | _        n!t          | j        || j        ¬¦  «        | _        d d d ¦  «         n# 1 swxY w Y   n# t           $ r}d| _        |‚d }~ww xY w| j                             |¦  «        S )	NzAttempted to send request to z on connection to Ú
ssl_objectÚh2r   )ÚHTTP2Connection)r!   Ústreamr$   T)Úcan_handle_requestÚurlr!   ÚRuntimeErrorr4   r?   r=   Ú_connectÚget_extra_infoÚselected_alpn_protocolr8   r7   r(   rG   r6   r   ÚBaseExceptionr>   Úhandle_request)rA   rC   rH   rE   Úhttp2_negotiatedrG   Úexcs          r   rP   zHTTPConnection.handle_requestC   s½  € Ø×&Ò& w¤{Ô'9Ñ:Ô:ð 	uÝÐs¸w¼{Ô?QÐsÐsÐeiÔeqÐsÐsÑtÔtÐtð	ØÔ#ð ð ØÔ#Ð+Ø!Ÿ]š]¨7Ñ3Ô3�Fà!'×!6Ò!6°|Ñ!DÔ!D�JØ'1¸Ð'=Ð'mÀ*×BcÒBcÑBeÔBeÐimÒBmÐ$Ø'ð ¨D¬Kð ÀÄð Ø:Ð:Ð:Ð:Ð:Ð:à+:¨?Ø#'¤<Ø#)Ø-1Ô-Cð,ñ ,ô ,˜Ô(Ð(õ ,<Ø#'¤<Ø#)Ø-1Ô-Cð,ñ ,ô ,˜Ô(ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øøõ( ð 	ð 	ð 	Ø#'ˆDÔ ØˆIøøøøð	øøøð Ô×.Ò.¨wÑ7Ô7Ð7s=   ÁD ÁB#C;Ã/D Ã;C?Ã?D ÄC?ÄD Ä
DÄ	DÄDr   c                ó   — |j                              di ¦  «        }|j                              dd ¦  «        }|                     dd ¦  «        }| j        }t          t          ¬¦  «        }	 	 | j        €‚| j        j                             d¦  «        | j        j	        | j
        || j        dœ}t          dt          ||¦  «        5 } | j        j        di |¤Ž}	|	|_        d d d ¦  «         n# 1 swxY w Y   nX| j        || j        d	œ}t          d
t          ||¦  «        5 } | j        j        di |¤Ž}	|	|_        d d d ¦  «         n# 1 swxY w Y   | j        j        dv r§| j        €t)          ¦   «         n| j        }
| j        rddgndg}|
                     |¦  «         |
|p| j        j                             d¦  «        |dœ}t          dt          ||¦  «        5 } |	j        di |¤Ž}	|	|_        d d d ¦  «         n# 1 swxY w Y   |	S # t0          t2          f$ rg |dk    r‚ |dz  }t5          |¦  «        }t          dt          ||¦  «        5 }| j                             |¦  «         d d d ¦  «         n# 1 swxY w Y   Y nw xY w�Œ)NÚtimeoutÚsni_hostnameÚconnect)r   TÚascii)ÚhostÚportr+   rT   r0   Úconnect_tcp)ÚpathrT   r0   Úconnect_unix_socket)ó   httpss   wsszhttp/1.1rF   )r"   Úserver_hostnamerT   Ú	start_tlsr   r   Úretry© )Ú
extensionsÚgetr9   r   ÚRETRIES_BACKOFF_FACTORr;   r4   rX   ÚdecoderY   r:   r@   r   Úloggerr<   rZ   Úreturn_valuer\   Úschemer5   r   r8   Úset_alpn_protocolsr_   r	   r
   ÚnextÚsleep)rA   rC   ÚtimeoutsrU   rT   Úretries_leftÚdelaysÚkwargsÚtracerH   r"   Úalpn_protocolsÚdelays                r   rL   zHTTPConnection._connectb   sÀ  € ØÔ%×)Ò)¨)°RÑ8Ô8ˆØÔ)×-Ò-¨n¸dÑCÔCˆØ—,’,˜y¨$Ñ/Ô/ˆà”}ˆÝ$Õ,BÐCÑCÔCˆð+	7ð*7Ø”9Ð$à $¤Ô 1× 8Ò 8¸Ñ AÔ AØ $¤Ô 1Ø)-Ô)<Ø#*Ø*.Ô*>ðð �Fõ ˜}­f°g¸vÑFÔFð 4È%Ø!B Ô!6Ô!BÐ!LÐ!LÀVÐ!LÐ!L˜Ø-3˜Ô*ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4øð
 !%¤	Ø#*Ø*.Ô*>ðð �Fõ
 Ð4µf¸gÀvÑNÔNð 4ÐRWØ!J Ô!6Ô!JÐ!TÐ!TÈVÐ!TÐ!T˜Ø-3˜Ô*ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð ”<Ô&Ð*<Ð<Ð<Ø;?Ô;LÐ;TÕ"5Ñ"7Ô"7Ð"7ÐZ^ÔZk�KØ;?¼;Ð%X j°$Ð%7Ð%7ÈZÈL�NØ×2Ò2°>ÑBÔBÐBð (3Ø+7Ð+\¸4¼<Ô;L×;SÒ;SÐT[Ñ;\Ô;\Ø#*ðð �Fõ
 ˜{­F°G¸VÑDÔDð 4ÈØ!1 Ô!1Ð!;Ð!;°FÐ!;Ð!;˜Ø-3˜Ô*ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð �øÝ ¥.Ð1ð 7ð 7ð 7Ø 1Ò$Ð$ØØ Ñ!�Ý˜V™œ�Ý˜7¥F¨G°VÑ<Ô<ð 7ÀØÔ)×/Ò/°Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7øøð7øøøñK+	7s¥   Á+AH ÃC(ÃH Ã(C,Ã,H Ã/C,Ã0+H ÄEÄ5H ÅEÅH ÅEÅ	BH ÇG6Ç*H Ç6G:Ç:H Ç=G:Ç>H ÈAI;ÉI-É!I;É-I1	É1I;É4I1	É5I;É:I;c                ó   — || j         k    S ©N)r4   )rA   r!   s     r   rI   z!HTTPConnection.can_handle_request—   s   € Ø˜œÒ%Ð%r   c                óª   — | j         �Kt          dt          d i ¦  «        5  | j                              ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S d S )NÚclose)r=   r   rf   rv   ©rA   s    r   rv   zHTTPConnection.closeš   s    € ØÔÐ'Ý�w¥¨¨bÑ1Ô1ð )ð )ØÔ ×&Ò&Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )ð (Ð's   ŸAÁA
ÁA
c                óF   — | j         d uo| j                              ¦   «         S rt   )r=   Úis_connectedrw   s    r   ry   zHTTPConnection.is_connectedŸ   s$   € ØÔ tÐ+ÐO°Ô0@×0MÒ0MÑ0OÔ0OÐOr   c                ó�   — | j         €'| j        o| j        j        dk    s| j         o| j         S | j                              ¦   «         S )Nr]   )r=   r8   r4   rh   r7   r>   Úis_availablerw   s    r   r{   zHTTPConnection.is_available¢   sN   € ØÔÐ#ð ”;Ðt D¤LÔ$7¸8Ò$CÐ$VÈ4Ì;ÀÐtÐ`dÔ`tÐ\tÐtØÔ×,Ò,Ñ.Ô.Ð.r   c                óP   — | j         €| j        S | j                              ¦   «         S rt   )r=   r>   Úhas_expiredrw   s    r   r}   zHTTPConnection.has_expiredª   s)   € ØÔÐ#ØÔ'Ð'ØÔ×+Ò+Ñ-Ô-Ð-r   c                óP   — | j         €| j        S | j                              ¦   «         S rt   )r=   r>   Úis_idlerw   s    r   r   zHTTPConnection.is_idle¯   s)   € ØÔÐ#ØÔ'Ð'ØÔ×'Ò'Ñ)Ô)Ð)r   c                óF   — | j         d uo| j                              ¦   «         S rt   )r=   Úcan_multiplexrw   s    r   r�   zHTTPConnection.can_multiplex´   s$   € ØÔ tÐ+ÐP°Ô0@×0NÒ0NÑ0PÔ0PÐPr   c                óP   — | j         €| j        S | j                              ¦   «         S rt   )r=   r>   Ú	is_closedrw   s    r   rƒ   zHTTPConnection.is_closed·   s)   € ØÔÐ#ØÔ'Ð'ØÔ×)Ò)Ñ+Ô+Ð+r   Ústrc                óX   — | j         €| j        rdndS | j                              ¦   «         S )NzCONNECTION FAILEDÚ
CONNECTING)r=   r>   Úinforw   s    r   r‡   zHTTPConnection.info¼   s4   € ØÔÐ#Ø*.Ô*>ÐPÐ&Ð&ÀLÐPØÔ×$Ò$Ñ&Ô&Ð&r   c                óL   — d| j         j        › d|                      ¦   «         › d�S )Nú<z [z]>)Ú	__class__Ú__name__r‡   rw   s    r   Ú__repr__zHTTPConnection.__repr__Á   s(   € Ø=�4”>Ô*Ð=Ð=¨d¯iªi©k¬kÐ=Ð=Ð=Ð=r   c                ó   — | S rt   ra   rw   s    r   Ú	__enter__zHTTPConnection.__enter__Ç   s   € Øˆr   Úexc_typeútype[BaseException] | NoneÚ	exc_valueúBaseException | NoneÚ	tracebackútypes.TracebackType | Nonec                ó.   — |                       ¦   «          d S rt   )rv   )rA   r�   r‘   r“   s       r   Ú__exit__zHTTPConnection.__exit__Ê   s   € ð 	�
Š
‰Œˆˆˆr   )	NNTFr   NNNN)r!   r   r"   r#   r$   r%   r&   r'   r(   r'   r)   r*   r+   r,   r-   r,   r.   r/   r0   r1   r   r2   )rC   r   r   r   )rC   r   r   r   )r!   r   r   r'   )r   r2   )r   r'   )r   r„   )r   r    )NNN)r�   r�   r‘   r’   r“   r”   r   r2   )r‹   Ú
__module__Ú__qualname__rB   rP   rL   rI   rv   ry   r{   r}   r   r�   rƒ   r‡   rŒ   rŽ   r–   ra   r   r   r    r    &   s{  € € € € € ð .2Ø)-ØØØØ$(ØØ15Ø@Dð.ð .ð .ð .ð .ð88ð 8ð 8ð 8ð>37ð 37ð 37ð 37ðj&ð &ð &ð &ð)ð )ð )ð )ð
Pð Pð Pð Pð/ð /ð /ð /ð.ð .ð .ð .ð
*ð *ð *ð *ð
Qð Qð Qð Qð,ð ,ð ,ð ,ð
'ð 'ð 'ð 'ð
>ð >ð >ð >ðð ð ð ð
 04Ø*.Ø04ð	ð ð ð ð ð ð r   r    )r   r   r   r   )#Ú
__future__r   r   ÚloggingÚsslÚtypesÚtypingÚ_backends.syncr   Ú_backends.baser   r   r   Ú_exceptionsr	   r
   Ú_modelsr   r   r   Ú_sslr   Ú_synchronizationr   Ú_tracer   Úhttp11r   Ú
interfacesr   rd   Ú	getLoggerrf   r   r    ra   r   r   ú<module>r¨      su  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø 
€
€
€
Ø €€€Ø €€€à (Ð (Ð (Ð (Ð (Ð (Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø &Ð &Ð &Ð &Ð &Ð &Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø +Ð +Ð +Ð +Ð +Ð +àÐ ð 
ˆÔ	Ð1Ñ	2Ô	2€ð
ð 
ð 
ð 
ðjð jð jð jð jÐ(ñ jô jð jð jð jr   