HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/requests_toolbelt/adapters/__pycache__/source.cpython-310.pyc
o

IqOZ0
�@s4dZddlmZddlmZmZGdd�de�ZdS)z�
requests_toolbelt.source_adapter
================================

This file contains an implementation of the SourceAddressAdapter originally
demonstrated on the Requests GitHub page.
�)�HTTPAdapter�)�poolmanager�
basestringcs6eZdZdZ�fdd�Zd	dd�Z�fdd�Z�ZS)
�SourceAddressAdaptera:
    A Source Address Adapter for Python Requests that enables you to choose the
    local address to bind to. This allows you to send your HTTP requests from a
    specific interface and IP address.

    Two address formats are accepted. The first is a string: this will set the
    local IP address to the address given in the string, and will also choose a
    semi-random high port for the local port number.

    The second is a two-tuple of the form (ip address, port): for example,
    ``('10.10.10.10', 8999)``. This will set the local IP address to the first
    element, and the local port to the second element. If ``0`` is used as the
    port number, a semi-random high port will be selected.

    .. warning:: Setting an explicit local port can have negative interactions
                 with connection-pooling in Requests: in particular, it risks
                 the possibility of getting "Address in use" errors. The
                 string-only argument is generally preferred to the tuple-form.

    Example usage:

    .. code-block:: python

        import requests
        from requests_toolbelt.adapters.source import SourceAddressAdapter

        s = requests.Session()
        s.mount('http://', SourceAddressAdapter('10.10.10.10'))
        s.mount('https://', SourceAddressAdapter(('10.10.10.10', 8999)))
    csJt|t�r|df|_n
t|t�r||_ntd��tt|�jdi|��dS)Nrz<source_address must be IP address string or (ip, port) tuple�)�
isinstancer�source_address�tuple�	TypeError�superr�__init__)�selfr	�kwargs��	__class__r�C/usr/lib/python3/dist-packages/requests_toolbelt/adapters/source.pyr
-s

�zSourceAddressAdapter.__init__FcCstj||||jd�|_dS)N)�	num_pools�maxsize�blockr	)r�PoolManagerr	)r�connectionsrrrrr�init_poolmanager9s�z%SourceAddressAdapter.init_poolmanagercs |j|d<tt|�j|i|��S)Nr	)r	rr�proxy_manager_for)r�argsrrrrr@s

��z&SourceAddressAdapter.proxy_manager_for)F)�__name__�
__module__�__qualname__�__doc__r
rr�
__classcell__rrrrrs

rN)r�requests.adaptersr�_compatrrrrrrr�<module>s