FREEDOM251

Freedom251 › Documentation Generators

PyDoctor

Free plan LinuxMacWindows

Visit PyDoctor Alternatives

PyDoctor's own site

What PyDoctor is

PyDoctor is a free, standalone API documentation generator for Python modules, packages, and C modules. It statically analyzes source code and creates HTML pages that can be served without additional server-side support, along with an Intersphinx inventory for linking documentation. It generates separate pages for classes, modules, and packages and organizes details in tables. Supported docstring styles include epytext, reStructuredText, Google, NumPy, and plaintext. PyDoctor resolves imports and calculates inheritance hierarchies, and it understands zope.interface declarations, showing relationships between classes and interfaces. Sphinx inventories can link PyDoctor output with Sphinx documentation. Configuration works through pydoctor.ini, pyproject.toml, or setup.cfg, while command-line options cover themes, custom templates, and selected API objects. Installation instructions use PyPI with pip or apt on Debian derivatives. It runs on Linux, macOS, and Windows and supports publishing through GitHub Pages or Read the Docs.

Who it suits

PyDoctor is suited to Python library maintainers, especially projects with some internal subclassing. It also fits teams publishing static API references and linking them with Sphinx documentation.

What it does well

  • Free plan available
  • Generates static HTML API pages
  • Resolves imports and inheritance
  • Supports several docstring formats
  • Runs on Linux, macOS, and Windows

What to know first

  • Computed values need type annotations
  • Python 3.8 support was dropped
  • Best suited to libraries with internal subclassing

Verdict

PyDoctor provides static, configurable API documentation for Python projects, with inheritance, interface, and Sphinx-linking support. Its type-inference limitation and dropped Python 3.8 support are important compatibility considerations.

Facts from PyDoctor's own pages

API pages
Pydoctor generates a page for each class, module, and package, and presents information using tables. · pydoctor.readthedocs.io, 5 Oct 2026
Best fit
The FAQ describes PyDoctor as probably best suited to documenting libraries with some degree of internal subclassing. · pydoctor.readthedocs.io, 5 Oct 2026
Configuration
Pydoctor supports configuration through pydoctor.ini, pyproject.toml, and setup.cfg files. · pydoctor.readthedocs.io, 5 Oct 2026
Customization
The CLI provides options for themes, custom HTML templates, and which API objects to document. · pydoctor.readthedocs.io, 5 Oct 2026
Docstring formats
Supported docstring formats include epytext, reStructuredText, Google style, NumPy style, and plaintext. · pydoctor.readthedocs.io, 5 Oct 2026
Generated output
PyDoctor generates static HTML pages that need no additional server-side support. · pydoctor.readthedocs.io, 5 Oct 2026
Imports and inheritance
It resolves imports and computes inheritance hierarchies. · github.com, 5 Oct 2026
Inheritance and imports
The tool works to resolve imports and calculate inheritance hierarchies. · pydoctor.readthedocs.io, 5 Oct 2026
Installation
The documentation gives installation instructions through PyPI with pip and on Debian derivatives with apt. · pydoctor.readthedocs.io, 5 Oct 2026
Intended users
The documentation says pydoctor is probably best suited to documenting libraries with some degree of internal subclassing. · pydoctor.readthedocs.io, 5 Oct 2026
Interface support
It supports zope.interface and can show which classes implement which interfaces, and vice versa. · github.com, 5 Oct 2026
Maintainer context
The FAQ says PyDoctor was written for the Twisted project, whose needs remain the main driving force for its development. · pydoctor.readthedocs.io, 5 Oct 2026
Notable limitation
Pydoctor cannot infer types for computed values, so those need annotations for the type to appear in the generated documentation. · pydoctor.readthedocs.io, 5 Oct 2026
Notable Python version limit
The project changelog says Python 3.8 support was dropped in version 25.4.0. · github.com, 5 Oct 2026
Output
It generates static HTML files that can be served without extra server-side support. · pydoctor.readthedocs.io, 5 Oct 2026
Output organization
PyDoctor generates one page per class, module, and package, and presents information using tables. · pydoctor.readthedocs.io, 5 Oct 2026
Project background
Pydoctor was written primarily to replace epydoc for the Twisted project, and Twisted remains a main driver of its development. · pydoctor.readthedocs.io, 5 Oct 2026
Publishing
The documentation gives examples for publishing generated API docs with GitHub Pages and Read the Docs. · pydoctor.readthedocs.io, 5 Oct 2026
Purpose
PyDoctor is a standalone API documentation generator that uses static analysis of Python source code. · github.com, 5 Oct 2026
Security policy
The project says it follows Twisted’s security policy and directs security reports to GitHub Security Advisories. · github.com, 5 Oct 2026
Sphinx integration
The FAQ says Sphinx narrative documentation can link to API documentation formatted by PyDoctor. · pydoctor.readthedocs.io, 5 Oct 2026
Supported systems
The project changelog says it runs on Windows without requiring administrator privileges and describes testing supported platform combinations including Linux, macOS, and Windows. · github.com, 5 Oct 2026
Zope interfaces
Pydoctor recognizes zope.interface declarations and can show which classes implement which interfaces, and vice versa. · pydoctor.readthedocs.io, 5 Oct 2026

Where PyDoctor stands on Freedom251

Look at these too