Skip to main content

richenum

Build Status Latest PyPI Version Python versions PyPI Downloads

About

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: Like RichEnum, but each enum value also has an index and iteration is sorted by index.

Links

Installation

pip install richenum

Example Usage

enum

>>> from richenum import enum
>>> MY_ENUM = enum(FOO=1, BAR=2)
>>> MY_ENUM.FOO
1
>>> MY_ENUM.BAR
2

RichEnum

>>> 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'

OrderedRichEnum

>>> 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'

Related Packages

  • django-richenum: Makes RichEnum and OrderedRichEnum available as model and form fields in Django. GitHub, PyPI
  • enum: Starting with Python 3.4, there is a standard library for enumerations. This package has a similar API but is not directly compatible.

Contributing

  1. Fork the repo from GitHub.
  2. Make your changes.
  3. Add unittests for your changes.
  4. Run pep8, pyflakes, and pylint to make sure your changes follow the Python style guide and do not have any errors.
  5. Add yourself to the AUTHORS file (in alphabetical order).
  6. Send a pull request from your fork to the main repo.

Changelog

2.1.0 (2026-16-03)

  • Add Python 3.14 support and migrate to Poetry

2.0.2 (2024-10-01)

  • Remove unavailable link for blog post from README.md.

2.0.1 (2024-06-06)

  • Fix README.md.

2.0.0 (2024-06-04)

  • Remove six
  • Remove Python 3.7 support
  • Add Python 3.9 and 3.10 support
  • Remove tox.ini

1.2.1 (2016-09-16)

  • EnumLookupError now inherits from built-in LookupError.

1.2.0 (2016-04-15)

  • Add simple LookupError members that are thrown when RichEnum.lookup is called for a nonexistent attr/val pair.
  • Users can choose to catch either the specific LookupError or continue to catch EnumLookupError.

1.1.0 (2014-04-17)

  • Support for Python 3 and PyPy

1.0.4 (2013-12-03)

  • Better unicode handling in __str__, __unicode__, and __repr__.

1.0.3 (2013-12-03)

  • Stop throwing warnings.

1.0.2 (2013-11-05)

  • Suppress warnings from mismatched type comparisons when generated in RichEnum.lookup.

1.0.1 (2013-09-20)

  • Raise warnings when comparing enum values to other types, but not when checking membership or comparing to None.

1.0.0 (2013-08-16)

  • Initial public release.

Metadata

Release files for richenum 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for richenum 2.1.0
File Size Uploaded
richenum-2.1.0.tar.gz 6.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for richenum 2.1.0
File Interpreter ABI Platform
richenum-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.4 kB

Release files / richenum-2.1.0.tar.gz

Download URL richenum-2.1.0.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
78cd3e69c05ad269fc1c87a971a85d4d026f787facaeb738656b5cddc7e39e9e
BLAKE2b-256 checksum
How to use checksums
fa43446c6b18b481a68a2b02d606ed1fb99afb85cfae53721eeb6814c376c0f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 16, 2026.

Transparency log

Release files / richenum-2.1.0-py3-none-any.whl

Download URL richenum-2.1.0-py3-none-any.whl
Size 7.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
60ab6bcd58d989007976b461ab94cc555d440e7158bd45ceb1a6c31e990f8000
BLAKE2b-256 checksum
How to use checksums
6cb04e242507a6415d05b831fc08333a63eda3ea7f6756ba4b8bda0c38e6f1a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 release files

2.0.2

2 release files

2.0.1

2 release files

1.3.1

2 release files

1.2.1

1 release file

1.2.0

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1.0.5

1 release file

1.0.4

1 release file

1.0.3

1 release file

1.0.2

1 release file

1.0.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page