
    -2i                        d Z ddlZddlmZmZ ddlmZ dedefdZ	 G d	 d
      Z
ej                   G d dej                               Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)zA
.. codeauthor:: Tsuyoshi Hombashi <tsuyoshi.hombashi@gmail.com>
    N)FinalOptional   )Platformcodereturnc                     d| dS )NPV04d )r   s    \/mnt/e/genesis-system/.venvs/voice-bridge/lib/python3.12/site-packages/pathvalidate/error.py_to_error_coder      s    Sz?    c                   ~    e Zd ZU dZeed<   dZeed<   dZeed<   dZeed<   d	Z	eed
<   dZ
eed<   dZeed<   dZeed<   y)ErrorAttrKey
byte_count
BYTE_COUNTdescriptionDESCRIPTIONfs_encodingFS_ENCODINGplatformPLATFORMreasonREASONreserved_nameRESERVED_NAMEreusable_nameREUSABLE_NAMEvalueVALUEN)__name__
__module____qualname__r   r   __annotations__r   r   r   r   r   r   r!   r   r   r   r   r      sR    $J$&K&&K& He FE*M5**M5*E5r   r   c                      e Zd ZdZ ed      ddfZ ed      ddfZ ed      d	d
fZ ed      ddfZ ed      ddfZ	 ed      ddfZ
 ed      ddfZedefd       Zedefd       Zedefd       ZdedededdfdZdefd Zy)!ErrorReasonz#
    Validation error reasons.
    i  	NULL_NAMEz%the value must not be an empty stringi  r   z#found a reserved name by a platformiL  INVALID_CHARACTERzinvalid characters foundiM  INVALID_LENGTHzfound an invalid string lengthi  FOUND_ABS_PATHz4found an absolute path where must be a relative pathi  MALFORMED_ABS_PATHzfound a malformed absolute pathi  INVALID_AFTER_SANITIZEz$found invalid value after sanitizingr   c                     | j                   S )zstr: Error code.)_ErrorReason__codeselfs    r   r   zErrorReason.code@        {{r   c                     | j                   S )zstr: Error reason name.)_ErrorReason__namer0   s    r   namezErrorReason.nameE   r2   r   c                     | j                   S )zstr: Error reason description.)_ErrorReason__descriptionr0   s    r   r   zErrorReason.descriptionJ        !!!r   r   r5   r   Nc                 .    || _         || _        || _        y N)r4   r/   r7   )r1   r   r5   r   s       r   __init__zErrorReason.__init__O   s    (r   c                 :    d| j                    d| j                   S )N[z] )r/   r7   r0   s    r   __str__zErrorReason.__str__T   s     4;;-r$"4"4!566r   )r"   r#   r$   __doc__r   r(   r   r)   r*   r+   r,   r-   propertystrr   r5   r   r;   r>   r   r   r   r'   r'      s$     %{4[\It-M 	t" 	t(N 	t>N 	t) 	t . c   c   "S " ")S ) )# )$ )
7 7r   r'   c                   
    e Zd ZdZedee   fd       Zedefd       Z	edee
   fd       Zede
fd       Zedee   fd       Zedee
   fd       Zedee   fd	       Zd fd
Zdee
e
f   fdZde
fdZde
fdZ xZS )ValidationErrorz/
    Exception class of validation errors.
    r   c                     | j                   S )zK
        :py:class:`~pathvalidate.Platform`: Platform information.
        )_ValidationError__platformr0   s    r   r   zValidationError.platform]   s    
 r   c                     | j                   S )zV
        :py:class:`~pathvalidate.error.ErrorReason`: The cause of the error.
        )_ValidationError__reasonr0   s    r   r   zValidationError.reasond   s    
 }}r   c                     | j                   S )z!Optional[str]: Error description.)_ValidationError__descriptionr0   s    r   r   zValidationError.descriptionk   r8   r   c                     | j                   S )zstr: Reserved name.)_ValidationError__reserved_namer0   s    r   r   zValidationError.reserved_namep        ###r   c                     | j                   S )z4Optional[bool]: Whether the name is reusable or not.)_ValidationError__reusable_namer0   s    r   r   zValidationError.reusable_nameu   rL   r   c                     | j                   S )z$Optional[str]: File system encoding.)_ValidationError__fs_encodingr0   s    r   r   zValidationError.fs_encodingz   r8   r   c                     | j                   S )z&Optional[int]: Byte count of the path.)_ValidationError__byte_countr0   s    r   r   zValidationError.byte_count   s        r   c                    t         j                  |vrt        t         j                   d      |j                  t         j                        | _        |j                  t         j
                  d       | _        |j                  t         j                  d       | _        |j                  t         j                  d       | _
        |j                  t         j                  d      | _        |j                  t         j                  d       | _        |j                  t         j                  d       | _        |j                  t         j"                  d       | _        	 t'        | P  |d   i | y # t*        $ r t'        | P  |i | Y y w xY w)Nz must be specified r   )r   r   
