Ë
    ±Œj0
  ã                   ó:   — d Z ddlmZ ddlmZmZ  G d„ de«      Zy)zº
requests_toolbelt.source_adapter
================================

This file contains an implementation of the SourceAddressAdapter originally
demonstrated on the Requests GitHub page.
é    )ÚHTTPAdapteré   )ÚpoolmanagerÚ
basestringc                   ó4   ‡ — e Zd ZdZˆ fd„Zdd„Zˆ fd„Zˆ x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                 ó¦   •— t        |t        «      r
|df| _        n#t        |t        «      r|| _        nt	        d«      ‚t        t        | �  di |¤Ž y )Nr   z<source_address must be IP address string or (ip, port) tuple© )Ú
isinstancer   Úsource_addressÚtupleÚ	TypeErrorÚsuperr   Ú__init__)Úselfr   ÚkwargsÚ	__class__s      €úk/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/requests_toolbelt/adapters/source.pyr   zSourceAddressAdapter.__init__-   sQ   ø€ Ü�n¤jÔ1Ø#1°1Ð"5ˆDÕÜ˜¬Ô.Ø"0ˆDÕäØNóð ô 	Ô" DÑ2Ñ<°VÓ<ó    c                 óT   — t        j                  |||| j                  ¬«      | _         y )N)Ú	num_poolsÚmaxsizeÚblockr   )r   ÚPoolManagerr   )r   Úconnectionsr   r   s       r   Úinit_poolmanagerz%SourceAddressAdapter.init_poolmanager9   s'   € Ü&×2Ñ2Ø!ØØØ×.Ñ.ô	0ˆÕr   c                 óH   •— | j                   |d<   t        t        | �  |i |¤ŽS )Nr   )r   r   r   Úproxy_manager_for)r   Úargsr   r   s      €r   r   z&SourceAddressAdapter.proxy_manager_for@   s4   ø€ Ø#'×#6Ñ#6ˆÐÑ ÜÔ)¨4ÑBØðØñð 	r   )F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   Ú__classcell__)r   s   @r   r   r      s   ø„ ñô<
=ó0÷ð r   r   N)r#   Úrequests.adaptersr   Ú_compatr   r   r   r
   r   r   Ú<module>r'      s   ðñõ *ç -ô5˜;õ 5r   