diff options
Diffstat (limited to 'docs/generate_autodocs.py')
| -rw-r--r-- | docs/generate_autodocs.py | 43 |
1 files changed, 38 insertions, 5 deletions
diff --git a/docs/generate_autodocs.py b/docs/generate_autodocs.py index 6138287..b2c9fb6 100644 --- a/docs/generate_autodocs.py +++ b/docs/generate_autodocs.py @@ -15,7 +15,8 @@ import os from docutils.statemachine import StringList, ViewList -from sphinx.ext.autodoc import AutoDirective, ClassDocumenter, Options +from sphinx.ext.autodoc import (AutoDirective, ClassDocumenter, Options, + FunctionDocumenter) from sphinx.application import Sphinx from sphinx.environment import BuildEnvironment @@ -27,14 +28,20 @@ CLASSES = [ 'GenSVM' ] +FUNCTIONS = [ + 'load_default_grid' + ] + FULL_NAMES = { 'GenSVM': 'gensvm.core.GenSVM', - 'GenSVMGridSearchCV': 'gensvm.gridsearch.GenSVMGridSearchCV' + 'GenSVMGridSearchCV': 'gensvm.gridsearch.GenSVMGridSearchCV', + 'load_default_grid': 'gensvm.gridsearch.load_default_grid' } OUTPUT_FILES = { 'GenSVMGridSearchCV': os.path.join(DOCDIR, 'cls_gridsearch.rst'), - 'GenSVM': os.path.join(DOCDIR, 'cls_gensvm.rst') + 'GenSVM': os.path.join(DOCDIR, 'cls_gensvm.rst'), + 'load_default_grid': os.path.join(DOCDIR, 'auto_functions.rst') } @@ -49,7 +56,7 @@ def load_app(): return app -def generate_autodoc(app, cls): +def generate_class_autodoc(app, cls): ad = AutoDirective(name='autoclass', arguments=[FULL_NAMES[cls]], options={'noindex': True}, content=StringList([], items=[]), lineno=0, content_offset=1, block_text='', state=None, @@ -67,10 +74,36 @@ def generate_autodoc(app, cls): for line in ad.result: fid.write(line + '\n') + +def generate_func_autodoc(app, func): + ad = AutoDirective(name='autofunc', arguments=[FULL_NAMES[func]], + options={'noindex': True}, content=StringList([], items=[]), + lineno=0, content_offset=1, block_text='', state=None, + state_machine=None) + + ad.env = BuildEnvironment(app) + ad.genopt = Options(noindex=True) + ad.filename_set = set() + ad.result = ViewList() + + documenter = FunctionDocumenter(ad, ad.arguments[0]) + documenter.generate(all_members=True) + + with open(OUTPUT_FILES[func], 'a') as fid: + for line in ad.result: + fid.write(line + '\n') + + def main(): + for of in OUTPUT_FILES: + fname = OUTPUT_FILES[of] + os.unlink(fname) app = load_app() for cls in CLASSES: - generate_autodoc(app, cls) + generate_class_autodoc(app, cls) + for func in FUNCTIONS: + generate_func_autodoc(app, func) + if __name__ == '__main__': main() |
