This page is primarily about tools that help, specifically, in generatingdocumentation for software written in Python,i.e., tools that can use language-specific features to automate at least a part of the code documentation work for you.The last section also lists general documentation tools with no specific support for Python (though some of them are themselves written in Python).
Tools that support auto-documentation of code can be broadly classified into tools that:
Seehere for a longer explanation of the two concepts.
Tools that generate documentation from user-provided input typically use plain text markup formats such asreStructuredText (reST, the markup used for writing the official Python documentation) orMarkdown.
Python modules are usually documented using docstrings. You can read a module's docstrings from the Python interactive prompt with thehelp() function. For example:
import distutilshelp(distutils)
Thehelp() function uses Python's standard pydoc module, as does thepydoc command that comes with Python.
autosummary, an extension for the Sphinx documentation tool.
autodoc, a Sphinx-based processor that processes/allows reST doc strings.
pdoc, a simple Python 3 command line tool and library to auto-generate API documentation for Python modules. Supports Numpydoc / Google-style docstrings, doctests, reST directives, PEP 484 type annotations, custom templates ...
pdoc3, a fork of pdoc for Python 3 with support for Numpydoc / Google-style docstrings, doctests, LaTeX math, reST directives, PEP 484 type annotations, custom templates ...
PyDoc, a documentation browser (in HTML) and/or an off-line reference manual. Also in the standard library aspydoc.
pydoctor, a replacement for now inactive Epydoc, born for the needs of Twisted project.
Doxygen can create documentation in various formats (HTML, LaTeX, PDF, ...) and you can include formulas in your documentation (great for technical/mathematical software). Together withGraphviz, it can create diagrams of your code (inhertance diagram, call graph, ...). Another benefit is that it handles not only Python, but also several other programming languages like C, C++, Java, etc.
AnotherPythonDoc - usesJavaDoc-style comments, and produces HTML and XML output. Can also be used as a library, producingElementTree descriptions of your source code.http://effbot.org/zone/pythondoc.htm
Endo from Enthought Tool Suite - generates HTML API documentation from docstrings and from plain comments that immediately precede variable assignments.
Pudge (defunct)
HappyDoc (not supported) - documentation extraction tool that uses the parse tree for a module to derive the information used in its output, rather that importing the module directly.
EasyDoc - uses an HTML-like markup language, similar to the language used byJavaDoc; and produces HTML output (http://htmltmpl.sourceforge.net/easydoc.html)
PythonDoc - usesStructuredText input format (not reST), and can produce HTML and XML output. It uses XML as an intermediate representation, to simplify the addition of new output formats.http://starship.python.net/crew/danilo/pythondoc/
Apydia,http://apydia.ematia.de/
DocUtils,http://docutils.sourceforge.net/reStructuredText processing engine
Sphinx,https://www.sphinx-doc.org/ - converts reStructuredText documentation into various formats
XIST - an XML based extensible HTML generator written in Python.
HtmlGen - a Python library for generating HTML documents.
Pandoc -- written in Haskell, this tool can read and write a number of formats (including reST).
Rippledoc (formerly known as Gouda) -- a command-line tool written in Clojure (using Pandoc under the hood) to generate multi-chapter html documents from Markdown text files.
DocumentationTools (last edited 2023-02-04 13:42:35 byGilOliveira)
Unable to edit the page? See the FrontPage for instructions.