o
    hO!                     @  s  d Z ddlmZ ddlZddlZejrddlmZmZ g dZ	G dd de
ZG d	d
 d
eZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZG d!d" d"eZG d#d$ d$eZG d%d& d&eZG d'd( d(eZG d)d* d*eZG d+d, d,eZG d-d. d.eZG d/d0 d0eZG d1d2 d2e
Z G d3d4 d4e
Z!G d5d6 d6e"Z#G d7d8 d8e#Z$G d9d: d:e#Z%G d;d< d<e#Z&G d=d> d>e#Z'ej(	dEdFdCdDZ)dS )Gul  
Our exception hierarchy:

* HTTPError
  x RequestError
    + TransportError
      - TimeoutException
        · ConnectTimeout
        · ReadTimeout
        · WriteTimeout
        · PoolTimeout
      - NetworkError
        · ConnectError
        · ReadError
        · WriteError
        · CloseError
      - ProtocolError
        · LocalProtocolError
        · RemoteProtocolError
      - ProxyError
      - UnsupportedProtocol
    + DecodingError
    + TooManyRedirects
  x HTTPStatusError
* InvalidURL
* CookieConflict
* StreamError
  x StreamConsumed
  x StreamClosed
  x ResponseNotRead
  x RequestNotRead
    )annotationsN   )RequestResponse)
CloseErrorConnectErrorConnectTimeoutCookieConflictDecodingError	HTTPErrorHTTPStatusError
InvalidURLLocalProtocolErrorNetworkErrorPoolTimeoutProtocolError
ProxyError	ReadErrorReadTimeoutRemoteProtocolErrorRequestErrorRequestNotReadResponseNotReadStreamClosedStreamConsumedStreamErrorTimeoutExceptionTooManyRedirectsTransportErrorUnsupportedProtocol
WriteErrorWriteTimeoutc                      s@   e Zd ZdZd fddZedd	d
Zejddd
Z  ZS )r   a  
    Base class for `RequestError` and `HTTPStatusError`.

    Useful for `try...except` blocks when issuing a request,
    and then calling `.raise_for_status()`.

    For example:

    ```
    try:
        response = httpx.get("https://www.example.com")
        response.raise_for_status()
    except httpx.HTTPError as exc:
        print(f"HTTP Exception for {exc.request.url} - {exc}")
    ```
    messagestrreturnNonec                   s   t  | d | _d S Nsuper__init___requestselfr"   	__class__ e/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/httpx/_exceptions.pyr)   \   s   
zHTTPError.__init__r   c                 C  s   | j d u r	td| j S )Nz'The .request property has not been set.)r*   RuntimeError)r,   r/   r/   r0   request`   s   
zHTTPError.requestr2   c                 C  s
   || _ d S r&   )r*   )r,   r2   r/   r/   r0   r2   f   s   
r"   r#   r$   r%   )r$   r   )r2   r   r$   r%   )	__name__
__module____qualname____doc__r)   propertyr2   setter__classcell__r/   r/   r-   r0   r   J   s    r   c                      s(   e Zd ZdZddd fd
dZ  ZS )r   zS
    Base class for all exceptions that may occur when issuing a `.request()`.
    N)r2   r"   r#   r2   Request | Noner$   r%   c                  s   t  | || _d S r&   r'   )r,   r"   r2   r-   r/   r0   r)   p   s   
zRequestError.__init__)r"   r#   r2   r;   r$   r%   r4   r5   r6   r7   r)   r:   r/   r/   r-   r0   r   k   s    r   c                   @     e Zd ZdZdS )r   zU
    Base class for all exceptions that occur at the level of the Transport API.
    Nr4   r5   r6   r7   r/   r/   r/   r0   r   {       r   c                   @  r=   )r   zM
    The base class for timeout errors.

    An operation has timed out.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r   z1
    Timed out while connecting to the host.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r   z7
    Timed out while receiving data from the host.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r!   z3
    Timed out while sending data to the host.
    Nr>   r/   r/   r/   r0   r!      r?   r!   c                   @  r=   )r   zB
    Timed out waiting to acquire a connection from the pool.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r   zo
    The base class for network-related errors.

    An error occurred while interacting with the network.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r   z2
    Failed to receive data from the network.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r    z2
    Failed to send data through the network.
    Nr>   r/   r/   r/   r0   r       r?   r    c                   @  r=   )r   z+
    Failed to establish a connection.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r   z'
    Failed to close a connection.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r   zB
    An error occurred while establishing a proxy connection.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r   z
    Attempted to make a request to an unsupported protocol.

    For example issuing a request to `ftp://www.example.com`.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r   z$
    The protocol was violated.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r   z
    A protocol was violated by the client.

    For example if the user instantiated a `Request` instance explicitly,
    failed to include the mandatory `Host:` header, and then issued it directly
    using `client.send()`.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r   z^
    The protocol was violated by the server.

    For example, returning malformed HTTP.
    Nr>   r/   r/   r/   r0   r      r?   r   c                   @  r=   )r
   zG
    Decoding of the response failed, due to a malformed encoding.
    Nr>   r/   r/   r/   r0   r
      r?   r
   c                   @  r=   )r   z
    Too many redirects.
    Nr>   r/   r/   r/   r0   r      r?   r   c                      s"   e Zd ZdZd fd
