o
    h	                     @  st   d dl mZ d dlZd dlmZ ddlmZmZ ejdddZ	ejd	d
dZ
d
dgZG dd dZG dd
 d
ZdS )    )annotationsN)TracebackType   )RequestResponseTBaseTransport)boundAAsyncBaseTransportc                   @  <   e Zd ZdddZ			ddddZdddZdddZdS )r   selfr   returnc                 C  s   | S N r   r   r   j/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/httpx/_transports/base.py	__enter__      zBaseTransport.__enter__Nexc_typetype[BaseException] | None	exc_valueBaseException | None	tracebackTracebackType | NoneNonec                 C  s   |    d S r   )closer   r   r   r   r   r   r   __exit__   s   zBaseTransport.__exit__requestr   r   c                 C  s   t d)aT  
        Send a single HTTP request and return a response.

        Developers shouldn't typically ever need to call into this API directly,
        since the Client class provides all the higher level user-facing API
        niceties.

        In order to properly release any network resources, the response
        stream should *either* be consumed immediately, with a call to
        `response.stream.read()`, or else the `handle_request` call should
        be followed with a try/finally block to ensuring the stream is
        always closed.

        Example usage:

            with httpx.HTTPTransport() as transport:
                req = httpx.Request(
                    method=b"GET",
                    url=(b"https", b"www.example.com", 443, b"/"),
                    headers=[(b"Host", b"www.example.com")],
                )
                resp = transport.handle_request(req)
                body = resp.stream.read()
                print(resp.status_code, resp.headers, body)


        Takes a `Request` instance as the only argument.

        Returns a `Response` instance.
        z0The 'handle_request' method must be implemented.NotImplementedErrorr   r   r   r   r   handle_request   s   zBaseTransport.handle_requestc                 C  s   d S r   r   r   r   r   r   r   =   r   zBaseTransport.close)r   r   r   r   NNNr   r   r   r   r   r   r   r   r   r   r   r   r   r   )__name__
__module____qualname__r   r   r#   r   r   r   r   r   r      s    

#c                   @  r   )r   r   r
   r   c                   s   | S r   r   r   r   r   r   
__aenter__B      zAsyncBaseTransport.__aenter__Nr   r   r   r   r   r   r   c                   s   |   I d H  d S r   )acloser   r   r   r   	__aexit__E   s   zAsyncBaseTransport.__aexit__r   r   r   c                   s
   t d)Nz6The 'handle_async_request' method must be implemented.r    r"   r   r   r   handle_async_requestM   s   z'AsyncBaseTransport.handle_async_requestc                   s   d S r   r   r   r   r   r   r-   U   r,   zAsyncBaseTransport.aclose)r   r
   r   r
   r$   r%   r&   r'   )r(   r)   r*   r+   r.   r/   r-   r   r   r   r   r   A   s    

)
__future__r   typingtypesr   _modelsr   r   TypeVarr   r
   __all__r   r   r   r   r   r   <module>   s    3