o
    i                     @   s   d Z ddlZddlmZ ddlmZ ddlmZ eegef Zdedefd	d
Z	dedefddZ
dedefddZG dd dZG dd dZdS )zA
.. codeauthor:: Tsuyoshi Hombashi <tsuyoshi.hombashi@gmail.com>
    N)datetime)Callable   )ValidationErrorereturnc                 C   s   t dt dS )zNull value handler that always returns an empty string.

    Args:
        e (ValidationError): A validation error.

    Returns:
        str: An empty string.
    zV'return_null_string' is deprecated. Use 'NullValueHandler.return_null_string' instead. )warningswarnDeprecationWarningr    r   Z/var/www/html/karishye-ai-python/venv/lib/python3.10/site-packages/pathvalidate/handler.pyreturn_null_string   s
   
r   c                 C   s   t dt tt  S )zNull value handler that returns a timestamp of when the function was called.

    Args:
        e (ValidationError): A validation error.

    Returns:
        str: A timestamp.
    zW'return_timestamp' is deprecated. Use 'NullValueHandler.reserved_name_handler' instead.)r	   r
   r   strr   now	timestampr   r   r   r   return_timestamp!   s
   
r   c                 C   s   | )zNull value handler that always raises an exception.

    Args:
        e (ValidationError): A validation error.

    Raises:
        ValidationError: Always raised.
    r   r   r   r   r   raise_error3   s   
r   c                   @   s8   e Zd ZededefddZededefddZdS )NullValueHandlerr   r   c                 C   s   dS )zNull value handler that always returns an empty string.

        Args:
            e (ValidationError): A validation error.

        Returns:
            str: An empty string.
        r   r   clsr   r   r   r   r   A   s   z#NullValueHandler.return_null_stringc                 C   s   t t  S )zNull value handler that returns a timestamp of when the function was called.

        Args:
            e (ValidationError): A validation error.

        Returns:
            str: A timestamp.
        )r   r   r   r   r   r   r   r   r   N   s   z!NullValueHandler.return_timestampN)__name__
__module____qualname__classmethodr   r   r   r   r   r   r   r   r   @   s
    r   c                   @   sN   e Zd ZededefddZededefddZededefddZd	S )
ReservedNameHandlerr   r   c                 C   s"   |j dv s|jr|j S d|j  S )zReserved name handler that adds a leading underscore (``"_"``) to the name
        except for ``"."`` and ``".."``.

        Args:
            e (ValidationError): A reserved name error.

        Returns:
            str: The converted name.
        .z.._reserved_namereusable_namer   r   r   r   add_leading_underscore]      z*ReservedNameHandler.add_leading_underscorec                 C   s"   |j dv s|jr|j S |j  dS )zReserved name handler that adds a trailing underscore (``"_"``) to the name
        except for ``"."`` and ``".."``.

        Args:
            e (ValidationError): A reserved name error.

        Returns:
            str: The converted name.
        r   r   r    r   r   r   r   add_trailing_underscoren   r$   z+ReservedNameHandler.add_trailing_underscorec                 C   s   |j S )zReserved name handler that returns the name as is.

        Args:
            e (ValidationError): A reserved name error.

        Returns:
            str: The name as is.
        )r!   r   r   r   r   as_is   s   zReservedNameHandler.as_isN)	r   r   r   r   r   r   r#   r%   r&   r   r   r   r   r   \   s    r   )__doc__r	   r   typingr   errorr   r   ValidationErrorHandlerr   r   r   r   r   r   r   r   r   <module>   s    