← back to Atmos Game

assets/gen/.venv/lib/python3.12/site-packages/httpcore/_sync/__pycache__/http_proxy.cpython-312.pyc

114 lines

�

c�bj8����ddlmZddlZddlZddlZddlZddlmZmZddl	m
Z
ddlmZm
Z
mZmZmZmZmZddlmZddlmZdd	lmZd
dlmZd
dlmZd
d
lmZd
dlm Z ejBe"e#fZ$ejJejLe$e$fZ'ejPe$e$fZ)ejTd�Z+		d					dd�Z,Gd�de�Z-Gd�de �Z.Gd�de �Z/y)�)�annotationsN�)�
SOCKET_OPTION�NetworkBackend)�
ProxyError)�URL�Origin�Request�Response�
enforce_bytes�enforce_headers�enforce_url)�default_ssl_context)�Lock)�Trace�)�HTTPConnection)�ConnectionPool)�HTTP11Connection)�ConnectionInterfacezhttpcore.proxyc���|�gn
t|�}|�gn
t|�}td�|D��}|D��cgc]\}}|j�|vr||f��}}}||zScc}}w)zh
    Append default_headers and override_headers, de-duplicating if a key exists
    in both cases.
    c3�BK�|]\}}|j����y�w�N)�lower)�.0�key�values   �p/Users/macstudio3/Projects/atmos-game/assets/gen/.venv/lib/python3.12/site-packages/httpcore/_sync/http_proxy.py�	<genexpr>z merge_headers.<locals>.<genexpr>-s����F�5E�z�s�E�s�y�y�{�5E�s�)�list�setr)�default_headers�override_headers�has_overriderrs     r�
merge_headersr%#s���,�3�b��o�9N�O�-�5�r�4�@P�;Q���F�5E�F�F�L�*��)�J�C���9�9�;�l�*�

�e��)���
�-�-�-��s� Ac���eZdZdZ														d																															d�fd�
Zdd�Z�xZS)�	HTTPProxyzB
    A connection pool that sends requests via an HTTP proxy.
    c
���t�|�|||||	|
||||
|��t|d��|_|jjdk(r
|�td��||_||_t|d��|_	|�Xt|dd	��}t|d
d	��}|dz|z}dtj|�z}d
|fg|jz|_	yy)a�
        A connection pool for making HTTP requests.

        Parameters:
            proxy_url: The URL to use when connecting to the proxy server.
                For example `"http://127.0.0.1:8080/"`.
            proxy_auth: Any proxy authentication as a two-tuple of
                (username, password). May be either bytes or ascii-only str.
            proxy_headers: Any HTTP headers to use for the proxy requests.
                For example `{"Proxy-Authorization": "Basic <username>:<password>"}`.
            ssl_context: An SSL context to use for verifying connections.
                If not specified, the default `httpcore.default_ssl_context()`
                will be used.
            proxy_ssl_context: The same as `ssl_context`, but for a proxy server rather than a remote origin.
            max_connections: The maximum number of concurrent HTTP connections that
                the pool should allow. Any attempt to send a request on a pool that
                would exceed this amount will block until a connection is available.
            max_keepalive_connections: The maximum number of idle HTTP connections
                that will be maintained in the pool.
            keepalive_expiry: The duration in seconds that an idle HTTP connection
                may be maintained for before being expired from the pool.
            http1: A boolean indicating if HTTP/1.1 requests should be supported
                by the connection pool. Defaults to True.
            http2: A boolean indicating if HTTP/2 requests should be supported by
                the connection pool. Defaults to False.
            retries: The maximum number of retries when trying to establish
                a connection.
            local_address: Local address to connect from. Can also be used to
                connect using a particular address family. Using
                `local_address="0.0.0.0"` will connect using an `AF_INET` address
                (IPv4), while using `local_address="::"` will connect using an
                `AF_INET6` address (IPv6).
            uds: Path to a Unix Domain Socket to use instead of TCP sockets.
            network_backend: A backend instance to use for handling network I/O.
        )�ssl_context�max_connections�max_keepalive_connections�keepalive_expiry�http1�http2�network_backend�retries�
