From 1fede5e3f3358cd0275e90d9aa26e082347d2aac Mon Sep 17 00:00:00 2001 From: Marc Bonnici Date: Tue, 13 Mar 2018 10:30:02 +0000 Subject: [PATCH] doc/build_plugin_docs: Add support for core config generation --- doc/build_extension_docs.py | 33 ++++++++++++++++++++++++++------- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/doc/build_extension_docs.py b/doc/build_extension_docs.py index 3abd0c5d..7aaab458 100755 --- a/doc/build_extension_docs.py +++ b/doc/build_extension_docs.py @@ -18,28 +18,47 @@ import os import sys -from wlauto import pluginloader -from wlauto.utils.doc import get_rst_from_plugin, underline -from wlauto.utils.misc import capitalize +from wa import pluginloader +from wa.framework.configuration.core import RunConfiguration, MetaConfiguration +from wa.utils.doc import get_rst_from_plugin, underline, get_params_rst +from wa.utils.misc import capitalize -GENERATE_FOR = ['workload', 'instrument', 'result_processor', 'device'] - +GENERATE_FOR_PLUGIN = ['workload', 'instrument', 'output_processor', 'target'] def generate_plugin_documentation(source_dir, outdir, ignore_paths): pluginloader.clear() pluginloader.update(paths=[source_dir], ignore_paths=ignore_paths) for ext_type in pluginloader.kinds: - if not ext_type in GENERATE_FOR: + if not ext_type in GENERATE_FOR_PLUGIN: continue outfile = os.path.join(outdir, '{}s.rst'.format(ext_type)) with open(outfile, 'w') as wfh: wfh.write('.. _{}s:\n\n'.format(ext_type)) - wfh.write(underline(capitalize('{}s'.format(ext_type)))) + title = ' '.join([capitalize(w) for w in ext_type.split('_')]) + wfh.write(underline('{}s'.format(title))) exts = pluginloader.list_plugins(ext_type) for ext in sorted(exts, key=lambda x: x.name): wfh.write(get_rst_from_plugin(ext)) +def generate_run_config_documentation(outdir): + generate_config_documentation(RunConfiguration, outdir) + + +def generate_meta_config_documentation(outdir): + generate_config_documentation(MetaConfiguration, outdir) + + +def generate_config_documentation(config, outdir): + if not os.path.exists(outdir): + os.mkdir(outdir) + + outfile = os.path.join(outdir, '{}.rst'.format('_'.join(config.name.split()))) + with open(outfile, 'w') as wfh: + wfh.write(get_params_rst(config.config_points)) + + + if __name__ == '__main__': generate_plugin_documentation(sys.argv[2], sys.argv[1], sys.argv[3:])