# Epydoc History

I originally became interested in automatic API documentation extraction tools for Python in March 2002. At the time, there were several such tools available, including pydoc and HappyDoc. However, none were widely used. I joined the doc-sig mailing list, and started working with its members on creating standards for API documentation tools in Python.

I created epydoc as a tool for exploring the issues involved in writing an automatic API documentation extraction tool. I also decided to use epydoc to document the Natural Language Toolkit, so that I would have a fairly large project with which to test out my system. The markup language and the output of epydoc have changed many times, and epydoc itself has undergone at least 3 complete rewrites. But eventually epydoc matured into a more stable system.

Significant portions of epydoc were written for version 3.0. This has allowed me to increase epydoc's functionality in several significant ways. The most significant change has to do with the way that epydoc extracts documentation information about python modules. In previous versions, epydoc extracted information about each module by importing it, and using introspection to examine its contents. The new version of epydoc still supports introspection, but is also capable of extracting information about python modules by parsing their source code. Furthermore, the new version of epydoc can combine these two sources of information (introspection & parsing). This is important because each source has its own advantages and disadvantages with respect to the other.