o
    Þ­jO!  ã                   @  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__© úN/var/www/html/CropPilot/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    ! !			
		ÿ