ó
    úÞ j  ã                   óB   • S SK r SSKJr   " S S\ R                  5      rg)é    Né   )Úurljoinc                   óR   ^ • \ rS rSrSrSrS	U 4S jjrU 4S jrU 4S jrS r	Sr
U =r$ )
ÚBaseUrlSessioné   aÉ  A Session with a URL that all requests will use as a base.

Let's start by looking at a few examples:

.. code-block:: python

    >>> from requests_toolbelt import sessions
    >>> s = sessions.BaseUrlSession(
    ...     base_url='https://example.com/resource/')
    >>> r = s.get('sub-resource/', params={'foo': 'bar'})
    >>> print(r.request.url)
    https://example.com/resource/sub-resource/?foo=bar

Our call to the ``get`` method will make a request to the URL passed in
when we created the Session and the partial resource name we provide.
We implement this by overriding the ``request`` method of the Session.

Likewise, we override the ``prepare_request`` method so you can construct
a PreparedRequest in the same way:

.. code-block:: python

    >>> from requests import Request
    >>> from requests_toolbelt import sessions
    >>> s = sessions.BaseUrlSession(
    ...     base_url='https://example.com/resource/')
    >>> request = Request(method='GET', url='sub-resource/')
    >>> prepared_request = s.prepare_request(request)
    >>> r = s.send(prepared_request)
    >>> print(r.request.url)
    https://example.com/resource/sub-resource

.. note::

    The base URL that you provide and the path you provide are **very**
    important.

Let's look at another *similar* example

.. code-block:: python

    >>> from requests_toolbelt import sessions
    >>> s = sessions.BaseUrlSession(
    ...     base_url='https://example.com/resource/')
    >>> r = s.get('/sub-resource/', params={'foo': 'bar'})
    >>> print(r.request.url)
    https://example.com/sub-resource/?foo=bar

The key difference here is that we called ``get`` with ``/sub-resource/``,
i.e., there was a leading ``/``. This changes how we create the URL
because we rely on :mod:`urllib.parse.urljoin`.

To override how we generate the URL, sub-class this method and override the
``create_url`` method.

Based on implementation from
https://github.com/kennethreitz/requests/issues/2554#issuecomment-109341010
Nc                 óD   >• U(       a  Xl         [        [        U ]  5         g ©N)Úbase_urlÚsuperr   Ú__init__)Úselfr
   Ú	__class__s     €ÚT/var/www/html/gaurav/venv/lib/python3.13/site-packages/requests_toolbelt/sessions.pyr   ÚBaseUrlSession.__init__D   s   ø€ ÞØ$ŒMÜŒn˜dÑ,Õ.ó    c                 óV   >• U R                  U5      n[        [        U ]  " X/UQ70 UD6$ )z3Send the request after generating the complete URL.)Ú
create_urlr   r   Úrequest)r   ÚmethodÚurlÚargsÚkwargsr   s        €r   r   ÚBaseUrlSession.requestI   s8   ø€ à�o‰o˜cÓ"ˆÜ”^ TÒ2Øð
Øò
Ø"(ñ
ð 	
r   c                 ót   >• U R                  UR                  5      Ul        [        [        U ]  " U/UQ70 UD6$ )z6Prepare the request after generating the complete URL.)r   r   r   r   Úprepare_request)r   r   r   r   r   s       €r   r   ÚBaseUrlSession.prepare_requestP   s>   ø€ à—o‘o g§k¡kÓ2ˆŒÜ”^ TÒ:Øð
Øò
Ø$ñ
ð 	
r   c                 ó.   • [        U R                  U5      $ )z+Create the URL based off this partial path.)r   r
   )r   r   s     r   r   ÚBaseUrlSession.create_urlW   s   € ä�t—}‘} cÓ*Ð*r   )r
   r	   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r
   r   r   r   r   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r      s)   ø† ñ9ðv €H÷/õ

õ
÷+ð +r   r   )ÚrequestsÚ_compatr   ÚSessionr   © r   r   Ú<module>r*      s   ðÛ å ôS+�X×%Ñ%õ S+r   