U
    æ{fò  ã                   @  s  d Z ddlmZ ddlZddlZejr6ddlmZm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.d/„ d/e
ƒZG d0d1„ d1e	ƒZG d2d3„ d3e	ƒZ G d4d5„ d5e!ƒZ"G d6d7„ d7e"ƒZ#G d8d9„ d9e"ƒZ$G d:d;„ d;e"ƒZ%G d<d=„ d=e"ƒZ&ej'dCd>d?d@œdAdB„ƒZ(dS )Dul  
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ÚResponsec                      sP   e Zd ZdZdddœ‡ fdd„Zeddœd	d
„ƒZejdddœdd
„ƒZ‡  ZS )Ú	HTTPErrora’  
    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}")
    ```
    ÚstrÚNone©ÚmessageÚreturnc                   s   t ƒ  |¡ d | _d S ©N©ÚsuperÚ__init__Ú_request©Úselfr
   ©Ú	__class__© úP/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/httpx/_exceptions.pyr   <   s    zHTTPError.__init__r   ©r   c                 C  s   | j d krtdƒ‚| j S )Nz'The .request property has not been set.)r   ÚRuntimeError)r   r   r   r   Úrequest@   s    
zHTTPError.request©r   r   c                 C  s
   || _ d S r   )r   )r   r   r   r   r   r   F   s    )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úpropertyr   ÚsetterÚ__classcell__r   r   r   r   r   *   s   r   c                      s0   e Zd ZdZddœddddœ‡ fdd	„Z‡  ZS )
ÚRequestErrorzS
    Base class for all exceptions that may occur when issuing a `.request()`.
    N)r   r   úRequest | Noner   )r
   r   r   c                  s   t ƒ  |¡ || _d S r   r   )r   r
   r   r   r   r   r   P   s    zRequestError.__init__©r   r   r   r   r   r!   r   r   r   r   r"   K   s   r"   c                   @  s   e Zd ZdZdS )ÚTransportErrorzU
    Base class for all exceptions that occur at the level of the Transport API.
    N©r   r   r   r   r   r   r   r   r%   [   s   r%   c                   @  s   e Zd ZdZdS )ÚTimeoutExceptionzM
    The base class for timeout errors.

    An operation has timed out.
    Nr&   r   r   r   r   r'   d   s   r'   c                   @  s   e Zd ZdZdS )ÚConnectTimeoutz1
    Timed out while connecting to the host.
    Nr&   r   r   r   r   r(   l   s   r(   c                   @  s   e Zd ZdZdS )ÚReadTimeoutz7
    Timed out while receiving data from the host.
    Nr&   r   r   r   r   r)   r   s   r)   c                   @  s   e Zd ZdZdS )ÚWriteTimeoutz3
    Timed out while sending data to the host.
    Nr&   r   r   r   r   r*   x   s   r*   c                   @  s   e Zd ZdZdS )ÚPoolTimeoutzB
    Timed out waiting to acquire a connection from the pool.
    Nr&   r   r   r   r   r+   ~   s   r+   c                   @  s   e Zd ZdZdS )ÚNetworkErrorzo
    The base class for network-related errors.

    An error occurred while interacting with the network.
    Nr&   r   r   r   r   r,   ‡   s   r,   c                   @  s   e Zd ZdZdS )Ú	ReadErrorz2
    Failed to receive data from the network.
    Nr&   r   r   r   r   r-      s   r-   c                   @  s   e Zd ZdZdS )Ú
WriteErrorz2
    Failed to send data through the network.
    Nr&   r   r   r   r   r.   •   s   r.   c                   @  s   e Zd ZdZdS )ÚConnectErrorz+
    Failed to establish a connection.
    Nr&   r   r   r   r   r/   ›   s   r/   c                   @  s   e Zd ZdZdS )Ú
CloseErrorz'
    Failed to close a connection.
    Nr&   r   r   r   r   r0   ¡   s   r0   c                   @  s   e Zd ZdZdS )Ú
ProxyErrorzB
    An error occurred while establishing a proxy connection.
    Nr&   r   r   r   r   r1   ª   s   r1   c                   @  s   e Zd ZdZdS )ÚUnsupportedProtocolz€
    Attempted to make a request to an unsupported protocol.

    For example issuing a request to `ftp://www.example.com`.
    Nr&   r   r   r   r   r2   °   s   r2   c                   @  s   e Zd ZdZdS )ÚProtocolErrorz$
    The protocol was violated.
    Nr&   r   r   r   r   r3   ¸   s   r3   c                   @  s   e Zd ZdZdS )ÚLocalProtocolErrorzæ
    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   r   r4   ¾   s   r4   c                   @  s   e Zd ZdZdS )ÚRemoteProtocolErrorz^
    The protocol was violated by the server.

    For example, returning malformed HTTP.
    Nr&   r   r   r   r   r5   È   s   r5   c                   @  s   e Zd ZdZdS )ÚDecodingErrorzG
    Decoding of the response failed, due to a malformed encoding.
    Nr&   r   r   r   r   r6   Ó   s   r6   c                   @  s   e Zd ZdZdS )ÚTooManyRedirectsz
    Too many redirects.
    Nr&   r   r   r   r   r7   Ù   s   r7   c                      s,   e Zd ZdZdddddœ‡ fdd„Z‡  ZS )	ÚHTTPStatusErrorz|
    The response had an error HTTP status of 4xx or 5xx.

    May be raised when calling `response.raise_for_status()`
    r   r   r   r   )r
   r   Úresponser   c                  s   t ƒ  |¡ || _|| _d S r   )r   r   r   r9   )r   r
   r   r9   r   r   r   r   é   s    zHTTPStatusError.__init__r$   r   r   r   r   r8   â   s   r8   c                      s(   e Zd ZdZdddœ‡ fdd„Z‡  ZS )Ú
