o
    4˜Žj+  ã                   @   sô   d Z ddlmZ ddlmZ 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d S )!z"Low-level http related exceptions.é    )Úindenté   )Ú_CIMultiDict)ÚHttpProcessingErrorc                	   @   sd   e Zd ZdZdZdZdZddddœdedB dede	dB d	dfd
d„Z
d	efdd„Zd	efdd„ZdS )r   zèHTTP error.

    Shortcut for raising HTTP errors with custom code, message and headers.

    code: HTTP Error code.
    message: (optional) Error message.
    headers: (optional) Headers to be sent in response, a list of pairs
    r   Ú N)ÚcodeÚmessageÚheadersr   r   r	   Úreturnc                C   s   |d ur|| _ || _|| _d S )N)r   r	   r   )Úselfr   r   r	   © r   úT/var/www/kodo/Anonymous/send/lib/python3.10/site-packages/aiohttp/http_exceptions.pyÚ__init__   s   
zHttpProcessingError.__init__c                 C   s   t | jdƒ}| j› d|› �S )Nz  z, message:
)r   r   r   )r   Úmsgr   r   r   Ú__str__$   s   zHttpProcessingError.__str__c                 C   s    d| j j› d| j› d| j›d�S )Nú<z: z
, message=ú>)Ú	__class__Ú__name__r   r   )r   r   r   r   Ú__repr__(   s    zHttpProcessingError.__repr__)r   Ú
__module__Ú__qualname__Ú__doc__r   r   r	   ÚintÚstrr   r   r   r   r   r   r   r   r   
   s&    	ûýüû
úr   c                       s<   e Zd ZdZdZddœdededB ddf‡ fdd	„Z‡  ZS )
ÚBadHttpMessageé�  úBad RequestN)r	   r   r	   r
   c                   s   t ƒ j||d� |f| _d S )N)r   r	   ©Úsuperr   Úargs)r   r   r	   ©r   r   r   r   1   s   zBadHttpMessage.__init__)	r   r   r   r   r   r   r   r   Ú__classcell__r   r   r!   r   r   ,   s    ,r   c                   @   s   e Zd ZdZdZdS )ÚHttpBadRequestr   r   N)r   r   r   r   r   r   r   r   r   r#   6   s    r#   c                   @   ó   e Zd ZdZdS )ÚPayloadEncodingErrorzBase class for payload errorsN©r   r   r   r   r   r   r   r   r%   <   ó    r%   c                   @   r$   )ÚContentEncodingErrorzContent encoding error.Nr&   r   r   r   r   r(   @   r'   r(   c                   @   r$   )ÚTransferEncodingErrorztransfer encoding error.Nr&   r   r   r   r   r)   D   r'   r)   c                   @   r$   )ÚContentLengthErrorz1Not enough data to satisfy content length header.Nr&   r   r   r   r   r*   H   r'   r*   c                   @   r$   )ÚDecompressSizeErrorzDeprecated. Removed in v4.Nr&   r   r   r   r   r+   L   r'   r+   c                	       s<   e Zd Z		d	deeB deeB deddf‡ fdd„Z‡  ZS )
ÚLineTooLongÚUnknownÚlineÚlimitÚactual_sizer
   Nc                    s*   t ƒ  d|› d|›d�¡ |||f| _d S )NzGot more than z bytes when reading: Ú.r   )r   r.   r/   r0   r!   r   r   r   Q   s   zLineTooLong.__init__)r-   r-   )r   r   r   r   Úbytesr   r   r"   r   r   r!   r   r,   P   s    üþýüûr,   c                       s*   e Zd ZdeeB ddf‡ fdd„Z‡  ZS )ÚInvalidHeaderÚhdrr
   Nc                    s>   t |tƒr|jdd�n|}tƒ  d|›�¡ || _|f| _d S )NÚbackslashreplace)ÚerrorszInvalid HTTP header: )Ú
isinstancer2   Údecoder   r   r4   r    )r   r4   Úhdr_sr!   r   r   r   \   s   zInvalidHeader.__init__)r   r   r   r2   r   r   r"   r   r   r!   r   r3   [   s    "r3   c                       s0   e Zd ZddededB ddf‡ fdd„Z‡  ZS )	ÚBadStatusLiner   Nr.   Úerrorr
   c                    s:   t |tƒs	t|ƒ}tƒ  |pd|›�¡ |f| _|| _d S )NzBad status line )r7   r   Úreprr   r   r    r.   ©r   r.   r;   r!   r   r   r   d   s
   

zBadStatusLine.__init__©r   N)r   r   r   r   r   r"   r   r   r!   r   r:   c   s    (r:   c                       s4   e Zd ZdZd	dededB ddf‡ fdd„Z‡  ZS )
ÚBadHttpMethodz#Invalid HTTP method in status line.r   Nr.   r;   r
   c                    s2   |d u r|  d¡rd}tƒ  ||pd|›�¡ d S )Nzz&Received HTTPS traffic on an HTTP portzBad HTTP method in status line )Ú
startswithr   r   r=   r!   r   r   r   o   s   zBadHttpMethod.__init__r>   )r   r   r   r   r   r   r"   r   r   r!   r   r?   l   s    (r?   c                   @   s   e Zd ZdS )ÚInvalidURLErrorN)r   r   r   r   r   r   r   rA   u   s    rA   N)r   Útextwrapr   Útypedefsr   Ú__all__Ú	Exceptionr   r   r#   r%   r(   r)   r*   r+   r,   r3   r:   r?   rA   r   r   r   r   Ú<module>   s"    "
		