Description
Sphinx AutoAPI ============== .. image:: https://readthedocs.org/projects/sphinx-autoapi/badge/?version=latest :target: https://sphinx-autoapi.readthedocs.org :alt: Documentation .. image:: https://github.com/readthedocs/sphinx-autoapi/actions/workflows/main.yml/badge.svg?branch=main :target: https://github.com/readthedocs/sphinx-autoapi/actions/workflows/main.yml?query=branch%3Amain :alt: Github Build Status .. image:: https://img.shields.io/pypi/v/sphinx-autoapi.svg :target: https://pypi.org/project/sphinx-autoapi/ :alt: PyPI Version .. image:: https://img.shields.io/pypi/pyversions/sphinx-autoapi.svg :target: https://pypi.org/project/sphinx-autoapi/ :alt: Supported Python Versions .. image:: https://img.shields.io/badge/code%20style-ruff-000000.svg :target: https://docs.astral.sh/ruff/ :alt: Formatted with Ruff Sphinx AutoAPI is a Sphinx extension for generating complete API documentation without needing to load, run, or import the project being documented. In contrast to the traditional `Sphinx autodoc <https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html>`_, which requires manual authoring and uses code imports, AutoAPI finds and generates documentation by parsing source code. For more information, see `the full documentation <https://sphinx-autoapi.readthedocs.org>`_. Getting Started --------------- The following steps will walk through how to add AutoAPI to an existing Sphinx project. For instructions on how to set up a Sphinx project, see `Sphinx's documentation <https://www.sphinx-doc.org/en/master/usage/quickstart.html>`_. Installation ~~~~~~~~~~~~ AutoAPI can be installed through pip: .. code-block:: bash pip install sphinx-autoapi Next, add and configure AutoAPI in your Sphinx project's `conf.py`. .. code-block:: python extensions.append('autoapi.extension') autoapi_dirs = ['path/to/source/files', 'src'] When the documentation is built, AutoAPI will now generate API documentation into an `autoapi/` directory and add an entry to the documentation in your top level table of contents! To configure AutoAPI behaviour further, see the `Configuration documentation <https://sphinx-autoapi.readthedocs.io/en/latest/reference/config.html>`_. Contributing ------------ Running the tests ~~~~~~~~~~~~~~~~~ Tests are executed through `tox <https://tox.readthedocs.io/en/latest/>`_. .. code-block:: bash tox Code Style ~~~~~~~~~~ Code is formatted using `ruff <https://docs.astral.sh/ruff>`_. You can check your formatting using ruff format's check mode: .. code-block:: bash tox -e format You can also get ruff to format your changes for you: .. code-block:: bash ruff format Release Notes ~~~~~~~~~~~~~ Release notes are managed through `towncrier <https://towncrier.readthedocs.io/en/stable/index.html>`_. When making a pull request you will need to create a news fragment to document your change: .. code-block:: bash tox -e release_notes -- create --help Versioning ---------- We use `SemVer <https://semver.org/>`_ for versioning. For the versions available, see the `tags on this repository <https://github.com/readthedocs/sphinx-autoapi/tags>`_. License ------- This project is licensed under the MIT License. See the `LICENSE.rst <LICENSE.rst>`_ file for details.
Release History
| Version | Changes | Urgency | Date |
|---|---|---|---|
| 3.8.0 | Imported from PyPI (3.8.0) | Low | 4/21/2026 |
| v3.8.0 | # Features * Autodoc-style directives can access members excluded by autoapi_options # Misc * #553 | Low | 3/8/2026 |
| v3.7.0 | # Features * Added autoapi.import warning for when AutoAPI directives are given non-existent objects * Adding autoapi_follow_symlinks, which allows api to traverse into symlinked directories when generating the API documentation. * Drop support for Python 3.9 and officially support Python 3.14 * Support rendering PEP-695 type parameters # Bugfixes * Render typing_extensions.TypeAlias like other type aliases (#520) * Fix PythonFunction.overloads typing when source code overload(s) do | Low | 2/11/2026 |
| v3.6.1 | # Bugfixes * Update the supported versions of astroid. Fix the breaking change to Import and pass in the AstroidManager to the AstroidBuilder (#536) | Low | 10/6/2025 |
| v3.6.0 | # Features - Render type aliases properly rather than as an assignment (#414) # Misc - Drop support for Python 3.8 - Fix readthedocs build | Low | 2/18/2025 |
| v3.5.0 | # Features * Can exclude directories from being documented (#312) # Bugfixes * Fix exception when calling a function imported from a wildcard (#508) * Remove usage of astroid alpha builds (#512) # Misc * #502, #510, #511 * Fix formatting failure in tests | Low | 2/10/2025 |
| v3.4.0 | # Features * NamedTuples that have been created with functional syntax are documented as a class (#485) # Misc * #484, #490, #498 | Low | 11/30/2024 |
| v3.3.3 | # Bugfixes * Document packages and modules under a single "submodules" heading (#450) * Fix crash when `__init__` is assigned to (#488) * Fix documenting incorrect attributes from `__init__` (#497) # Misc * #426, #462, #491, #492 | Low | 10/26/2024 |
| v3.3.2 | # Bugfixes * Fix types missing from documentation generated by autodoc-style directives. (#473) | Low | 9/25/2024 |
| v3.3.1 | # Bugfixes * Fix all class members missing when documenting a module with the same name as a standard library module. Members inherited from the standard library can also have their skip value overridden by autoapi-skip-member. (#478) # Misc * Updated all github actions. | Low | 9/2/2024 |
| v3.3.0 | # Features * Do not document members inherited from standard library classes (#467) # Bugfixes * Fix instance attributes not being documented by inherited-members (#477) # Misc * #425 * Fix the parser returning a dictionary instead of a list in the empty parse scenario * Rename testenvs to all follow similar naming style | Low | 8/29/2024 |
| v3.2.1 | # Bugfixes - Fix error or duplicates definitions when ``__init__`` assigns to a property (#466) | Low | 7/23/2024 |
| v3.2.0 | # Features - functools.cached_property is considered a property (#436) # Bugfixes - Gracefully handle no objects being rendered (#448) - Fix ignoring undocumented instance attributes (#451) # Deprecations and Removals - Removed ability for autoapi_template_dir to be relative to cwd. This was supposed to have been retired in v3 (#457) - Removed autoapi_include_summaries option. This was supposed to have been retired in v3 # Misc - #428, #449 | Low | 7/20/2024 |
| v3.1.2 | # Bugfixes - Fix imported members being rendered in modules (#452) | Low | 6/20/2024 |
| v3.1.1 | # Bugfixes - Fix private subpackages causing orphan pages (#446) | Low | 5/23/2024 |
| v3.1.0 | # Features - Objects can render to their own page (#226) - Render PEP-695 type aliases as TypeAlias assignments. (#414) # Bugfixes - Values are always rendered for TypeAlises and PEP-695 type aliases. (#224) - Fix submodule with `__init__.pyi` documented as `__init__` instead of submodule name (#398) - Fix IndexError when a module docstring contains only a heading (#412) - Preserve strings inside Literal type annotations (#423) - Stopped using xrefs in page titles (#427) - Fix u | Low | 5/20/2024 |
| v3.1.0b0 | # Features - Objects can render to their own page (#226) - Render PEP-695 type aliases as TypeAlias assignments. (#414) # Bugfixes - Values are always rendered for TypeAlises and PEP-695 type aliases. (#224) - Fix submodule with __init__.pyi documented as __init__ instead of submodule name (#398) - Fix IndexError when a module docstring contains only a heading (#412) - Preserve strings inside Literal type annotations (#423) - Stopped using xrefs in page titles (#427) - Fix emittin | Low | 4/12/2024 |
| v3.1.0a4 | # Features - Objects can render to their own page (#226) # Bugfixes - Children not present in `__all__` are not rendered. (#226) - Fix emitting ignore event twice for methods. (#226) - Corrected documentation around `imported-members` to reflect that it applies only to objects imported into a package, not modules. (#226) - Fix path error on Windows. (#226) - Fix submodule with `__init__.pyi` documented as `__init__` instead of submodule name (#398) - Fix IndexError when a modu | Low | 3/24/2024 |
| v3.1.0a3 | # Bugfixes - Rename "single page output" to "own page output". (#226) - Also added tests for own page output. (#226) - Fix some inherited members always being rendered. (#226) - Own page members of an entity are linked to after the docstring of the parent entity. (#226) - Fix entities below the "class" level that have their own page from rendering incorrectly. (#226) | Low | 2/16/2024 |
| v3.1.0a2 | # Bugfixes - Fix members inherited from Exception always being displayed (#226) | Low | 2/16/2024 |
| v3.1.0a1 | This is the first alpha release of version 3.1.0. This is being released as a pre-release version to allow users to test and give feedback about the changes relating to the new feature of allowing objects to render on their own page. # Features - Objects can render to their own page (#226) # Misc - #388 | Low | 2/1/2024 |
| v3.0.0 | # Bugfixes - Ensure `tooltip` is always a `str` - Replaced usage of deprecated sphinx.util.status_iterator (#391) # Deprecations and Removals - Removed support for documenting languages other than Python (#248) - Removed support for Python 3.7 # Misc - #389, #390, #392, #407 | Low | 9/30/2023 |
