
    <i                     @   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dS )zA
.. codeauthor:: Tsuyoshi Hombashi <tsuyoshi.hombashi@gmail.com>
    N)FinalOptional   )Platformcodereturnc                     d| dS )NPV04d )r   s    /Users/kimhansen/Desktop/03 Workspace/ceo-agents/chl-effectiveness/mcp-servers/whoop/.venv/lib/python3.11/site-packages/pathvalidate/error.py_to_error_coder      s    ???    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<   dS )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      s         $J$$$&K&&&&K&&& He   FE*M5****M5***E5r   r   c                   N   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dS )!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                 0    || _         || _        || _        d S 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    64;66$"46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    X c    X "S " " " X")S ) )# )$ ) ) ) )
7 7 7 7 7 7 7r   r'   c                   X    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   Nc                 >   t           j        |vrt          t           j         d          |                    t           j                  | _        |                    t           j        d           | _        |                    t           j        d           | _        |                    t           j	        d           | _
        |                    t           j        d          | _        |                    t           j        d           | _        |                    t           j        d           | _        |                    t           j        d           | _        	  t'                      j        |d         i | d S # t*          $ r  t'                      j        |i | Y d S 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GGGHHH%+ZZ0C%D%D+1::l6Mt+T+T.4jj9NPT.U.U,2JJ|7OQU,V,V$*JJ|/I2$N$N/5zz,:TVZ/[/[,2JJ|7OQU,V,V&,jj1CT&J&J	.EGGd1g000000 	. 	. 	.EGGd-f------	.s   E5 5#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     DK$$dk&= 
 = 	>*.-*=D&' 	>-1-=D)*+/243G/H/HD+, 	@-1-?D)* 	C,/0A,B,BD()< 	4'+|D#$r   c                 j   g }t          | j                  }t                              |           r-|                    t                              |                      | j        r.|                    t          j         d| j        j                    | j	        r)|                    t          j
         d| j	                    | j        )|                    t          j         d| j                    | j        r)|                    t          j         d| j                    | j        *|                    t          j         d| j        d           | j        r)|                    t          j         d| j                   |r|dz  }|d                    |                                          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"" 	6Y..t44555= 	O 5MM8KMMNNN 	O 8MM4;KMMNNN+ :QQT=OQQRRR 	Q 8OO4;MOOPPP( 7PP$:KPPPQQQ< 	G 2EET\EEFFF 	dNF		),,224444r   c                 *    |                                  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,    X     X "Xc] " " " X" $s $ $ $ X$ $x~ $ $ $ X$ "Xc] " " " X" !HSM ! ! ! X!. . . . . .$c3h    45 5 5 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.
    r   Nc                 n    t           j        |t          j        <    t	                      j        |fi | d S r:   )r'   r(   r   r   rX   r;   rZ   s      r   r;   zNullNameError.__init__   s8    &1&;|"#(((((((r   rk   r"   r#   r$   r?   r;   ro   rp   s   @r   rr   rr      G         ) ) ) ) ) ) ) ) ) )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.
    r   Nc                 n    t           j        |t          j        <    t	                      j        |fi | d S r:   )r'   r)   r   r   rX   r;   rZ   s      r   r;   zInvalidCharError.__init__   s8    &1&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.
    r   Nc                 n    t           j        |t          j        <    t	                      j        |fi | d S r:   )r'   r   r   r   rX   r;   rZ   s      r   r;   zReservedNameError.__init__   s8    &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.
    r   Nc                 Z    d|t           j        <    t                      j        |fi | d S )NTr   r   rX   r;   rZ   s      r   r;   zValidReservedNameError.__init__   s5    -1|)*(((((((r   rk   rt   rp   s   @r   r}   r}      G         
) ) ) ) ) ) ) ) ) )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.
    r   Nc                 Z    d|t           j        <    t                      j        |fi | d S )NFr   rZ   s      r   r;   z!InvalidReservedNameError.__init__   s5    -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 :7 :7 :7$) :7 :7 :7zr r r r rj r r rj) ) ) ) )O ) ) )) ) ) ) ) ) ) )) ) ) ) ) ) ) )	) 	) 	) 	) 	). 	) 	) 	)	) 	) 	) 	) 	)0 	) 	) 	) 	) 	)r   