autogen_api.py
79 lines
| 3.7 KiB
| text/x-python
|
PythonLexer
/ docs / autogen_api.py
Fernando Perez
|
r1850 | #!/usr/bin/env python | ||
"""Script to auto-generate our API docs. | ||||
""" | ||||
# stdlib imports | ||||
import os | ||||
import sys | ||||
# local imports | ||||
sys.path.append(os.path.abspath('sphinxext')) | ||||
from apigen import ApiDocWriter | ||||
#***************************************************************************** | ||||
if __name__ == '__main__': | ||||
pjoin = os.path.join | ||||
package = 'IPython' | ||||
outdir = pjoin('source','api','generated') | ||||
docwriter = ApiDocWriter(package,rst_extension='.txt') | ||||
Brian Granger
|
r2275 | # You have to escape the . here because . is a special char for regexps. | ||
# You must do make clean if you change this! | ||||
Fernando Perez
|
r1850 | docwriter.package_skip_patterns += [r'\.fixes$', | ||
Brian Granger
|
r2275 | r'\.external$', | ||
Brian Granger
|
r2064 | r'\.extensions', | ||
Brian Granger
|
r2275 | r'\.kernel\.config', | ||
Fernando Perez
|
r1850 | r'\.attic', | ||
Brian Granger
|
r2197 | r'\.quarantine', | ||
Brian Granger
|
r2275 | r'\.deathrow', | ||
r'\.config\.default', | ||||
r'\.config\.profile', | ||||
r'\.frontend', | ||||
Fernando Perez
|
r2735 | r'\.gui', | ||
# For now, the zmq code has | ||||
# unconditional top-level code so it's | ||||
# not import safe. This needs fixing | ||||
# soon. | ||||
r'\.zmq', | ||||
Fernando Perez
|
r1850 | ] | ||
Fernando Perez
|
r2404 | |||
Brian Granger
|
r2275 | docwriter.module_skip_patterns += [ r'\.core\.fakemodule', | ||
Fernando Perez
|
r2404 | |||
# XXX These need fixing, disabling for | ||||
# now but we need to figure out why | ||||
# they are breaking. Error from sphinx | ||||
# for each group copied below | ||||
# AttributeError: __abstractmethods__ | ||||
r'\.core\.component', | ||||
r'\.utils\.traitlets', | ||||
# AttributeError: __provides__ | ||||
r'\.kernel\.clusterdir', | ||||
r'\.kernel\.configobjfactory', | ||||
r'\.kernel\.fcutil', | ||||
r'\.kernel\.ipcontrollerapp', | ||||
r'\.kernel\.launcher', | ||||
r'\.kernel\.task', | ||||
r'\.kernel\.winhpcjob', | ||||
r'\.testing\.util', | ||||
# Keeping these disabled is OK | ||||
Fernando Perez
|
r1850 | r'\.cocoa', | ||
r'\.ipdoctest', | ||||
r'\.Gnuplot', | ||||
Brian Granger
|
r2275 | r'\.frontend\.process\.winprocess', | ||
Fernando Perez
|
r2339 | r'\.Shell', | ||
Fernando Perez
|
r1850 | ] | ||
Fernando Perez
|
r2568 | |||
# If we don't have pexpect, we can't load irunner, so skip any code that | ||||
# depends on it | ||||
try: | ||||
import pexpect | ||||
except ImportError: | ||||
docwriter.module_skip_patterns += [r'\.lib\.irunner', | ||||
r'\.testing\.mkdoctests'] | ||||
# Now, generate the outputs | ||||
Fernando Perez
|
r1850 | docwriter.write_api_docs(outdir) | ||
docwriter.write_index(outdir, 'gen', | ||||
relative_to = pjoin('source','api') | ||||
) | ||||
print '%d files written' % len(docwriter.written_modules) | ||||