U
    nËj"  ã                   @  sn   d dl mZ d dlZd dlZd dlZdZG dd„ deƒZG dd„ deƒZdZ	d	d
dœdd„Z
ddœdd„ZdS )é    )ÚannotationsN)ÚHTTPExceptionÚWebSocketExceptionc                   @  s>   e Zd Zddddddœdd„Zd	d
œdd„Zd	d
œdd„ZdS )r   NÚintú
str | Noneztyping.Mapping[str, str] | NoneÚNone)Ústatus_codeÚdetailÚheadersÚreturnc                 C  s*   |d krt  |¡j}|| _|| _|| _d S ©N)ÚhttpÚ
HTTPStatusÚphraser   r	   r
   )Úselfr   r	   r
   © r   ú8/tmp/pip-unpacked-wheel-pzfrzqh9/starlette/exceptions.pyÚ__init__   s
    zHTTPException.__init__Ústr©r   c                 C  s   | j › d| j› �S ©Nz: )r   r	   ©r   r   r   r   Ú__str__   s    zHTTPException.__str__c                 C  s"   | j j}|› d| j›d| j›d�S )Nz(status_code=z	, detail=ú))Ú	__class__Ú__name__r   r	   ©r   Ú
class_namer   r   r   Ú__repr__   s    zHTTPException.__repr__)NN©r   Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   
   s
     ür   c                   @  s<   e Zd Zdddddœdd„Zdd	œd
d„Zdd	œdd„ZdS )r   Nr   r   r   )ÚcodeÚreasonr   c                 C  s   || _ |pd| _d S )NÚ ©r"   r#   )r   r"   r#   r   r   r   r       s    zWebSocketException.__init__r   r   c                 C  s   | j › d| j› �S r   r%   r   r   r   r   r   $   s    zWebSocketException.__str__c                 C  s"   | j j}|› d| j›d| j›d�S )Nz(code=z	, reason=r   )r   r   r"   r#   r   r   r   r   r   '   s    zWebSocketException.__repr__)Nr   r   r   r   r   r      s   r   ÚExceptionMiddlewarer   z
typing.Any)Únamer   c                 C  sH   | t kr.ddlm} tjt › d�tdd� |S tdt› d| › d�ƒ‚d S )	Nr   )r&   zc is deprecated on `starlette.exceptions`. Import it from `starlette.middleware.exceptions` instead.é   )ÚcategoryÚ
stacklevelzmodule 'z' has no attribute 'ú')Ú__deprecated__Zstarlette.middleware.exceptionsr&   ÚwarningsÚwarnÚDeprecationWarningÚAttributeErrorr   )r'   r&   r   r   r   Ú__getattr__/   s    ür1   z	list[str]r   c                   C  s   t ttƒtg ƒS r   )ÚsortedÚlistÚ__all__r,   r   r   r   r   Ú__dir__=   s    r5   )Ú
__future__r   r   Útypingr-   r4   Ú	Exceptionr   r   r,   r1   r5   r   r   r   r   Ú<module>   s   