Skip to content
Generate readable documentation for users based on source code with epytext-formatted docstrings, with support for zope.interface.
Python HTML CSS JavaScript
Branch: master
Clone or download
glyph Merge pull request #159 from boxingbeetle/epydoc_various
Various epydoc changes:

- more code removal
- fixed breakage when recent-ish docutils are used
- improve test coverage
- modernization (for readability, not specific to py3)

One of the modernization changes was also applied outside of epydoc (to ``); all the rest is strictly epydoc only.
Latest commit a80c1f8 Aug 21, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
pydoctor Merge HTMLDoctestColorizer into its base class Aug 7, 2019
.gitignore use incremental Sep 4, 2017
.travis.yml Fix travis.yml. Jul 19, 2016
LICENSE.txt hey, it's 2008 Aug 17, 2008 fix up manifest May 21, 2015
README.rst initial fix. Jul 19, 2016
setup.cfg Automatically find packages to install Aug 7, 2019
tox.ini Remove epydoc as a requirement Jul 30, 2019
twisted.cfg make the NevowWriter the default. Nov 2, 2006



This is 'pydoctor', an API documentation generator that works by static analysis.

It was written primarily to replace epydoc for the purposes of the Twisted project as epydoc has difficulties with zope.interface. If it happens to work for your code too, that's a nice bonus :)

pydoctor puts a fair bit of effort into resolving imports and computing inheritance hierarchies and, as it aims at documenting Twisted, knows about zope.interface's declaration API and can present information about which classes implement which interface, and vice versa.

The default HTML generator requires Twisted.

There are some more notes in the doc/ subdirectory.

Tox development environment

Since Python 3 is not yet supported, you the case in which your default tox runs with Python 3, call the tox as:

python2 -m tox -e pyflakes

Sphinx Integration

HTML generator will also generate a Sphinx objects inventory using the following mapping:

  • packages, modules -> py:mod:
  • classes -> py:class:
  • functions -> py:func:
  • methods -> py:meth:
  • attributes -> py:attr:

Configure Sphinx intersphinx extension:

intersphinx_mapping = {
'pydoctor': ('http://domain.tld/api', None),


Use external references:

:py:func:`External API <pydoctor:pydoctor.model.Documentable.reparent>`


It can link to external API documentation using Sphinx objects inventory using the following cumulative configuration option:


Releasing a new package

Releasing a new version is done via Travis-CI. First commit the version update to master and wait for tests to pass. Create a tag on local branch and then push it:

git tag 1.2.3
git push --tags
You can’t perform that action at this time.