
    F2j                       U d Z ddlmZ ddlZddlZddlmZmZmZ ddl	m
Z
 ddlmZmZmZ ddlmZ dd	lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!  ej"        d
d          Z#de$d<    ej"        dd          Z%de$d<    ed          Z&de$d<   ej'        dddddddddddddddddbd:            Z(ej'        dddddddddddddddddcd=            Z(dddddded>ddddddeddddAZ(ej'        	 deddddddddddddBdfdE            Z)ej'        	 deddddddddddddBdgdF            Z)	 dhddded>dddddedBdidGZ)ej'        dddddddddddddHdjdJ            Z*ej'        ddddddddddddKdgdL            Z*dddded>dddddedHdidMZ*ej'        dddddddddddddHdjdN            Z+ej'        ddddddddddddKdgdO            Z+ddddedPdddddedHdidQZ+ej'        	 	 dkddddddddddddddRdldS            Z,ej'        	 	 dkdddddddddddddTdmdU            Z,	 	 dnddddded>dddddedRdodVZ,ej'        	 dedddddddddddddddWdldX            Z-ej'        	 deddddddddddddddYdmdZ            Z-	 dhdddddded>dddddedWdod[Z-ej'        	 dedddddddddddddddWdld\            Z.ej'        	 deddddddddddddddYdmd]            Z.	 dhdddddded>dddddedWdod^Z.ej'        dddddddddddddHdjd_            Z/ej'        ddddddddddddKdgd`            Z/dddded>dddddedHdidaZ/dS )pz
requests.api
~~~~~~~~~~~~

This module implements the Requests API.

:copyright: (c) 2012 by Kenneth Reitz.
:license: Apache2, see LICENSE for more details.
    )annotationsN   )DEFAULT_RETRIESREAD_DEFAULT_TIMEOUTWRITE_DEFAULT_TIMEOUT)AsyncSession)AsyncResponsePreparedRequestResponse)AsyncQuicSharedCache)AsyncBodyTypeAsyncHookTypeAsyncHttpAuthenticationTypeBodyTypeCacheLayerAltSvcTypeCookiesTypeHeadersTypeHttpAuthenticationTypeHttpMethodTypeMultiPartFilesAltTypeMultiPartFilesType	ProxyTypeQueryParameterType	RetryTypeTimeoutTypeTLSClientCertTypeTLSVerifyType
