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¶
Standard python |
Subclass of python standard… |
- EnumType[source]¶
Subclass of python standard
enum.EnumTypemetaclass.- Features:
Add support for inlined docstrings on members.
Make the __set_name__() method of members to be called if present.