Skip to main content

sphinxcontrib-enum

License: MIT Ruff PyPI version PyPI pyversions PyPI status Documentation Status Code Cov Test Status Lint Status OpenSSF Scorecard

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:
The Planet enum rendered as a table with name, mass, radius and moons columns, a legend describing each column and CSV and JSON download buttons

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:
The Severity enum rendered as a table with name, value and doc columns, the doc column holding each member's rendered docstring

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:
The Shade enum rendered as a table with name, value, label and hex columns and a legend describing the label and hex columns

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/sphinx-contrib/enum.git
cd sphinxcontrib-enum
just setup
just install
just test

Contributing

Contributions are welcome! Please see CONTRIBUTING.md.

Metadata

Release files for sphinxcontrib-enum 0.3.2

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

Source distribution (sdist)

Source distribution for sphinxcontrib-enum 0.3.2
File Size Uploaded Provenance
sphinxcontrib_enum-0.3.2.tar.gz 533.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for sphinxcontrib-enum 0.3.2
File Interpreter ABI Platform
sphinxcontrib_enum-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 552.7 kB

Release files / sphinxcontrib_enum-0.3.2.tar.gz

Download URL sphinxcontrib_enum-0.3.2.tar.gz
Size 533.9 kB
Tags Source
SHA-256 checksum
How to use checksums
796bf8c1d480db5787d7a0ee2d87967b47309563fc41c7c456d0d4e015e04bb6
BLAKE2b-256 checksum
How to use checksums
e0978497b24550e3f9c811e2587a93ca62c1dcd6180970b3139ae1cba5a90737
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 Oct 23, 2026.

Transparency log

Release files / sphinxcontrib_enum-0.3.2-py3-none-any.whl

Download URL sphinxcontrib_enum-0.3.2-py3-none-any.whl
Size 18.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
338b6bbb9442e6ab143c01328e26297841a1e3fa1d573107bd15ab100e8cfe60
BLAKE2b-256 checksum
How to use checksums
4bcf9048be5116da2c10d760ad35c8e4b24e5ed1ea66f8a434ee0e3e204f6505
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 Oct 23, 2026.

Transparency log

Security for sphinxcontrib-enum 0.3.2

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for sphinxcontrib_enum-0.3.2.tar.gz

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 Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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