ocsp_cache)defaultz)contextvars.ContextVar[typing.Any | None]_SHARED_OCSP_CACHE	crl_cache_SHARED_CRL_CACHEi 0  )max_sizer   _SHARED_QUIC_CACHE.)paramsdataheaderscookiesfilesauthtimeoutallow_redirectsproxieshooksstreamverifycertjsonretriesmethodr   urlstrr%   QueryParameterType | Noner&   BodyType | AsyncBodyType | Noner'   HeadersType | Noner(   CookiesType | Noner)   1MultiPartFilesType | MultiPartFilesAltType | Noner*   ;HttpAuthenticationType | AsyncHttpAuthenticationType | Noner+   TimeoutType | Noner,   boolr-   ProxyType | Noner.   0AsyncHookType[PreparedRequest | Response] | Noner/   typing.Literal[False] | Noner0   TLSVerifyType | Noner1   TLSClientCertType | Noner2   typing.Any | Noner3   r   returnr   c               
   K   d S N r4   r5   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   s                    Z/home/thesage/.hermes/hermes-agent/venv/lib/python3.11/site-packages/niquests/async_api.pyrequestrK   -   s      ( s    typing.Literal[True]r	   c               
   K   d S rG   rH   rI   s                    rJ   rK   rK   D   s      ( CrL   Tbool | NoneResponse | AsyncResponsec               f  K   t          t          |dd          4 d{V 	 }t                                          |_        t
                                          |_        	 |                    | |||||||||	|
|||||           d{V 	 t                                          &|j        t                              |j                   t
                                          &|j        t
                              |j                   cddd          d{V  S # t                                          &|j        t                              |j                   t
                                          '|j        !t
                              |j                   w w w xY w# 1 d{V swxY w Y   dS )a  Constructs and sends a :class:`Request <Request>`. This does not keep the connection alive.
    Use an :class:`AsyncSession` to reuse the connection.

    :param method: method for the new :class:`Request` object: ``GET``, ``OPTIONS``, ``HEAD``, ``POST``, ``PUT``, ``PATCH``,
        or ``DELETE``.
    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the query string for the :class:`Request`.
    :param data: (optional) Dictionary, list of tuples, bytes, or file-like
        object to send in the body of the :class:`Request`.
    :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`.
    :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
    :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
    :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``)
        for multipart encoding upload.
        ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
        or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content_type'`` is a string
        defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
        to add for the file.
    :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
    :param timeout: (optional) How many seconds to wait for the server to send data
        before giving up, as a float, or a :ref:`(connect timeout, read
        timeout) <timeouts>` tuple.
    :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection.
            Defaults to ``True``.
    :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
    :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a path passed as a string or os.Pathlike object,
            in which case it must be a path to a CA bundle to use.
            Defaults to ``True``.
            It is also possible to put the certificates (directly) in a string or bytes.
    :param stream: (optional) if ``False``, the response content will be immediately downloaded. Otherwise, the response will
            be of type :class:`AsyncResponse <AsyncResponse>` so that it will be awaitable.
    :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair, or ('cert', 'key', 'key_password').
    :param hooks: (optional) Register functions that should be called at very specific moment in the request lifecycle.
    :param retries: (optional) If integer, determine the number of retry in case of a timeout or connection error.
            Otherwise, for fine gained retry, use directly a ``Retry`` instance from urllib3.
    :return: :class:`Response <Response>` object if stream=None or False. Otherwise :class:`AsyncResponse <AsyncResponse>`

    Usage::

      >>> import niquests
      >>> req = await niquests.arequest('GET', 'https://httpbin.org/get')
      >>> req
      <Response HTTP/2 [200]>
    N)quic_cache_layerr3   keepalive_delaykeepalive_idle_window)	r   r$   r    get_ocsp_cacher"   
_crl_cacherK   set)r4   r5   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   sessions                     rJ   rK   rK   [   sQ     N +Wdjn   : : : : : : : :	04466.2244	: !        & "%%''/G4G4S"&&w':;;; $$&&.73E3Q!%%g&89999: : : : : : : : : : : : : :2 "%%''/G4G4S"&&w':;;; $$&&.73E3Q!%%g&89999 /3Q7: : : : : : : : : : : : : : : :s+   =F  )D
A>F BFF  
F*-F*)r'   r(   r*   r+   r,   r-   r.   r0   r/   r1   r3   kwargs
typing.Anyc               
   K   d S rG   rH   r5   r%   r'   r(   r*   r+   r,   r-   r.   r0   r/   r1   r3   rZ   s                 rJ   rU   rU            " srL   c               
   K   d S rG   rH   r]   s                 rJ   rU   rU            " CrL   c               H   K   t          d| f||||||||	|
|||d| d{V S )a	  Sends a GET request. This does not keep the connection alive. Use an :class:`AsyncSession` to reuse the connection.

    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the query string for the :class:`Request`.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the query string for the :class:`Request`.
    :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
    :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
    :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
    :param timeout: (optional) How many seconds to wait for the server to send data
        before giving up, as a float, or a :ref:`(connect timeout, read
        timeout) <timeouts>` tuple.
    :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection.
            Defaults to ``True``.
    :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
    :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a path passed as a string or os.Pathlike object,
            in which case it must be a path to a CA bundle to use.
            Defaults to ``True``.
            It is also possible to put the certificates (directly) in a string or bytes.
    :param stream: (optional) if ``False``, the response content will be immediately downloaded. Otherwise, the response will
            be of type :class:`AsyncResponse <AsyncResponse>` so that it will be awaitable.
    :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair, or ('cert', 'key', 'key_password').
    :param hooks: (optional) Register functions that should be called at very specific moment in the request lifecycle.
    :param retries: (optional) If integer, determine the number of retry in case of a timeout or connection error.
            Otherwise, for fine gained retry, use directly a ``Retry`` instance from urllib3.
    :return: :class:`Response <Response>` object if stream=None or False. Otherwise :class:`AsyncResponse <AsyncResponse>`
    GETr%   r'   r(   r*   r+   r,   r-   r0   r/   r1   r.   r3   NrK   r]   s                 rJ   rU   rU      sy      ^  '          rL   )r%   r'   r(   r*   r+   r,   r-   r.   r0   r/   r1   r3   ,typing.Literal[False] | typing.Literal[None]c               
   K   d S rG   rH   r]   s                 rJ   optionsrg   +  r^   rL   )r%   r'   r(   r*   r+   r,   r-   r.   r0   r1   r3   c               
   K   d S rG   rH   r]   s                 rJ   rg   rg   ?  r`   rL   c               H   K   t          d| f||||||||	|
|||d| d{V S )a  Sends an OPTIONS request. This does not keep the connection alive. Use an :class:`AsyncSession` to reuse the connection.

    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the query string for the :class:`Request`.
    :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
    :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
    :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
    :param timeout: (optional) How many seconds to wait for the server to send data
        before giving up, as a float, or a :ref:`(connect timeout, read
        timeout) <timeouts>` tuple.
    :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection.
            Defaults to ``True``.
    :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
    :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a path passed as a string or os.Pathlike object,
            in which case it must be a path to a CA bundle to use.
            Defaults to ``True``.
            It is also possible to put the certificates (directly) in a string or bytes.
    :param stream: (optional) if ``False``, the response content will be immediately downloaded. Otherwise, the response will
            be of type :class:`AsyncResponse <AsyncResponse>` so that it will be awaitable.
    :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair, or ('cert', 'key', 'key_password').
    :param hooks: (optional) Register functions that should be called at very specific moment in the request lifecycle.
    :param retries: (optional) If integer, determine the number of retry in case of a timeout or connection error.
            Otherwise, for fine gained retry, use directly a ``Retry`` instance from urllib3.

    :return: :class:`Response <Response>` object if stream=None or False. Otherwise :class:`AsyncResponse <AsyncResponse>`
    OPTIONSrc   Nrd   r]   s                 rJ   rg   rg   S  sy      \  '          rL   c               
   K   d S rG   rH   r]   s                 rJ   headrl     r^   rL   c               
   K   d S rG   rH   r]   s                 rJ   rl   rl     r`   rL   Fc               H   K   t          d| f||||||||	|
|||d| d{V S )a  Sends a HEAD request. This does not keep the connection alive. Use an :class:`AsyncSession` to reuse the connection.

    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the query string for the :class:`Request`.
    :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
    :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
    :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
    :param timeout: (optional) How many seconds to wait for the server to send data
        before giving up, as a float, or a :ref:`(connect timeout, read
        timeout) <timeouts>` tuple.
    :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection.
            Defaults to ``False``.
    :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
    :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a path passed as a string or os.Pathlike object,
            in which case it must be a path to a CA bundle to use.
            Defaults to ``True``.
            It is also possible to put the certificates (directly) in a string or bytes.
    :param stream: (optional) if ``False``, the response content will be immediately downloaded. Otherwise, the response will
            be of type :class:`AsyncResponse <AsyncResponse>` so that it will be awaitable.
    :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair, or ('cert', 'key', 'key_password').
    :param hooks: (optional) Register functions that should be called at very specific moment in the request lifecycle.
    :param retries: (optional) If integer, determine the number of retry in case of a timeout or connection error.
            Otherwise, for fine gained retry, use directly a ``Retry`` instance from urllib3.

    :return: :class:`Response <Response>` object if stream=None or False. Otherwise :class:`AsyncResponse <AsyncResponse>`
    HEAD)r,   r%   r'   r(   r*   r+   r-   r0   r/   r1   r.   r3   Nrd   r]   s                 rJ   rl   rl     sy      \  (          rL   )r%   r'   r(   r)   r*   r+   r,   r-   r.   r0   r/   r1   r3   c               
   K   d S rG   rH   r5   r&   r2   r%   r'   r(   r)   r*   r+   r,   r-   r.   r0   r/   r1   r3   s                   rJ   postrr           & srL   )r%   r'   r(   r)   r*   r+   r,   r-   r.   r0   r1   r3   c               
   K   d S rG   rH   rq   s                   rJ   rr   rr           & CrL   c               J   K   t          d| f|||||||||	|
|||||d d{V S )a  Sends a POST request. This does not keep the connection alive. Use an :class:`AsyncSession` to reuse the connection.

    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the query string for the :class:`Request`.
    :param data: (optional) Dictionary, list of tuples, bytes, or (awaitable or not) file-like
        object to send in the body of the :class:`Request`.
    :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`.
    :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
    :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
    :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``)
        for multipart encoding upload.
        ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
        or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content_type'`` is a string
        defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
        to add for the file.
    :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
    :param timeout: (optional) How many seconds to wait for the server to send data
        before giving up, as a float, or a :ref:`(connect timeout, read
        timeout) <timeouts>` tuple.
    :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection.
            Defaults to ``True``.
    :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
    :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a path passed as a string or os.Pathlike object,
            in which case it must be a path to a CA bundle to use.
            Defaults to ``True``.
            It is also possible to put the certificates (directly) in a string or bytes.
    :param stream: (optional) if ``False``, the response content will be immediately downloaded. Otherwise, the response will
            be of type :class:`AsyncResponse <AsyncResponse>` so that it will be awaitable.
    :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair, or ('cert', 'key', 'key_password').
    :param hooks: (optional) Register functions that should be called at very specific moment in the request lifecycle.
    :param retries: (optional) If integer, determine the number of retry in case of a timeout or connection error.
            Otherwise, for fine gained retry, use directly a ``Retry`` instance from urllib3.

    :return: :class:`Response <Response>` object if stream=None or False. Otherwise :class:`AsyncResponse <AsyncResponse>`
    POST)r&   r2   r%   r'   r(   r)   r*   r+   r,   r-   r0   r/   r1   r.   r3   Nrd   rq   s                   rJ   rr   rr   )  sx      r  '#         rL   )r2   r%   r'   r(   r)   r*   r+   r,   r-   r.   r0   r/   r1   r3   c               
   K   d S rG   rH   rq   s                   rJ   putry   w  rs   rL   )r2   r%   r'   r(   r)   r*   r+   r,   r-   r.   r0   r1   r3   c               
   K   d S rG   rH   rq   s                   rJ   ry   ry     ru   rL   c               J   K   t          d| f|||||||||	|
