
    !h                         d dl mZ d dlmZmZ  G d de      Z G d de      Z G d d      Z	 G d	 d
e	ej                        Z
 G d de
      Zy)    )gettext_lazy)
exceptionsstatusc                       e Zd Zy)
TokenErrorN__name__
__module____qualname__     c/var/www/html/Ryun_Seer/newvenv/lib/python3.12/site-packages/rest_framework_simplejwt/exceptions.pyr   r          r   r   c                       e Zd Zy)TokenBackendErrorNr   r   r   r   r   r   	   r   r   r   c                         e Zd Zd fd	Z xZS )DetailDictMixinc                     | j                   | j                  d}t        |t              r|j	                  |       n|||d<   |||d<   t
        |   |       y)zi
        Builds a detail dictionary for the error to give more information to API
        users.
        )detailcodeNr   r   )default_detaildefault_code
isinstancedictupdatesuper__init__)selfr   r   detail_dict	__class__s       r   r   zDetailDictMixin.__init__   s`    
 "&!4!4d>O>OPfd#v&$*K!"&K%r   )NN)r	   r
   r   r   __classcell__)r    s   @r   r   r      s    & &r   r   c                       e Zd Zy)AuthenticationFailedNr   r   r   r   r#   r#       r   r   r#   c                   8    e Zd Zej                  Z ed      ZdZy)InvalidTokenzToken is invalid or expiredtoken_not_validN)	r	   r
   r   r   HTTP_401_UNAUTHORIZEDstatus_code_r   r   r   r   r   r%   r%   $   s    ..K45N$Lr   r%   N)django.utils.translationr   r)   rest_frameworkr   r   	Exceptionr   r   r   r#   r%   r   r   r   <module>r-      sN    6 -	 			 	& &&	?J,K,K 	%' %r   