ValueErrorpoprG   r   rR   r   rE   r   rI   r   rK   r   rN   r   rP   r!   _ValidationError__valuesuperr;   
IndexErrorr1   argskwargs	__class__s      r   r;   zValidationError.__init__   s.   f, 3 344FGHH%+ZZ0C0C%D+1::l6M6Mt+T.4jj9N9NPT.U,2JJ|7O7OQU,V$*JJ|/I/I2$N/5zz,:T:TVZ/[,2JJ|7O7OQU,V&,jj1C1CT&J	.Gd1g00 	.Gd-f-	.s   E+ +FFc                    d| j                   j                  t        j                  | j                   j                  i}| j
                  r'| j
                  j                  |t        j                  <   | j                  r| j                  |t        j                  <   | j                  &t        | j                        |t        j                  <   | j                  r| j                  |t        j                  <   | j                  r&t        | j                        |t        j                  <   | j                  r| j                  |t        j                   <   |S )zReturn a dictionary representation of the error.

        Returns:
            Dict[str, str]: A dictionary representation of the error.
        r   )r   r   r   r   r   r   r    r   rN   rA   r   rP   r   rR   r   rW   r!   )r1   slogs     r   as_slogzValidationError.as_slog   s     DKK$$$$dkk&=&= 
 ==*.--*=*=D&&'-1-=-=D))*+/243G3G/HD++,-1-?-?D))*,/0A0A,BD(()<<'+||D##$r   c                    g }t        | j                        }t        j                  |       r$|j	                  t        j                  |              | j
                  r8|j	                  t        j                   d| j
                  j                          | j                  r.|j	                  t        j                   d| j                          | j                  .|j	                  t        j                   d| j                          | j                  r.|j	                  t        j                   d| j                          | j                   /|j	                  t        j"                   d| j                   d       | j$                  r.|j	                  t        j&                   d| j$                         |r|dz  }|dj)                  |      j+                         z   S )N=z,dz: z, )rA   r   	Exceptionr>   appendr   r   r   r    r   r   rN   r   r   rP   r   rR   r   rW   r!   joinstrip)r1   	item_listheaders      r   r>   zValidationError.__str__   s   	T[[!T"Y..t45== 5 56a8K8K7LMN 8 894;K;K:LMN+ : :;1T=O=O<PQR 8 894;M;M:NOP( 7 78$:K:KB9OPQ<< 2 231T\\4DEFdNF		),22444r   c                 "    | j                         S r:   )r>   r0   s    r   __repr__zValidationError.__repr__   s    ||~r   r   N)r"   r#   r$   r?   r@   r   r   r   r'   r   rA   r   r   boolr   r   intr   r;   dictr`   r>   rj   __classcell__r]   s   @r   rC   rC   X   s    (8,      "Xc] " " $s $ $ $x~ $ $ "Xc] " " !HSM ! !.$c3h 45 52# r   rC   c                   $     e Zd ZdZd fdZ xZS )NullNameErrorz<[Deprecated]
    Exception raised when a name is empty.
    c                 h    t         j                  |t        j                  <   t	        |   |fi | y r:   )r'   r(   r   r   rX   r;   rZ   s      r   r;   zNullNameError.__init__   s+    &1&;&;|""#((r   rk   r"   r#   r$   r?   r;   ro   rp   s   @r   rr   rr          ) )r   rr   c                   $     e Zd ZdZd fdZ xZS )InvalidCharErrorzN
    Exception raised when includes invalid character(s) within a string.
    c                 h    t         j                  |t        j                  <   t	        |   |fi | y r:   )r'   r)   r   r   rX   r;   rZ   s      r   r;   zInvalidCharError.__init__   s+    &1&C&C|""#((r   rk   rt   rp   s   @r   rw   rw      ru   r   rw   c                   $     e Zd ZdZd fdZ xZS )ReservedNameErrorzA
    Exception raised when a string matched a reserved name.
    c                 h    t         j                  |t        j                  <   t	        |   |fi | y r:   )r'   r   r   r   rX   r;   rZ   s      r   r;   zReservedNameError.__init__   s+    &1&?&?|""#((r   rk   rt   rp   s   @r   rz   rz      ru   r   rz   c                   $     e Zd ZdZd fdZ xZS )ValidReservedNameErrorzt[Deprecated]
    Exception raised when a string matched a reserved name.
    However, it can be used as a name.
    c                 L    d|t         j                  <   t        |   |fi | y )NTr   r   rX   r;   rZ   s      r   r;   zValidReservedNameError.__init__   s%    -1|))*((r   rk   rt   rp   s   @r   r}   r}          
) )r   r}   c                   $     e Zd ZdZd fdZ xZS )InvalidReservedNameErrorz[Deprecated]
    Exception raised when a string matched a reserved name.
    Moreover, the reserved name is invalid as a name.
    c                 L    d|t         j                  <   t        |   |fi | y )NFr   rZ   s      r   r;   z!InvalidReservedNameError.__init__   s%    -2|))*((r   rk   rt   rp   s   @r   r   r      r   r   r   )r?   enumtypingr   r   _constr   rm   rA   r   r   uniqueEnumr'   rU   rC   rr   rw   rz   r}   r   r   r   r   <module>r      s     "     :7$)) :7 :7zrj rj)O )) )) )	). 	)	)0 	)r   