o
    .j                     @  s4  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dZ#de$d< ej"dddZ%de$d< eddZ&de$d< ej'dddddddddddddddddjd:d;Z(ej'dddddddddddddddddkd>d;Z(dddddded?ddddddeddldBd;Z(ej'	dmddddddddddddCdndFdGZ)ej'	dmddddddddddddCdodHdGZ)	dpddded?dddddedCdqdIdGZ)ej'dddddddddddddJdrdLdMZ*ej'ddddddddddddNdodOdMZ*dddded?dddddedJdqdPdMZ*ej'dddddddddddddJdrdQdRZ+ej'ddddddddddddNdodSdRZ+ddddedTdddddedJdqdUdRZ+ej'		dsddddddddddddddVdtdWdXZ,ej'		dsdddddddddddddYdudZdXZ,		dvddddded?dddddedVdwd[dXZ,ej'	dmddddddddddddddd\dtd]d^Z-ej'	dmdddddddddddddd_dud`d^Z-	dpdddddded?ddddded\dwdad^Z-ej'	dmddddddddddddddd\dtdbdcZ.ej'	dmdddddddddddddd_dudddcZ.	dpdddddded?ddddded\dwdedcZ.ej'dddddddddddddJdrdfdgZ/ej'ddddddddddddNdodhdgZ/dddded?dddddedJdqdidgZ/dS )xz
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] | Noner/   TLSVerifyType | Noner0   TLSClientCertType | Noner1   typing.Any | Noner2   r   returnr
   c                     d S N r3   r4   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   rG   rG   G/home/thesage/.local/lib/python3.10/site-packages/niquests/async_api.pyrequest-      rJ   typing.Literal[True]r   c                  rE   rF   rG   rH   rG   rG   rI   rJ   D   rK   Tbool | NoneResponse | AsyncResponsec                  s  t t|ddd4 I dH u}t |_t |_zD|| |||||||||	|
|||||I dH W t du rA|jdurAt|j t du rR|jdurRt|j W  d  I dH  S t du rn|jdurnt|j t du r|jdurt|j w w w 1 I dH sw   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_layerr2   keepalive_delaykeepalive_idle_window)	r   r#   r   get_ocsp_cacher!   
_crl_cacherJ   set)r3   r4   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   sessionrG   rG   rI   rJ   [   sJ   G


)r&   r'   r)   r*   r+   r,   r-   r/   r.   r0   r2   kwargs
typing.Anyc                  rE   rF   rG   r4   r$   r&   r'   r)   r*   r+   r,   r-   r/   r.   r0   r2   rW   rG   rG   rI   rR         rR   c                  rE   rF   rG   rY   rG   rG   rI   rR      rZ   c                  4   t d| f||||||||	|
|||d|I dH 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,   r/   r.   r0   r-   r2   NrJ   rY   rG   rG   rI   rR      s(   /)r$   r&   r'   r)   r*   r+   r,   r-   r/   r.   r0   r2   ,typing.Literal[False] | typing.Literal[None]c                  rE   rF   rG   rY   rG   rG   rI   options+  rZ   r`   )r$   r&   r'   r)   r*   r+   r,   r-   r/   r0   r2   c                  rE   rF   rG   rY   rG   rG   rI   r`   ?  rZ   c                  r[   )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>`
    OPTIONSr]   Nr^   rY   rG   rG   rI   r`   S  (   .c                  rE   rF   rG   rY   rG   rG   rI   head  rZ   rc   c                  rE   rF   rG   rY   rG   rG   rI   rc     rZ   Fc                  s4   t d| f||||||||	|
|||d|I dH 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,   r/   r.   r0   r-   r2   Nr^   rY   rG   rG   rI   rc     rb   )r$   r&   r'   r(   r)   r*   r+   r,   r-   r/   r.   r0   r2   c                  rE   rF   rG   r4   r%   r1   r$   r&   r'   r(   r)   r*   r+   r,   r-   r/   r.   r0   r2   rG   rG   rI   post     rf   )r$   r&   r'   r(   r)   r*   r+   r,   r-   r/   r0   r2   c                  rE   rF   rG   re   rG   rG   rI   rf     rg   c                  s6   t d| f|||||||||	|
|||||dI dH 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%   r1   r$   r&   r'   r(   r)   r*   r+   r,   r/   r.   r0   r-   r2   Nr^   re   rG   rG   rI   rf   )  *   9)r1   r$   r&   r'   r(   r)   r*   r+   r,   r-   r/   r.   r0   r2   c                  rE   rF   rG   re   rG   rG   rI   putw  rg   rj   )r1   r$   r&   r'   r(   r)   r*   r+   r,   r-   r/   r0   r2   c                  rE   rF   rG   re   rG   rG   rI   rj     rg   c                  6   t d| f|||||||||	|
|||||dI dH 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$   r1   r&   r'   r(   r)   r*   r+   r,   r/   r.   r0   r-   r2   Nr^   re   rG   rG   rI   rj     ri   c                  rE   rF   rG   re   rG   rG   rI   patch  rg   rn   c                  rE   rF   rG   re   rG   rG   rI   rn     rg   c                  rk   )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>`
    PATCHrm   Nr^   re   rG   rG   rI   rn     ri   c                  rE   rF   rG   rY   rG   rG   rI   deletek  rZ   rp   c                  rE   rF   rG   rY   rG   rG   rI   rp     rZ   c                  r[   )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>`
    DELETEr]   Nr^   rY   rG   rG   rI   rp     rb   )$r3   r   r4   r5   r$   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   r   rD   r
   )$r3   r   r4   r5   r$   r6   r%   r7   r&   r8   r'   r9   r(   r:   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r.   rL   r/   rA   r0   rB   r1   rC   r2   r   rD   r   )$r3   r   r4   r5   r$   r6   r%   r7   r&   r8   r'   r9   r(   r:   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r.   rM   r/   rA   r0   rB   r1   rC   r2   r   rD   rN   ).)r4   r5   r$   r6   r&   r8   r'   r9   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r/   rA   r.   r@   r0   rB   r2   r   rW   rX   rD   r
   )r4   r5   r$   r6   r&   r8   r'   r9   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r/   rA   r.   rL   r0   rB   r2   r   rW   rX   rD   r   rF   )r4   r5   r$   r6   r&   r8   r'   r9   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r/   rA   r.   rM   r0   rB   r2   r   rW   rX   rD   rN   )r4   r5   r$   r6   r&   r8   r'   r9   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r/   rA   r.   r_   r0   rB   r2   r   rW   rX   rD   r
   )..)"r4   r5   r%   r7   r1   rC   r$   r6   r&   r8   r'   r9   r(   r:   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r/   rA   r.   r_   r0   rB   r2   r   rD   r
   )"r4   r5   r%   r7   r1   rC   r$   r6   r&   r8   r'   r9   r(   r:   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r/   rA   r.   rL   r0   rB   r2   r   rD   r   )NN)"r4   r5   r%   r7   r1   rC   r$   r6   r&   r8   r'   r9   r(   r:   r)   r;   r*   r<   r+   r=   r,   r>   r-   r?   r/   rA   r.   rM   r0   rB   r2   r   rD   rN   )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#   overloadrJ   rR   r`   rc   rf   rj   rn   rp   rG   rG   rG   rI   <module>   s   
LfBAANNN