dZ  ZS )r   z|
    The response had an error HTTP status of 4xx or 5xx.

    May be raised when calling `response.raise_for_status()`
    r"   r#   r2   r   responser   r$   r%   c                  s   t  | || _|| _d S r&   )r(   r)   r2   r@   )r,   r"   r2   r@   r-   r/   r0   r)   	  s   
zHTTPStatusError.__init__)r"   r#   r2   r   r@   r   r$   r%   r<   r/   r/   r-   r0   r         r   c                      "   e Zd ZdZd fddZ  ZS )	r   z7
    URL is improperly formed or cannot be parsed.
    r"   r#   r$   r%   c                      t  | d S r&   r(   r)   r+   r-   r/   r0   r)        zInvalidURL.__init__r3   r<   r/   r/   r-   r0   r         r   c                      rB   )	r	   z
    Attempted to lookup a cookie by name, but multiple cookies existed.

    Can occur when calling `response.cookies.get(...)`.
    r"   r#   r$   r%   c                   rC   r&   rD   r+   r-   r/   r0   r)     rE   zCookieConflict.__init__r3   r<   r/   r/   r-   r0   r	     rA   r	   c                      rB   )	r   z
    The base class for stream exceptions.

    The developer made an error in accessing the request stream in
    an invalid way.
    r"   r#   r$   r%   c                   rC   r&   rD   r+   r-   r/   r0   r)   1  rE   zStreamError.__init__r3   r<   r/   r/   r-   r0   r   )  s    r   c                      "   e Zd ZdZd fddZ  ZS )r   z]
    Attempted to read or stream content, but the content has already
    been streamed.
    r$   r%   c                      d}t  | d S )Na]  Attempted to read or stream some content, but the content has already been streamed. For requests, this could be due to passing a generator as request content, and then receiving a redirect response or a secondary request as part of an authentication flow.For responses, this could be due to attempting to stream the response content more than once.rD   r+   r-   r/   r0   r)   ;  s   zStreamConsumed.__init__r$   r%   r<   r/   r/   r-   r0   r   5      r   c                      rG   )r   z\
    Attempted to read or stream response content, but the request has been
    closed.
    r$   r%   c                   rH   )NzDAttempted to read or stream content, but the stream has been closed.rD   r+   r-   r/   r0   r)   M  s   zStreamClosed.__init__rI   r<   r/   r/   r-   r0   r   G  rJ   r   c                      rG   )r   zY
    Attempted to access streaming response content, without having called `read()`.
    r$   r%   c                   rH   )NzOAttempted to access streaming response content, without having called `read()`.rD   r+   r-   r/   r0   r)   Y     zResponseNotRead.__init__rI   r<   r/   r/   r-   r0   r   T  rF   r   c                      rG   )r   zX
    Attempted to access streaming request content, without having called `read()`.
    r$   r%   c                   rH   )NzNAttempted to access streaming request content, without having called `read()`.rD   r+   r-   r/   r0   r)   f  rK   zRequestNotRead.__init__rI   r<   r/   r/   r-   r0   r   a  rF   r   r2   r;   r$   typing.Iterator[None]c              
   c  s:    zdV  W dS  t y } z	| dur| |_|d}~ww )z
    A context manager that can be used to attach the given request context
    to any `RequestError` exceptions that are raised within the block.
    N)r   r2   )r2   excr/   r/   r0   request_contextn  s   rN   r&   )r2   r;   r$   rL   )*r7   
__future__r   
contextlibtypingTYPE_CHECKING_modelsr   r   __all__	Exceptionr   r   r   r   r   r   r!   r   r   r   r    r   r   r   r   r   r   r   r
   r   r   r   r	   r1   r   r   r   r   r   contextmanagerrN   r/   r/   r/   r0   <module>   sL    ! !			
		