local_address�uds�socket_options�	proxy_url��name�httpNzCThe `proxy_ssl_context` argument is not allowed for the http scheme�
proxy_headersr�
proxy_authr�:sBasic sProxy-Authorization)
�super�__init__r�
_proxy_url�scheme�RuntimeError�_ssl_context�_proxy_ssl_contextr
�_proxy_headersr�base64�	b64encode)�selfr4r9r8r)�proxy_ssl_contextr*r+r,r-r.r0r1r2r/r3�username�password�userpass�
authorization�	__class__s                    �rr<zHTTPProxy.__init__;s���j	���#�+�&?�-���+��'��)�	�	
�&�i�k�B����O�O�"�"�g�-�2C�2O��U��
�(���"3���-�m�/�R����!�$�Z��]��F�H�$�Z��]��F�H��$���1�H�%��(8�(8��(B�B�M�'��7�#��#�#�#$�D��"�c��|jdk(rMt|jj|j||j
|j|j��St|jj|j||j|j|j
|j|j|j��	S)Nr7)�proxy_originr8�
remote_originr,r/rF)	rNr8rOr)rFr,r-r.r/)r>�ForwardHTTPConnectionr=�originrB�_keepalive_expiry�_network_backendrA�TunnelHTTPConnectionr@�_http1�_http2�rErQs  r�create_connectionzHTTPProxy.create_connection�s����=�=�G�#�(�!�_�_�3�3�"�1�1�$�!%�!7�!7� $� 5� 5�"&�"9�"9�
�
�$����/�/��-�-� ��)�)�"�5�5�!�3�3��+�+��+�+� �1�1�

�
	