|||||d d{V S )a  Sends a PUT request. This does not keep the connection alive. Use an :class:`AsyncSession` to reuse the connection.

    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the query string for the :class:`Request`.
    :param data: (optional) Dictionary, list of tuples, bytes, or (awaitable or not) file-like
        object to send in the body of the :class:`Request`.
    :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`.
    :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
    :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
    :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``)
        for multipart encoding upload.
        ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
        or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content_type'`` is a string
        defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
        to add for the file.
    :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
    :param timeout: (optional) How many seconds to wait for the server to send data
        before giving up, as a float, or a :ref:`(connect timeout, read
        timeout) <timeouts>` tuple.
    :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection.
            Defaults to ``True``.
    :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
    :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a path passed as a string or os.Pathlike object,
            in which case it must be a path to a CA bundle to use.
            Defaults to ``True``.
            It is also possible to put the certificates (directly) in a string or bytes.
    :param stream: (optional) if ``False``, the response content will be immediately downloaded. Otherwise, the response will
            be of type :class:`AsyncResponse <AsyncResponse>` so that it will be awaitable.
    :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair, or ('cert', 'key', 'key_password').
    :param hooks: (optional) Register functions that should be called at very specific moment in the request lifecycle.
    :param retries: (optional) If integer, determine the number of retry in case of a timeout or connection error.
            Otherwise, for fine gained retry, use directly a ``Retry`` instance from urllib3.

    :return: :class:`Response <Response>` object if stream=None or False. Otherwise :class:`AsyncResponse <AsyncResponse>`
    PUTr&   r%   r2   r'   r(   r)   r*   r+   r,   r-   r0   r/   r1   r.   r3   Nrd   rq   s                   rJ   ry   ry     sx      r  '#         rL   c               
   K   d S rG   rH   rq   s                   rJ   patchr     rs   rL   c               
   K   d S rG   rH   rq   s                   rJ   r   r     ru   rL   c               J   K   t          d| f|||||||||	|
|||||d d{V S )a  Sends a PATCH request. This does not keep the connection alive. Use an :class:`AsyncSession` to reuse the connection.

    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the query string for the :class:`Request`.
    :param data: (optional) Dictionary, list of tuples, bytes, or (awaitable or not) file-like
        object to send in the body of the :class:`Request`.
    :param json: (optional) A JSON serializable Python object to send in the body of the :class:`Request`.
    :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
    :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
    :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``)
        for multipart encoding upload.
        ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')``
        or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content_type'`` is a string
        defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers
        to add for the file.
    :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
    :param timeout: (optional) How many seconds to wait for the server to send data
        before giving up, as a float, or a :ref:`(connect timeout, read
        timeout) <timeouts>` tuple.
    :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection.
            Defaults to ``True``.
    :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
    :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a path passed as a string or os.Pathlike object,
            in which case it must be a path to a CA bundle to use.
            Defaults to ``True``.
            It is also possible to put the certificates (directly) in a string or bytes.
    :param stream: (optional) if ``False``, the response content will be immediately downloaded. Otherwise, the response will
            be of type :class:`AsyncResponse <AsyncResponse>` so that it will be awaitable.
    :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair, or ('cert', 'key', 'key_password').
    :param hooks: (optional) Register functions that should be called at very specific moment in the request lifecycle.
    :param retries: (optional) If integer, determine the number of retry in case of a timeout or connection error.
            Otherwise, for fine gained retry, use directly a ``Retry`` instance from urllib3.

    :return: :class:`Response <Response>` object if stream=None or False. Otherwise :class:`AsyncResponse <AsyncResponse>`
    PATCHr}   Nrd   rq   s                   rJ   r   r     sx      r  '#         rL   c               
   K   d S rG   rH   r]   s                 rJ   deleter   k  r^   rL   c               
   K   d S rG   rH   r]   s                 rJ   r   r     r`   rL   c               H   K   t          d| f||||||||	|
