a
    ^g0
                     @   s4   d Z ddlmZ ddlmZmZ G dd deZdS )z
requests_toolbelt.source_adapter
================================

This file contains an implementation of the SourceAddressAdapter originally
demonstrated on the Requests GitHub page.
    )HTTPAdapter   )poolmanager
basestringc                       s6   e Zd ZdZ fddZd	ddZ fddZ  ZS )
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)))
    c                    sJ   t |tr|df| _nt |tr(|| _ntdtt| jf i | d S )Nr   z<source_address must be IP address string or (ip, port) tuple)
isinstancer   source_addresstuple	TypeErrorsuperr   __init__)selfr   kwargs	__class__ o/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/requests_toolbelt/adapters/source.pyr   -   s    

zSourceAddressAdapter.__init__Fc                 C   s   t j|||| jd| _ d S )N)	num_poolsmaxsizeblockr   )r   PoolManagerr   )r   connectionsr   r   r   r   r   init_poolmanager9   s    z%SourceAddressAdapter.init_poolmanagerc                    s    | j |d< tt| j|i |S )Nr   )r   r   r   proxy_manager_for)r   argsr   r   r   r   r   @   s    

z&SourceAddressAdapter.proxy_manager_for)F)__name__
__module____qualname____doc__r   r   r   __classcell__r   r   r   r   r      s   
r   N)r   Zrequests.adaptersr   Z_compatr   r   r   r   r   r   r   <module>   s   