
    k7i                        S r SSKrSSKJrJr  SSKJr  S\S\4S jr	 " S	 S
5      r
\R                   " S S\R                  5      5       r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)zA
.. codeauthor:: Tsuyoshi Hombashi <tsuyoshi.hombashi@gmail.com>
    N)FinalOptional   )Platformcodereturnc                     SU S 3$ )NPV04d )r   s    L/home/james-whalen/.local/lib/python3.13/site-packages/pathvalidate/error.py_to_error_coder      s    Sz?    c                       \ rS rSr% Sr\\S'   Sr\\S'   Sr\\S'   Sr	\\S	'   S
r
\\S'   Sr\\S'   Sr\\S'   Sr\\S'   Srg)ErrorAttrKey   
byte_count
BYTE_COUNTdescriptionDESCRIPTIONfs_encodingFS_ENCODINGplatformPLATFORMreasonREASONreserved_nameRESERVED_NAMEreusable_nameREUSABLE_NAMEvalueVALUEr   N)__name__
__module____qualname____firstlineno__r   r   __annotations__r   r   r   r   r   r    r"   __static_attributes__r   r   r   r   r      sR    $J$&K&&K& He FE*M5**M5*E5r   r   c                   "   \ rS rSrSr\" S5      SS4r\" S5      SS4r\" S	5      S
S4r\" S5      SS4r	\" S5      SS4r
\" S5      SS4r\" S5      SS4r\S\4S j5       r\S\4S j5       r\S\4S j5       rS\S\S\SS4S  jrS\4S! jrS"rg)#ErrorReason   z
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                     U R                   $ )zstr: Error code.)_ErrorReason__codeselfs    r   r   ErrorReason.code@        {{r   c                     U R                   $ )zstr: Error reason name.)_ErrorReason__namer4   s    r   nameErrorReason.nameE   r7   r   c                     U R                   $ )zstr: Error reason description.)_ErrorReason__descriptionr4   s    r   r   ErrorReason.descriptionJ        !!!r   r   r:   r   Nc                 (    X l         Xl        X0l        g N)r9   r3   r=   )r5   r   r:   r   s       r   __init__ErrorReason.__init__O   s    (r   c                 :    SU R                    SU R                   3$ )N[z] )r3   r=   r4   s    r   __str__ErrorReason.__str__T   s     4;;-r$"4"4!566r   )__code__description__name)r#   r$   r%   r&   __doc__r   r,   r   r-   r.   r/   r0   r1   propertystrr   r:   r   rB   rF   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                   *  ^  \ rS rSrSr\S\\   4S j5       r\S\	4S j5       r
\S\\   4S j5       r\S\4S j5       r\S\\   4S j5       r\S\\   4S	 j5       r\S\\   4S
 j5       rSU 4S jjrS\\\4   4S jrS\4S jrS\4S jrSrU =r$ )ValidationErrorX   z'
Exception class of validation errors.
r   c                     U R                   $ )z;
:py:class:`~pathvalidate.Platform`: Platform information.
)_ValidationError__platformr4   s    r   r   ValidationError.platform]   s    
 r   c                     U R                   $ )zF
