dynadocΒΆ

Package Version PyPI - Status Tests Status Code Coverage Percentage Project License Python Versions

πŸ“ A Python library package which bridges the gap between rich annotations and automatic documentation generation with configurable renderers and support for reusable fragments.

Key Features ⭐¢

  • πŸ”„ Docstring Generation: Generation of docstrings for modules, classes, functions, and methods via introspection with fine-grained control.

  • 🧩 Fragment System: Reusable documentation snippets for consistent terminology across projects.

  • 🏷️ Annotation Metadata: Extraction and inclusion of metadata from annotations into generated docstrings.

  • πŸ”Œ Extensible Architecture: Custom renderers, attribute visibility rules, and introspection limiters.

  • πŸ“– Sphinx-Compatible Output: Render reStructuredText docstrings that work with Sphinx Autodoc out of the box.

  • 🎨 Configurable Renderers: Ability to extend with other renderers as desired.

Installation πŸ“¦ΒΆ

Via uv pip command:

uv pip install dynadoc

Or, via pip:

pip install dynadoc

Examples πŸ’‘ΒΆ

Please see the examples directory.

Function Documentation:

import dynadoc
from typing import Annotated

@dynadoc.with_docstring( )
def process_api_data(
    endpoint: Annotated[ str, dynadoc.Doc( "API endpoint URL to query" ) ],
    timeout: Annotated[ float, dynadoc.Doc( "Request timeout in seconds" ) ] = 30.0,
) -> Annotated[ dict, dynadoc.Doc( "Processed API response data" ) ]:
    ''' Process data from API endpoint with configurable timeout. '''
    return { }

Which will be turned into the following docstring on the function by the default renderer:

Process data from API endpoint with configurable timeout.

:argument endpoint: API endpoint URL to query
:type endpoint: str
:argument timeout: Request timeout in seconds
:type timeout: float
:returns: Processed API response data
:rtype: dict

Module Documentation:

Document all annotated attributes in current module:

import dynadoc

dynadoc.assign_module_docstring( __name__ )

More FlairΒΆ

GitHub last commit Copier Hatch pre-commit Pyright Ruff PyPI - Implementation PyPI - Wheel

Other Projects by This Author 🌟¢

  • python-absence (absence on PyPI)

    πŸ•³οΈ A Python library package which provides a sentinel for absent values - a falsey, immutable singleton that represents the absence of a value in contexts where None or False may be valid values.

  • python-accretive (accretive on PyPI)

    🌌 A Python library package which provides accretive data structures - collections which can grow but never shrink.

  • python-classcore (classcore on PyPI)

    🏭 A Python library package which provides foundational class factories and decorators for providing classes with attributes immutability and concealment and other custom behaviors.

  • python-falsifier (falsifier on PyPI)

    🎭 A very simple Python library package which provides a base class for falsey objects - objects that evaluate to False in boolean contexts.

  • python-frigid (frigid on PyPI)

    πŸ”’ A Python library package which provides immutable data structures - collections which cannot be modified after creation.

  • python-icecream-truck (icecream-truck on PyPI)

    🍦 Flavorful Debugging - A Python library which enhances the powerful and well-known icecream package with flavored traces, configuration hierarchies, customized outputs, ready-made recipes, and more.

  • python-mimeogram (mimeogram on PyPI)

    πŸ“¨ A command-line tool for exchanging collections of files with Large Language Models - bundle multiple files into a single clipboard-ready document while preserving directory structure and metadata… good for code reviews, project sharing, and LLM interactions.

Table of ContentsΒΆ

IndicesΒΆ