U
    ÑßŽi¬  ã                   @   sŠ   d dl mZmZmZmZ d dlmZ d dlm	Z	m
Z
 G dd„ deƒZG dd„ deƒZG dd	„ d	ƒZG d
d„ dee	jƒZG dd„ deƒZdS )é    )ÚAnyÚDictÚOptionalÚUnion)Úgettext_lazy)Ú
exceptionsÚstatusc                   @   s   e Zd ZdS )Ú
TokenErrorN©Ú__name__Ú
__module__Ú__qualname__© r   r   úa/var/www/html/IITS/school/venv/lib/python3.8/site-packages/rest_framework_simplejwt/exceptions.pyr	      s   r	   c                   @   s   e Zd ZdS )ÚTokenBackendErrorNr
   r   r   r   r   r      s   r   c                       sP   e Zd ZU eed< eed< deeeef edf ee ddœ‡ fdd„Z	‡  Z
S )ÚDetailDictMixinÚdefault_detailÚdefault_codeN)ÚdetailÚcodeÚreturnc                    sT   | j | jdœ}t|tƒr$| |¡ n|dk	r4||d< |dk	rD||d< tƒ  |¡ dS )zi
        Builds a detail dictionary for the error to give more information to API
        users.
        )r   r   Nr   r   )r   r   Ú
isinstanceÚdictÚupdateÚsuperÚ__init__)Úselfr   r   Zdetail_dict©Ú	__class__r   r   r      s    	
zDetailDictMixin.__init__)NN)r   r   r   ÚstrÚ__annotations__r   r   r   r   r   Ú__classcell__r   r   r   r   r      s   
  ýür   c                   @   s   e Zd ZdS )ÚAuthenticationFailedNr
   r   r   r   r   r"   )   s   r"   c                   @   s   e Zd ZejZedƒZdZdS )ÚInvalidTokenzToken is invalid or expiredZtoken_not_validN)	r   r   r   r   ÚHTTP_401_UNAUTHORIZEDÚstatus_codeÚ_r   r   r   r   r   r   r#   -   s   r#   N)Útypingr   r   r   r   Údjango.utils.translationr   r&   Úrest_frameworkr   r   Ú	Exceptionr	   r   r   r"   r#   r   r   r   r   Ú<module>   s   