def writeapi(package, outdir, source_version, other_defines=True): # Check that the package is available. If not, the API documentation is not # (re)generated and existing API documentation sources will be used. try: __import__(package) except ImportError: abort("Can not import " + package) module = sys.modules[package] # Check that the source version is equal to the installed # version. If the versions mismatch the API documentation sources # are not (re)generated. This avoids automatic generation of documentation # for older or newer versions if such versions are installed on the system. installed_version = V(module.__version__) if source_version != installed_version: abort("Installed version does not match source version") docwriter = ApiDocWriter(package, rst_extension='.rst', other_defines=other_defines) docwriter.package_skip_patterns += [ r'\.%s$' % package, r'\.utils.*$', r'.*test.*$', r'.*_fixes.*$', r'\.version.*$' ] docwriter.write_api_docs(outdir) docwriter.write_index(outdir, 'index', relative_to=outdir) print('%d files written' % len(docwriter.written_modules))
def generate_api_reference_rst(app=None, package='fury', outdir='reference', defines=True): try: __import__(package) except ImportError: abort("Can not import " + package) module = sys.modules[package] installed_version = LooseVersion(module.__version__) print("Generation API for {} v{}".format(package, installed_version)) docwriter = ApiDocWriter(package, rst_extension='.rst', other_defines=defines) docwriter.package_skip_patterns += [ r'.*test.*$', # r'^\.utils.*', r'\._version.*$', r'\.interactor.*$', r'\.optpkg.*$', ] docwriter.object_skip_patterns += [ r'.*FetcherError.*$', r'.*urlopen.*', r'.*add_callback.*', ] if app is not None: outdir = pjoin(app.builder.srcdir, outdir) docwriter.write_api_docs(outdir) docwriter.write_index(outdir, 'index', relative_to=outdir) print('%d files written' % len(docwriter.written_modules))
import sys pjoin = os.path.join here = os.path.abspath(os.path.dirname(__file__)) sys.path.append(pjoin(os.path.abspath(here), 'sphinxext')) from apigen import ApiDocWriter source = pjoin(here, 'source') #***************************************************************************** if __name__ == '__main__': package = 'IPython' outdir = pjoin(source, 'api', 'generated') docwriter = ApiDocWriter(package, rst_extension='.rst') # You have to escape the . here because . is a special char for regexps. # You must do make clean if you change this! docwriter.package_skip_patterns += [ r'\.external$', # Extensions are documented elsewhere. r'\.extensions', # Magics are documented separately r'\.core\.magics', # This isn't API r'\.sphinxext', # Shims r'\.kernel', ] # The inputhook* modules often cause problems on import, such as trying to
pass if source_version == '0+unknown': source_version = None if source_version is None: # Legacy fall-back info_file = pjoin('..', package, 'info.py') info_lines = open(info_file).readlines() source_version = '.'.join([v.split('=')[1].strip(" '\n.") for v in info_lines if re.match( '^_version_(major|minor|micro|extra)', v )]) print('***', source_version) if source_version != installed_version: abort("Installed version does not match source version") docwriter = ApiDocWriter(package, rst_extension='.rst', other_defines=other_defines) docwriter.package_skip_patterns += [r'\.fixes$', r'\.fixes.*$', r'\.externals$', r'\.externals.*$', r'.*test.*$', r'\.info.*$', r'\.pkg_info.*$', r'\.py3k.*$', ] docwriter.write_api_docs(outdir) docwriter.write_index(outdir, 'index', relative_to=outdir) print('%d files written' % len(docwriter.written_modules))
#!/usr/bin/env python # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*- # vi: set ft=python sts=4 ts=4 sw=4 et: """Script to auto-generate our API docs. """ # stdlib imports import os # local imports from apigen import ApiDocWriter #***************************************************************************** if __name__ == '__main__': package = 'regreg' outdir = os.path.join('source', 'api', 'generated') docwriter = ApiDocWriter(package) docwriter.write_api_docs(outdir) docwriter.write_index(outdir, 'gen', relative_to='api') print('%d files written' % len(docwriter.written_modules))