1. Melissa Draper
  2. sphinx


sphinx / doc / ext / autodoc.rst

:mod:`sphinx.ext.autodoc` -- Include documentation from docstrings

This extension can import the modules you are documenting, and pull in documentation from docstrings in a semi-automatic way.


For Sphinx (actually, the Python interpreter that executes Sphinx) to find your module, it must be importable. That means that the module or the package must be in one of the directories on :data:`sys.path` -- adapt your :data:`sys.path` in the configuration file accordingly.

For this to work, the docstrings must of course be written in correct reStructuredText. You can then use all of the usual Sphinx markup in the docstrings, and it will end up correctly in the documentation. Together with hand-written documentation, this technique eases the pain of having to maintain two locations for documentation, while at the same time avoiding auto-generated-looking pure API documentation.

:mod:`autodoc` provides several directives that are versions of the usual :rst:dir:`py:module`, :rst:dir:`py:class` and so forth. On parsing time, they import the corresponding module and extract the docstring of the given objects, inserting them into the page source under a suitable :rst:dir:`py:module`, :rst:dir:`py:class` etc. directive.


Just as :rst:dir:`py:class` respects the current :rst:dir:`py:module`, :rst:dir:`autoclass` will also do so. Likewise, :rst:dir:`automethod` will respect the current :rst:dir:`py:class`.

There are also new config values that you can set:

Docstring preprocessing

autodoc provides the following additional events:

The :mod:`sphinx.ext.autodoc` module provides factory functions for commonly needed docstring processing in event :event:`autodoc-process-docstring`:

Skipping members

autodoc allows the user to define a custom method for determining whether a member should be included in the documentation by using the following event: