Skip to main content

Sphinx extension to automatically generate autosummary tables for Python packages

Project description

sphinx-autopackagesummary

This is a Sphinx extension that makes it possible to automatically generate API documentation for deeply nested Python packages using the built-in autosummary extension.

The problem with the built-in autosummary directive is that it does not automatically pick up nested sub-modules, requiring tedious manual work to specify the entire module tree.

Instead of this:

.. autosummary::
   :toctree: _autosummary

   mypackage.submodule1
   mypackage.submodule2
   mypackage.submodule3

You can now simply use this:

.. autopackagesummary:: mypackage
   :toctree: _autosummary

Usage

To make use of this extension, the following steps are needed:

  1. Install the module using pip.
pip install sphinx-autopackagesummary
  1. Enable it in conf.py.
extensions = ['sphinx.ext.autosummary', 'sphinx_autopackagesummary']

autosummary_generate = True
  1. Make use of the new syntax

Configuration

The autopackagesummary directive accepts all options that are supported by autosummary, which are simply passed on.

To exclude packages from being imported, add them to the config setting autosummary_mock_imports.

Recursive generation

If your packages have subpackages, it is possible to use this recursively by customizing the autosummary template. For example, you could have your root package documented like so:

.. py:package:: mypackage

   This is my package.

   .. autopackagesummary:: mypackage
      :toctree: _autosummary
      :template: autosummary/package.rst

And then create a _templates/autosummary/package.rst like so:

{{ fullname | escape | underline }}

.. automodule:: {{ fullname }}

   .. autopackagesummary:: {{ fullname }}
      :toctree: .
      :template: autosummary/package.rst

Alternatively, you can override the default module.rst template.

Note the use of . for the toctree setting: otherwise, the _autosummary directories would keep nesting, like _autosummary/_autosummary/module.rst.

License

This extension has been placed into the public domain. If you make a contribution to this repository, you are placing your modifications into the public domain as well.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sphinx_autopackagesummary-1.4.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sphinx_autopackagesummary-1.4-py3-none-any.whl (5.2 kB view details)

Uploaded Python 3

File details

Details for the file sphinx_autopackagesummary-1.4.tar.gz.

File metadata

  • Download URL: sphinx_autopackagesummary-1.4.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sphinx_autopackagesummary-1.4.tar.gz
Algorithm Hash digest
SHA256 74addecd928b938311326c98a5f8c82d0780c56148d3bfff1bd7d4fdf056fda6
MD5 6e2ed62ad0fd43bfd043bae67cd7f6e5
BLAKE2b-256 ce988d0c9229f990bcd4763e903c919aa535115dfc0394ffbb2aa1ff2e10cca3

See more details on using hashes here.

File details

Details for the file sphinx_autopackagesummary-1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for sphinx_autopackagesummary-1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ed8f76b9e5face77db07dd3934099402a91f9a0d1069b4d9bd39519c19555be3
MD5 0be5997351b38e1493a34dab3b792500
BLAKE2b-256 11f0f878ce9c5d23a25c2b4177000bfc911ce5f92fb272ba5b659e494d891fdd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page