:py:class:`~pathvalidate.error.ErrorReason`: The cause of the error.
)_ValidationError__reasonr4   s    r   r   ValidationError.reasond   s    
 }}r   c                     U R                   $ )z!Optional[str]: Error description.)_ValidationError__descriptionr4   s    r   r   ValidationError.descriptionk   r?   r   c                     U R                   $ )zstr: Reserved name.)_ValidationError__reserved_namer4   s    r   r   ValidationError.reserved_namep        ###r   c                     U R                   $ )z4Optional[bool]: Whether the name is reusable or not.)_ValidationError__reusable_namer4   s    r   r   ValidationError.reusable_nameu   r]   r   c                     U R                   $ )z$Optional[str]: File system encoding.)_ValidationError__fs_encodingr4   s    r   r   ValidationError.fs_encodingz   r?   r   c                     U R                   $ )z&Optional[int]: Byte count of the path.)_ValidationError__byte_countr4   s    r   r   ValidationError.byte_count   s        r   c                   > [         R                  U;  a  [        [         R                   S35      eUR                  [         R                  5      U l        UR                  [         R
                  S 5      U l        UR                  [         R                  S 5      U l        UR                  [         R                  S 5      U l
        UR                  [         R                  S5      U l        UR                  [         R                  S 5      U l        UR                  [         R                  S 5      U l        UR                  [         R"                  S 5      U l         [&        TU ]P  " US   0 UD6  g ! [*         a    [&        TU ]P  " U0 UD6   g f = f)Nz must be specified r   )r   r   
ValueErrorpoprU   r   re   r   rR   r   rX   r   r[   r    r_   r   rb   r"   _ValidationError__valuesuperrB   
IndexErrorr5   argskwargs	__class__s      r   rB   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                    SU R                   R                  [        R                  U R                   R                  0nU R
                  (       a'  U R
                  R                  U[        R                  '   U R                  (       a  U R                  U[        R                  '   U R                  b&  [        U R                  5      U[        R                  '   U R                  (       a  U R                  U[        R                  '   U R                  (       a&  [        U R                  5      U[        R                  '   U R                  (       a  U R                  U[        R                   '   U$ )zyReturn 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   r_   rM   r    rb   r   re   r   rk   r"   )r5   slogs     r   as_slogValidationError.as_slog   s     DKK$$$$dkk&=&= 
 ==*.--*=*=D&&'-1-=-=D))*+/243G3G/HD++,-1-?-?D))*,/0A0A,BD(()<<'+||D##$r   c                    / n[        U R                  5      n[        R                  U 5      (       a$  UR	                  [        R                  U 5      5        U R
                  (       a8  UR	                  [        R                   SU R
                  R                   35        U R                  (       a.  UR	                  [        R                   SU R                   35        U R                  b.  UR	                  [        R                   SU R                   35        U R                  (       a.  UR	                  [        R                   SU R                   35        U R                   b/  UR	                  [        R"                   SU R                   S 35        U R$                  (       a/  UR	                  [        R&                   SU R$                  < 35        U(       a  US-  nUSR)                  U5      R+                  5       -   $ )N=z,dz: z, )rM   r   	ExceptionrF   appendr   r   r   r!   r   r   r_   r    r   rb   r   re   r   rk   r"   joinstrip)r5   	item_listheaders      r   rF   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                 "    U R                  5       $ rA   )rF   r4   s    r   __repr__ValidationError.__repr__   s    ||~r   )__byte_countrI   __fs_encoding
__platform__reason__reserved_name__reusable_name__valuer   N)r#   r$   r%   r&   rK   rL   r   r   r   r*   r   rM   r   r   boolr   r   intr   rB   dictru   rF   r   r(   __classcell__rq   s   @r   rO   rO   X   s    (8,      "Xc] " " $s $ $ $x~ $ $ "Xc] " " !HSM ! !.$c3h 45 52#  r   rO   c                   0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )NullNameError   z4[Deprecated]
Exception raised when a name is empty.
c                 j   > [         R                  U[        R                  '   [        TU ]  " U40 UD6  g rA   )r*   r,   r   r   rl   rB   rn   s      r   rB   NullNameError.__init__   s+    &1&;&;|""#((r   r   r   r#   r$   r%   r&   rK   rB   r(   r   r   s   @r   r   r          ) )r   r   c                   0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )InvalidCharError   zF
Exception raised when includes invalid character(s) within a string.
c                 j   > [         R                  U[        R                  '   [        TU ]  " U40 UD6  g rA   )r*   r-   r   r   rl   rB   rn   s      r   rB   InvalidCharError.__init__   s+    &1&C&C|""#((r   r   r   r   r   s   @r   r   r      r   r   r   c                   0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )ReservedNameError   z9
Exception raised when a string matched a reserved name.
c                 j   > [         R                  U[        R                  '   [        TU ]  " U40 UD6  g rA   )r*   r   r   r   rl   rB   rn   s      r   rB   ReservedNameError.__init__   s+    &1&?&?|""#((r   r   r   r   r   s   @r   r   r      r   r   r   c                   0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )ValidReservedNameError   zh[Deprecated]
Exception raised when a string matched a reserved name.
However, it can be used as a name.
c                 N   > SU[         R                  '   [        TU ]  " U40 UD6  g )NTr   r    rl   rB   rn   s      r   rB   ValidReservedNameError.__init__   s%    -1|))*((r   r   r   r   r   s   @r   r   r          
) )r   r   c                   0   ^  \ rS rSrSrSU 4S jjrSrU =r$ )InvalidReservedNameError   zw[Deprecated]
Exception raised when a string matched a reserved name.
Moreover, the reserved name is invalid as a name.
c                 N   > SU[         R                  '   [        TU ]  " U40 UD6  g )NFr   rn   s      r   rB   !InvalidReservedNameError.__init__   s%    -2|))*((r   r   r   r   r   s   @r   r   r      r   r   r   )rK   enumtypingr   r   _constr   r   rM   r   r   uniqueEnumr*   ri   rO   r   r   r   r   r   r   r   r   <module>r      s     "     :7$)) :7 :7zrj rj)O )) )) )	). 	)	)0 	)r   