InvalidURLz7
    URL is improperly formed or cannot be parsed.
    r   r   r	   c                   s   t ƒ  |¡ d S r   ©r   r   r   r   r   r   r   ô   s    zInvalidURL.__init__r$   r   r   r   r   r:   ï   s   r:   c                      s(   e Zd ZdZdddœ‡ fdd„Z‡  ZS )ÚCookieConflictz†
    Attempted to lookup a cookie by name, but multiple cookies existed.

    Can occur when calling `response.cookies.get(...)`.
    r   r   r	   c                   s   t ƒ  |¡ d S r   r;   r   r   r   r   r   ÿ   s    zCookieConflict.__init__r$   r   r   r   r   r<   ø   s   r<   c                      s(   e Zd ZdZdddœ‡ fdd„Z‡  ZS )ÚStreamErrorz‡
    The base class for stream exceptions.

    The developer made an error in accessing the request stream in
    an invalid way.
    r   r   r	   c                   s   t ƒ  |¡ d S r   r;   r   r   r   r   r     s    zStreamError.__init__r$   r   r   r   r   r=   	  s   r=   c                      s&   e Zd ZdZddœ‡ fdd„Z‡  ZS )ÚStreamConsumedz]
    Attempted to read or stream content, but the content has already
    been streamed.
    r   r   c                   s   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.r;   r   r   r   r   r     s    ÿzStreamConsumed.__init__r$   r   r   r   r   r>     s   r>   c                      s&   e Zd ZdZddœ‡ fdd„Z‡  ZS )ÚStreamClosedz\
    Attempted to read or stream response content, but the request has been
    closed.
    r   r   c                   s   d}t ƒ  |¡ d S )NzDAttempted to read or stream content, but the stream has been closed.r;   r   r   r   r   r   -  s    ÿzStreamClosed.__init__r$   r   r   r   r   r?   '  s   r?   c                      s&   e Zd ZdZddœ‡ fdd„Z‡  ZS )ÚResponseNotReadzY
    Attempted to access streaming response content, without having called `read()`.
    r   r   c                   s   d}t ƒ  |¡ d S )NzOAttempted to access streaming response content, without having called `read()`.r;   r   r   r   r   r   9  s    ÿzResponseNotRead.__init__r$   r   r   r   r   r@   4  s   r@   c                      s&   e Zd ZdZddœ‡ fdd„Z‡  ZS )ÚRequestNotReadzX
    Attempted to access streaming request content, without having called `read()`.
    r   r   c                   s   d}t ƒ  |¡ d S )NzNAttempted to access streaming request content, without having called `read()`.r;   r   r   r   r   r   F  s    ÿzRequestNotRead.__init__r$   r   r   r   r   rA   A  s   rA   r#   ztyping.Iterator[None]r   c              
   c  sD   z
dV  W n4 t k
r> } z| dk	r*| |_|‚W 5 d}~X Y nX dS )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"   r   )r   Úexcr   r   r   Úrequest_contextN  s    
rC   )N))r   Ú
__future__r   Ú
contextlibÚtypingÚTYPE_CHECKINGZ_modelsr   r   Ú	Exceptionr   r"   r%   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r:   r<   r   r=   r>   r?   r@   rA   ÚcontextmanagerrC   r   r   r   r   Ú<module>   sH    !			
		 ÿ