コード例 #1
0
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))
コード例 #2
0
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))
コード例 #3
0
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
コード例 #4
0
            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))
コード例 #5
0
#!/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))