rL)NNNN�
NNTFrNNNN) r4zURL | bytes | strr9z&tuple[bytes | str, bytes | str] | Noner8�+HeadersAsMapping | HeadersAsSequence | Noner)�ssl.SSLContext | NonerFr[r*�
int | Noner+r\r,�float | Noner-�boolr.r^r0�intr1�
str | Noner2r`r/�NetworkBackend | Noner3�%typing.Iterable[SOCKET_OPTION] | None�return�None)rQr	rcr)�__name__�
__module__�__qualname__�__doc__r<rX�
__classcell__)rKs@rr'r'6s�����>B�EI�-1�37�&(�04�)-����$(��15�@D�!U$�$�U$�;�U$�C�	U$�
+�U$�1�
U$�$�U$�$.�U$�'�U$��U$��U$��U$�"�U$��U$�/�U$� >�!U$�"
�#U$�n
rLr'c��eZdZ					d															d
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Z	dd	�Z
dd
�Zdd�Zy)rPNc�n�t|||||��|_||_t|d��|_||_y)N�rQr,r/r3r)r8r5)r�_connection�
_proxy_originr
rB�_remote_origin)rErNrOr8r,r/r3rFs        rr<zForwardHTTPConnection.__init__�sA��*��-�+�)�)�
���*���-�m�/�R���+��rLc��t|j|j�}t|jj
|jj|jjt|j���}t|j|||j|j��}|jj|�S)N�r>�host�port�target)�method�url�headers�content�
extensions)r%rBrwrrnr>rrrs�bytesrvr
ru�streamryrm�handle_request)rE�requestrwrv�
proxy_requests     rr|z$ForwardHTTPConnection.handle_request�s����� 3� 3�W�_�_�E����%�%�,�,��#�#�(�(��#�#�(�(�����%�	
�� ��>�>����N�N��)�)�
�
����.�.�}�=�=rLc� �||jk(Sr�rorWs  r�can_handle_requestz(ForwardHTTPConnection.can_handle_request������,�,�,�,rLc�8�|jj�yr�rm�close�rEs rr�zForwardHTTPConnection.close��������� rLc�6�|jj�Sr�rm�infor�s rr�zForwardHTTPConnection.info�������$�$�&�&rLc�6�|jj�Sr�rm�is_availabler�s rr�z"ForwardHTTPConnection.is_available�������,�,�.�.rLc�6�|jj�Sr�rm�has_expiredr�s rr�z!ForwardHTTPConnection.has_expired�������+�+�-�-rLc�6�|jj�Sr�rm�is_idler�s rr�zForwardHTTPConnection.is_idle�������'�'�)�)rLc�6�|jj�Sr�rm�	is_closedr�s rr�zForwardHTTPConnection.is_closed�������)�)�+�+rLc�X�d|jj�d|j��d�S�N�<z [z]>�rKrer�r�s r�__repr__zForwardHTTPConnection.__repr__��(���4�>�>�*�*�+�2�d�i�i�k�]�"�=�=rL)NNNNN)rNr	rOr	r8rZr,r]r/rar3rbrFr[rcrd�r}r
rcr�rQr	rcr^�rcrd�rc�str�rcr^�
rerfrgr<r|r�r�r�r�r�r�r�r��rLrrPrP�s���
FJ�)-�15�@D�37�,��,��,�C�	,�
'�,�/�
,�>�,�1�,�
�,�*>�"-�!�'�/�.�*�,�>rLrPc��eZdZ								d																					d
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Z	dd	�Z
dd
�Zdd�Zy)rTNc���t|||	|
|��|_||_||_||_||_t
|d��|_||_||_	||_
t�|_d|_
y)Nrlr8r5F)rrmrnror@rAr
rBrRrUrVr�
_connect_lock�
_connected)rErNrOr)rFr8r,r-r.r/r3s           rr<zTunnelHTTPConnection.__init__�sx��1?��-�+�)�)�1
���*���+���'���"3���-�m�/�R���!1���������!�V�����rLc�<�|jjdi�}|jdd�}|j5|j�s�d|jj
|jjfz}t|jj|jj
|jj|��}td|fdg|j�}td|||j��}|jj|�}|jd	ks|jd
kDre|jjdd�}	|	j!d
d��}
d|j|
fz}|jj#�t%|��|jd}|j&�
t)�n|j&}
|j*rddgndg}|
j-|�|
|jj
j!d
�|d�}t/dt0||�5}|j2di|��}||_ddd�|j7d�}|duxr|j9�dk(}|s|j*r7|j:s+ddlm}||j||j@��|_
n'tC|j||j@��|_
d|_ddd�|jj|�S#1swY��xYw#1swY�0xYw)N�timeout�connects%b:%drqsHost)sAccepts*/*sCONNECT)rurvrwry��i+�
reason_phraserL�ascii�ignore)�errorsz%d %s�network_streamzhttp/1.1�h2)r)�server_hostnamer��	start_tls�
ssl_objectr)�HTTP2Connection)rQr{r,Tr�)"ry�getr�r�rorrrsrrnr>r%rBr
rmr|�status�decoder�rr@rrV�set_alpn_protocolsr�loggerr��return_value�get_extra_info�selected_alpn_protocolrUr.r�rRr)rEr}�timeoutsr�rt�connect_url�connect_headers�connect_request�connect_response�reason_bytes�
reason_str�msgr{r)�alpn_protocols�kwargs�tracer��http2_negotiatedr�s                    rr|z#TunnelHTTPConnection.handle_request	s����%�%�)�)�)�R�8���,�,�y�$�/��
�
�
��?�?�!�T�%8�%8�%=�%=�t�?R�?R�?W�?W�$X�X��!��-�-�4�4��+�+�0�0��+�+�0�0�!�	��#0��v�&�(;�<�d�>Q�>Q�#��#*�%�#�+�&�1�1�	#��$(�#3�#3�#B�#B�#�$� �$�*�*�S�0�4D�4K�4K�c�4Q�#3�#>�#>�#B�#B�?�TW�#X�L�!-�!4�!4�W�X�!4�!N�J�!�%5�%<�%<�j�$I�I�C��$�$�*�*�,�$�S�/�)�)�4�4�5E�F��
�(�(�0�(�)��*�*��
8<�{�{�*�d�!3�����.�.�~�>�$/�'+�':�':�'?�'?�'F�'F�w�'O�&���
�;����@�E�-�V�-�-�7��7�F�)/�E�&�A�
$�2�2�<�@�
��d�*�D�"�9�9�;�t�C�!�$����D�K�K�6�'6�#�2�2�%�)-�)?�)?�(�D�$�(8�#�2�2�%�)-�)?�)?�(�D�$�#'���S �T���.�.�w�7�7�9A�@��] �
�s%�G)L�$L�>B%L�L	�L�Lc� �||jk(Srr�rWs  rr�z'TunnelHTTPConnection.can_handle_requestYr�rLc�8�|jj�yrr�r�s rr�zTunnelHTTPConnection.close\r�rLc�6�|jj�Srr�r�s rr�zTunnelHTTPConnection.info_r�rLc�6�|jj�Srr�r�s rr�z!TunnelHTTPConnection.is_availablebr�rLc�6�|jj�Srr�r�s rr�z TunnelHTTPConnection.has_expireder�rLc�6�|jj�Srr�r�s rr�zTunnelHTTPConnection.is_idlehr�rLc�6�|jj�Srr�r�s rr�zTunnelHTTPConnection.is_closedkr�rLc�X�d|jj�d|j��d�Sr�r�r�s rr�zTunnelHTTPConnection.__repr__nr�rL)NNNNTFNN)rNr	rOr	r)r[rFr[r8�+typing.Sequence[tuple[bytes, bytes]] | Noner,r]r-r^r.r^r/rar3rbrcrdr�r�r�r�r�r�r�rLrrTrT�s���
.2�37�EI�)-���15�@D� �� �� �+�	 �
1� �C�
 �'� �� �� �/� �>� �
� �>N8�`-�!�'�/�.�*�,�>rLrT)NN)r"r�r#r�rczlist[tuple[bytes, bytes]])0�
__future__rrC�logging�ssl�typing�_backends.baserr�_exceptionsr�_modelsrr	r
rrr
r�_sslr�_synchronizationr�_tracer�
connectionr�connection_poolr�http11r�
interfacesr�Unionrzr��	ByteOrStr�Sequence�Tuple�HeadersAsSequence�Mapping�HeadersAsMapping�	getLoggerr�r%r'rPrTr�rLr�<module>r�s���"�
��
�
�:�$����'�#��&�+�$�+��L�L����$�	��O�O�F�L�L��I�1E�$F�G���>�>�)�Y�"6�7��
��	�	�+�	,��DH�DH�.�@�.�A�.��.�&p
��p
�f=>�/�=>�@F>�.�F>rL