o
    L¾±h¨  ã                   @  s>   d dl mZ d dlmZ d dlmZ G dd„ deƒZdgZdS )é    )Úannotations)ÚEnum)ÚAnyc                   @  s   e Zd ZdZeddd„ƒZdS )Ú
NoAutoEnumaû  Enum base class that prohibits the use of enum.auto() for value assignment.

    This behavior is achieved by overriding the value generation mechanism.

    Examples:
        >>> from enum import auto
        >>> from narwhals._enum import NoAutoEnum
        >>>
        >>> class Colors(NoAutoEnum):
        ...     RED = 1
        ...     GREEN = 2
        >>> Colors.RED
        <Colors.RED: 1>

        >>> class ColorsWithAuto(NoAutoEnum):
        ...     RED = 1
        ...     GREEN = auto()
        Traceback (most recent call last):
        ...
        ValueError: Creating values with `auto()` is not allowed. Please provide a value manually instead.

    Raises:
        ValueError: If `auto()` is attempted to be used for any enum member value.
    ÚnameÚstrÚstartÚintÚcountÚlast_valuesú	list[Any]Úreturnr   c                 C  s   d}t |ƒ‚)NzVCreating values with `auto()` is not allowed. Please provide a value manually instead.)Ú
ValueError)r   r   r
   r   Úmsg© r   úO/var/www/html/Persson_Maskin/env/lib/python3.10/site-packages/narwhals/_enum.pyÚ_generate_next_value_"   s   z NoAutoEnum._generate_next_value_N)
r   r   r   r	   r
   r	   r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r   r   r   r   r      s    r   N)Ú
__future__r   Úenumr   Útypingr   r   Ú__all__r   r   r   r   Ú<module>   s
    
"