skillfed

pydoctor

API doc generator.

pydoctor v25.10.1 110.5K downloads/30d#12,453 on PyPI223
Permissive license MIT/X11 Active released

What it is and what it does

pydoctor is a standalone API documentation generator that builds reference docs by parsing Python source code without executing it. It was created to replace epydoc for the Twisted project, particularly to handle zope.interface declarations that epydoc struggled with. The tool performs static analysis to resolve imports, compute inheritance hierarchies, and understand interface implementations.

It supports five docstring markup formats—epytext (the default), reStructuredText, Google style, Numpy style, and plaintext—letting you choose the format that fits your project. pydoctor can generate HTML output with multiple theme options, integrates with Sphinx via intersphinx for cross-linking to external docs, and handles modern Python features including namespace packages (PEP 420) and generic types. Recent versions added support for doc-comments (Sphinx-style `#:` comments) and improved C-module introspection.

Use it for:

  • Generate API docs for Twisted-like projects that use zope.interface heavily
  • Migrate from epydoc to a Python 3-native documentation tool without rewriting docstrings
  • Build searchable HTML API reference for a library with multiple docstring styles across modules
  • Integrate API docs into a Sphinx project using intersphinx for unified cross-linking
  • Document namespace packages and modern Python code structures that older tools don't handle

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

pydoctor generates API documentation from Python source code through static analysis, supporting multiple docstring formats including epytext, reStructuredText, Google, and Numpy styles.

Yes. pydoctor is mature, actively maintained, has no known vulnerabilities, and installs cleanly. It solves a real problem (epydoc replacement with zope.interface support) and is the right choice if you need static API doc generation, especially for Twisted-adjacent projects or if you're migrating from epydoc. The broad docstring format support and modern Python compatibility make it suitable for most new projects.

Install

pydoctor on PyPI

pip

pip install pydoctor

uv

uv add pydoctor

poetry

poetry add pydoctor

Installing pydoctor

Before you install

Low install friction with a pure-wheel distribution. Actively maintained with recent commits and no known vulnerabilities. Supports Python 3.9 through 3.14 and PyPy, with mature status and over a decade of development history.

License in practice

MIT/X11 permissive license allows use in both open-source and proprietary projects with minimal restrictions.

Quickstart

pip install pydoctor
pydoctor --html-output=docs/api src/mylib

Requires Python 3.9 or later; project source must be discoverable via static analysis.

Verify before relying

  • Whether the package handles all zope.interface patterns correctly in practice
  • Performance characteristics on very large codebases
  • Completeness of C-module introspection support beyond data descriptors

Package facts

License MIT/X11 (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 10 — platformdirs, CacheControl, Twisted, urllib3, requests, attrs, docutils, lunr, configargparse, tomli
Maintenance actively maintained — 319 days since the last release
Last repo commit
First released
Downloads 110,549/month — #12,453 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pydoctor-25.10.1-py3-none-any.whl

Development Status :: 6 - MatureIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: DocumentationTopic :: Software Development :: Documentation

Tags

api documentation generatorpython docstring parserstatic analysis doc toolepydoc replacementzope.interface documentationhtml api docs from sourcepython code introspection
static-analysisapi-referencedocstring-parser

More Documentation packages