i just submitted the patch 1400068 where the following updates are proposed:
- if an object imported from a .c module is in the __all__ attribute
of a .py module, it is considered belonging to the python module.
This enables to shape the package structure (the API) using python
modules, leaving c module as an implementative detail.
- All modules specified on the command line not starting with an
underscore are "public" and so - for example - appear in the toc
and in the parent summary (the previous behavior is to made them
public only if effectively imported by parent) This makes Epydoc more
friendly towards those packages which are not made to be entirely
Feedback on these updates is appreciated. I'd like to read somebody's
(and of course Edward's) opinion before applying the patch into the CVS.
P.S. Patch url:
The patch eventually grew into something more complex, so i created a
CVS branch named "exp-all-is-interface" to continue testing.
Everybody is encouraged to test the if the generated doc fits your
needs and if the new strategy doesn't break documentation generation
for previously workable packages.
To check out the difference, please take a look at
http://www.initd.org/people/piro/static/psycopg2 (generated from the
branch version) and
http://www.initd.org/people/piro/static/psycopg2-head (generated from
the head version). For example, the "connection" and "cursor" objects
are exposed in the "extensions" package (where people should pick
from) instead of hidden in the _psycopg extension module.