sphinxcontrib-enum
Sphinx directive for documenting dataclass enums in tabular format, with support for enum-properties.
Render dataclass enums as tables with a row for each member and a column for every field. Tables can optionally offer CSV and JSON download buttons. Enums with dataclass values, named tuple values and plain enums work too, and enum-properties enums are also supported!
Installation
pip install sphinxcontrib-enum
To document enum-properties enums, install the properties extra to get a supported version of enum-properties:
pip install "sphinxcontrib-enum[properties]"
Add the extension to your conf.py:
extensions = [
...
"sphinxcontrib_enum",
]
Quick Start
Dataclass Enums
Each dataclass field becomes a column. Field docstrings can describe the columns in an optional legend:
from dataclasses import dataclass
from enum import Enum
@dataclass(frozen=True)
class PlanetData:
mass: float
"""Mass in kilograms."""
radius: float
"""Radius in meters."""
#: Number of known moons.
moons: int
class Planet(PlanetData, Enum):
MERCURY = 3.303e23, 2.4397e6, 0
VENUS = 4.869e24, 6.0518e6, 0
EARTH = 5.976e24, 6.37814e6, 1
MARS = 6.421e23, 3.3972e6, 2
.. enum-table:: mypackage.Planet
:legend:
:download:
Member Docstrings
Member docstrings are rendered in a doc column. They are parsed as reStructuredText:
from enum import IntEnum
class Severity(IntEnum):
DEBUG = 10
"""Diagnostic detail, usually disabled in production."""
INFO = 20
"""Routine operational messages."""
#: Something unexpected happened that the application **recovered** from.
WARNING = 30
ERROR = 40
"""A failure that needs attention.
See :ref:`usage` for how to render these tables."""
CRITICAL = 50
.. enum-table:: mypackage.Severity
:download:
enum-properties
enum-properties properties become columns, described by their annotation docstrings:
import typing as t
from enum_properties import EnumProperties, Symmetric
class Shade(EnumProperties):
label: t.Annotated[str, Symmetric()]
"""A human readable label."""
hex: t.Annotated[str, Symmetric(case_fold=True)]
"""The hex color code, without a leading ``#``."""
RED = 1, "Red", "ff0000"
GREEN = 2, "Green", "00ff00"
BLUE = 3, "Blue", "0000ff"
.. enum-table:: mypackage.Shade
:legend:
:download:
Columns, members, headers, widths, captions, download formats and cell formatting can all be customized:
.. enum-table:: mypackage.Planet
:columns: name, radius
:members: EARTH, MERCURY
:headers: name=Planet, radius=Radius (m)
:caption: The inner planets.
Documentation
Full documentation is available at sphinxcontrib-enum.readthedocs.io.
Development
git clone https://github.com/bckohan/sphinxcontrib-enum.git
cd sphinxcontrib-enum
just setup
just install
just test
Contributing
Contributions are welcome! Please see CONTRIBUTING.md.
Release files for sphinxcontrib-enum 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sphinxcontrib_enum-0.3.0.tar.gz | 529.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sphinxcontrib_enum-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 548.1 kB
Release files / sphinxcontrib_enum-0.3.0.tar.gz
| Download URL | sphinxcontrib_enum-0.3.0.tar.gz |
|---|---|
| Size | 529.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5bf8ede2a70503c3215c966a9c954f841cd9d150c8d632ce305c18a6779d988d
|
|
BLAKE2b-256 checksum How to use checksums |
9e37500a6ba033b9a650a6d25e1cbd639d003069cdcd5798e7b4562e6d03bbe1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 29, 2026.
Transparency logRelease files / sphinxcontrib_enum-0.3.0-py3-none-any.whl
| Download URL | sphinxcontrib_enum-0.3.0-py3-none-any.whl |
|---|---|
| Size | 18.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d4cc3260ffbadf8c26b23ade7c7c3a2a0bc0c8d4eb82f68930b8734c9e4d8a79
|
|
BLAKE2b-256 checksum How to use checksums |
c2c3a8213a1de38f27c53bf14f5d2bf63102d52be75893f155c90ffd2db43e6c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 29, 2026.
Transparency log