a
    |f_                  	   @   s   d dl mZ d dlmZmZmZ ddlmZmZm	Z	m
Z
 ddlmZ ddddeeef eeeef e	eeee df ee e
dd	d
Zeddddeeef eeeef e	eeee df ee ee
 dddZdS )    )contextmanager)IteratorOptionalUnion   )URL
ExtensionsHeaderTypesResponse)ConnectionPoolN)headerscontent
extensions)methodurlr   r   r   returnc                C   s>   t  $}|j| ||||dW  d   S 1 s00    Y  dS )aT  
    Sends an HTTP request, returning the response.

    ```
    response = httpcore.request("GET", "https://www.example.com/")
    ```

    Arguments:
        method: The HTTP method for the request. Typically one of `"GET"`,
            `"OPTIONS"`, `"HEAD"`, `"POST"`, `"PUT"`, `"PATCH"`, or `"DELETE"`.
        url: The URL of the HTTP request. Either as an instance of `httpcore.URL`,
            or as str/bytes.
        headers: The HTTP request headers. Either as a dictionary of str/bytes,
            or as a list of two-tuples of str/bytes.
        content: The content of the request body. Either as bytes,
            or as a bytes iterator.
        extensions: A dictionary of optional extra information included on the request.
            Possible keys include `"timeout"`.

    Returns:
        An instance of `httpcore.Response`.
    r   r   r   r   r   N)r   request)r   r   r   r   r   pool r   GD:\Projects\storyit_web\backend\venv\Lib\site-packages\httpcore/_api.pyr      s    r   c             	   c   sd   t  J}|j| ||||d}|V  W d   n1 s80    Y  W d   n1 sV0    Y  dS )ao  
    Sends an HTTP request, returning the response within a content manager.

    ```
    with httpcore.stream("GET", "https://www.example.com/") as response:
        ...
    ```

    When using the `stream()` function, the body of the response will not be
    automatically read. If you want to access the response body you should
    either use `content = response.read()`, or `for chunk in response.iter_content()`.

    Arguments:
        method: The HTTP method for the request. Typically one of `"GET"`,
            `"OPTIONS"`, `"HEAD"`, `"POST"`, `"PUT"`, `"PATCH"`, or `"DELETE"`.
        url: The URL of the HTTP request. Either as an instance of `httpcore.URL`,
            or as str/bytes.
        headers: The HTTP request headers. Either as a dictionary of str/bytes,
            or as a list of two-tuples of str/bytes.
        content: The content of the request body. Either as bytes,
            or as a bytes iterator.
        extensions: A dictionary of optional extra information included on the request.
            Possible keys include `"timeout"`.

    Returns:
        An instance of `httpcore.Response`.
    r   N)r   stream)r   r   r   r   r   r   responser   r   r   r   0   s    $r   )
contextlibr   typingr   r   r   Z_modelsr   r   r	   r
   Z_sync.connection_poolr   bytesstrr   r   r   r   r   r   <module>   s4   
(