|||d| d{V S )a  Sends a DELETE request. This does not keep the connection alive. Use an :class:`AsyncSession` to reuse the connection.

    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the query string for the :class:`Request`.
    :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`.
    :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`.
    :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth.
    :param timeout: (optional) How many seconds to wait for the server to send data
        before giving up, as a float, or a :ref:`(connect timeout, read
        timeout) <timeouts>` tuple.
    :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection.
            Defaults to ``True``.
    :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy.
    :param verify: (optional) Either a boolean, in which case it controls whether we verify
            the server's TLS certificate, or a path passed as a string or os.Pathlike object,
            in which case it must be a path to a CA bundle to use.
            Defaults to ``True``.
            It is also possible to put the certificates (directly) in a string or bytes.
    :param stream: (optional) if ``False``, the response content will be immediately downloaded. Otherwise, the response will
            be of type :class:`AsyncResponse <AsyncResponse>` so that it will be awaitable.
    :param cert: (optional) if String, path to ssl client cert file (.pem).
            If Tuple, ('cert', 'key') pair, or ('cert', 'key', 'key_password').
    :param hooks: (optional) Register functions that should be called at very specific moment in the request lifecycle.
    :param retries: (optional) If integer, determine the number of retry in case of a timeout or connection error.
            Otherwise, for fine gained retry, use directly a ``Retry`` instance from urllib3.

    :return: :class:`Response <Response>` object if stream=None or False. Otherwise :class:`AsyncResponse <AsyncResponse>`
    DELETErc   Nrd   r]   s                 rJ   r   r     sy      \  '          rL   )$r4   r   r5   r6   r%   r7   r&   r8   r'   r9   r(   r:   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r.   r@   r/   rA   r0   rB   r1   rC   r2   rD   r3   r   rE   r   )$r4   r   r5   r6   r%   r7   r&   r8   r'   r9   r(   r:   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r.   r@   r/   rM   r0   rB   r1   rC   r2   rD   r3   r   rE   r	   )$r4   r   r5   r6   r%   r7   r&   r8   r'   r9   r(   r:   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r.   r@   r/   rO   r0   rB   r1   rC   r2   rD   r3   r   rE   rP   ).)r5   r6   r%   r7   r'   r9   r(   r:   r*   r<   r+   r=   r,   r>   r-   r?   r.   r@   r0   rB   r/   rA   r1   rC   r3   r   rZ   r[   rE   r   )r5   r6   r%   r7   r'   r9   r(   r:   r*   r<   r+   r=   r,   r>   r-   r?   r.   r@   r0   rB   r/   rM   r1   rC   r3   r   rZ   r[   rE   r	   rG   )r5   r6   r%   r7   r'   r9   r(   r:   r*   r<   r+   r=   r,   r>   r-   r?   r.   r@   r0   rB   r/   rO   r1   rC   r3   r   rZ   r[   rE   rP   )r5   r6   r%   r7   r'   r9   r(   r:   r*   r<   r+   r=   r,   r>   r-   r?   r.   r@   r0   rB   r/   re   r1   rC   r3   r   rZ   r[   rE   r   )..)"r5   r6   r&   r8   r2   rD   r%   r7   r'   r9   r(   r:   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r.   r@   r0   rB   r/   re   r1   rC   r3   r   rE   r   )"r5   r6   r&   r8   r2   rD   r%   r7   r'   r9   r(   r:   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r.   r@   r0   rB   r/   rM   r1   rC   r3   r   rE   r	   )NN)"r5   r6   r&   r8   r2   rD   r%   r7   r'   r9   r(   r:   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r.   r@   r0   rB   r/   rO   r1   rC   r3   r   rE   rP   )0__doc__
__future__r   contextvarstyping	_constantr   r   r   async_sessionr   modelsr	   r
   r   
structuresr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
ContextVarr    __annotations__r"   r$   overloadrK   rU   rg   rl   rr   ry   r   r   rH   rL   rJ   <module>r      s	     # " " " " "      S S S S S S S S S S ' ' ' ' ' ' < < < < < < < < < < , , , , , ,                                     ( AW@VWcmq@r@r@r  r r r r?U{?UVako?p?p?p  p p p p+?+?+P+P+P  P P P P 
 ),,/"%"%?BHK"% #>A+.#&%(!%     , 
 ),,/"%"%?BHK"% #>A#&#&%(!%     4 )-,0"&"&?CHL"7  $>B#'%)"(%c: c: c: c: c: c:L  ), #&"%HK"% #>A#&+.%(     &  ), #&"%HK"% #>A#&#&%(     * )-? #'"&HL"6  $>B#'%)(? ? ? ? ? ?D  ),"%"%HK"% #>A#&;>%(     &  ),"%"%HK"% #>A#&%(     , )-"&"&HL"6  $>B#'%)(> > > > > >B  ),"%"%HK"% #>A#&;>%(     &  ),"%"%HK"% #>A#&%(     , )-"&"&HL"6! $>B#'%)(> > > > > >B  -0!
 ),"%"%?BHK"% #>A#&;>%(#     *  -0!
 ),"%"%?BHK"% #>A#&%(#     . -1"K
 )-"&"&?CHL"7  $>B#'%)(#K K K K K K\  -0 "(+"%"%?BHK"% #>A#&;>%(#     *  -0 "(+"%"%?BHK"% #>A#&%(#     . -1K #(,"&"&?CHL"7  $>B#'%)(#K K K K K K\  -0 "(+"%"%?BHK"% #>A#&;>%(#     *  -0 "(+"%"%?BHK"% #>A#&%(#     . -1K #(,"&"&?CHL"7  $>B#'%)(#K K K K K K\  ),"%"%HK"% #>A#&;>%(     &  ),"%"%HK"% #>A#&%(     , )-"&"&HL"7  $>B#'%)(> > > > > > > >rL   