Provides an extended EnumMeta type.

Allows usage of inlined docstrings on Enum’s members:

from deluxe.enums import Enum

class Colors(Enum):
    black = "#00000"
    """Pure black color."""

    red = "#FF000"
    """Pure red color."""

Note

Inlined docstrings require source code to be available at runtime. They will not work in interactive Python sessions or code executed with python -c.

Make the __set_name__() method of members to be called if present:

from deluxe.enums import Enum

class Named:
    def __init__(self, value: object) -> None:
        self.my_value: object = value
        self.my_name: str
        self.__objclass__: type

    def __set_name__(self, owner: type, name: str) -> None:
        self.my_name = name
        self.__objclass__ = owner

    def __str__(self) -> str:
        return f"member {self.my_name} of {self.__objclass__} with value {self.my_value}"

class MyEnum(Enum):
    ONE = Named(value = 1)
    TWO = Named(value = "2")

>>> print(MyEnum.ONE.value)
member ONE of <enum 'MyEnum'> with value 1

Module Contents

Classes

Enum

Standard python enum.Enum class with…

Attributes

EnumType

Subclass of python standard…

EnumType[source]

Subclass of python standard enum.EnumType metaclass.

Features:
  • Add support for inlined docstrings on members.

  • Make the __set_name__() method of members to be called if present.

class Enum[source]

Extends: enum.Enum

Standard python enum.Enum class with deluxe EnumType as metaclass.