: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.

Note

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.

Note

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: