o
    ߥi;
                  	   @   s   d dl mZ d dlmZmZmZmZmZmZ edZ	G dd de
ee	 Z			dded	eeeef  d
edefddZG dd ded ZG dd ded ZG dd ded ZG dd dee ZG dd dee ZG dd dee ZdS )    )
HTTPStatus)AnyGenericMappingNoReturnOptionalTypeVarTc                	       sJ   e Zd ZdZ			d
dedeeeef  dee ddf fdd	Z	  Z
S )HTTPExceptionz
    Base HTTP Exception
      Nstatus_codeheaderscontentreturnc                    s\   || _ || _|| _|d urt|}nzt|j}W n ty$   d}Y nw t || d S )NzMaybe a custom HTTP status code)	r   r   r   reprr   description
ValueErrorsuper__init__)selfr   r   r   status_description	__class__ D/home/ubuntu/.local/lib/python3.10/site-packages/baize/exceptions.pyr      s   
zHTTPException.__init__r   NN)__name__
__module____qualname____doc__intr   r   strr	   r   __classcell__r   r   r   r   r
      s    r
   r   Nr   r   r   r   c                 C   s   t | ||d)z]
    raise a `HTTPException`. Parameters are completely consistent with `HTTPException`.
    r   r   r   )r
   r#   r   r   r   abort   s   r$   c                       s0   e Zd ZdZddee ddf fddZ  ZS )RequestEntityTooLargez&
    413 Request Entity Too Large
    Nretry_afterr   c                    s,   t  d|d urdt|i d S d  d S )Ni  zRetry-After)r   r   r!   )r   r&   r   r   r   r   /   s
   zRequestEntityTooLarge.__init__)N)r   r   r   r   r   r    r   r"   r   r   r   r   r%   *   s    $r%   c                       *   e Zd ZdZdeddf fddZ  ZS )UnsupportedMediaTypez$
    415 Unsupported Media Type
    supported_media_typesr   Nc                    s   t  ddd|id  d S )Ni  Accpetz, )r   r   join)r   r)   r   r   r   r   :      zUnsupportedMediaType.__init__)r   r   r   r   r!   r   r"   r   r   r   r   r(   5       r(   c                       r'   )RangeNotSatisfiablez#
    416 Range Not Satisfiable
    max_sizer   Nc                    s   t  ddd| id  d S )Ni  zContent-Rangez*/r   r   )r   r/   r   r   r   r   C   r,   zRangeNotSatisfiable.__init__)r   r   r   r   r    r   r"   r   r   r   r   r.   >   r-   r.   c                       (   e Zd Zddeddf fddZ  ZS )MalformedJSONMalformed JSONmessager   Nc                       t  j|d d S N)r   r0   r   r4   r   r   r   r   M      zMalformedJSON.__init__)r3   r   r   r   r!   r   r"   r   r   r   r   r2   L        r2   c                       r1   )MalformedMultipartMalformed multipartr4   r   Nc                    r5   r6   r0   r7   r   r   r   r   R   r8   zMalformedMultipart.__init__)r<   r9   r   r   r   r   r;   Q   r:   r;   c                       r1   )MalformedRangeHeaderMalformed Range headerr4   r   Nc                    r5   r6   r0   r7   r   r   r   r   W   r8   zMalformedRangeHeader.__init__)r>   r9   r   r   r   r   r=   V   r:   r=   r   )httpr   typingr   r   r   r   r   r   r	   	Exceptionr
   r    r!   r$   r%   r(   r.   r2   r;   r=   r   r   r   r   <module>   s,     
	