An enum library for Python.
enum: A simple enum implementation that maps a variable to a constant.RichEnum: An enum implementation that offers more functionality than a basic enum, including a canonical name and a display name.OrderedRichEnum: LikeRichEnum, but each enum value also has an index and iteration is sorted by index.
pip install richenum>>> from richenum import enum
>>> MY_ENUM = enum(FOO=1, BAR=2)
>>> MY_ENUM.FOO
1
>>> MY_ENUM.BAR
2>>> from richenum import RichEnum, RichEnumValue
>>> class MyRichEnum(RichEnum):
... FOO = RichEnumValue(canonical_name="foo", display_name="Foo")
... BAR = RichEnumValue(canonical_name="bar", display_name="Bar")
...
>>> MyRichEnum.FOO
RichEnumValue - canonical_name: 'foo' display_name: 'Foo'
>>> MyRichEnum.from_canonical("foo")
RichEnumValue - canonical_name: 'foo' display_name: 'Foo'>>> from richenum import OrderedRichEnum, OrderedRichEnumValue
>>> class MyOrderedRichEnum(OrderedRichEnum):
... FOO = OrderedRichEnumValue(index=1, canonical_name="foo", display_name="Foo")
... BAR = OrderedRichEnumValue(index=2, canonical_name="bar", display_name="Bar")
...
>>> MyOrderedRichEnum.FOO
OrderedRichEnumValue - idx: 1 canonical_name: 'foo' display_name: 'Foo'
>>> MyOrderedRichEnum.from_canonical("foo")
OrderedRichEnumValue - idx: 1 canonical_name: 'foo' display_name: 'Foo'
>>> MyOrderedRichEnum.from_index(1)
OrderedRichEnumValue - idx: 1 canonical_name: 'foo' display_name: 'Foo'django-richenum: MakesRichEnumandOrderedRichEnumavailable as model and form fields in Django. GitHub, PyPIenum: Starting with Python 3.4, there is a standard library for enumerations. This package has a similar API but is not directly compatible.
- Fork the repo from GitHub.
- Make your changes.
- Add unittests for your changes.
- Run pep8, pyflakes, and pylint to make sure your changes follow the Python style guide and do not have any errors.
- Add yourself to the AUTHORS file (in alphabetical order).
- Send a pull request from your fork to the main repo.