o
    m=8j+                     @   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   zHTTP 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   ^/home/nk/hobo-godmode/plappi-mvp/.venv/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"    "
		