From 1101cc05e6d5b4b09b6fd124f825f9776f43978a Mon Sep 17 00:00:00 2001 From: Pierre Kancir Date: Thu, 7 Feb 2019 15:38:06 +0100 Subject: [PATCH] Tools: param_parse: update OptionParser to ArgumentParser --- Tools/autotest/param_metadata/param_parse.py | 56 ++++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/Tools/autotest/param_metadata/param_parse.py b/Tools/autotest/param_metadata/param_parse.py index 22b403c908..83cf1cff7a 100755 --- a/Tools/autotest/param_metadata/param_parse.py +++ b/Tools/autotest/param_metadata/param_parse.py @@ -4,7 +4,7 @@ import glob import os import re import sys -from optparse import OptionParser +from argparse import ArgumentParser from param import (Library, Parameter, Vehicle, known_group_fields, known_param_fields, required_param_fields, known_units) @@ -14,21 +14,21 @@ from wikiemit import WikiEmit from xmlemit import XmlEmit from mdemit import MDEmit -parser = OptionParser("param_parse.py [options]") -parser.add_option("-v", "--verbose", dest='verbose', action='store_true', default=False, help="show debugging output") -parser.add_option("--vehicle", default='*', help="Vehicle type to generate for") -parser.add_option("--no-emit", - dest='emit_params', - action='store_false', - default=True, - help="don't emit parameter documention, just validate") -parser.add_option("--format", - dest='output_format', - action='store', - default='all', - choices=['all', 'html', 'rst', 'wiki', 'xml', 'edn', 'md'], - help="what output format to use") -(opts, args) = parser.parse_args() +parser = ArgumentParser(description="Parse ArduPilot parameters.") +parser.add_argument("-v", "--verbose", dest='verbose', action='store_true', default=False, help="show debugging output") +parser.add_argument("--vehicle", required=True, help="Vehicle type to generate for") +parser.add_argument("--no-emit", + dest='emit_params', + action='store_false', + default=True, + help="don't emit parameter documention, just validate") +parser.add_argument("--format", + dest='output_format', + action='store', + default='all', + choices=['all', 'html', 'rst', 'wiki', 'xml', 'edn', 'md'], + help="what output format to use") +args = parser.parse_args() # Regular expressions for parsing the parameter metadata @@ -43,10 +43,10 @@ prog_param_tagged_fields = re.compile(r"[ \t]*// @(\w+){([^}]+)}: (.*)") prog_groups = re.compile(r"@Group: *(\w+).*((?:\n[ \t]*// @(Path): (\S+))+)", re.MULTILINE) apm_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), '../../../') -vehicle_paths = glob.glob(apm_path + "%s/Parameters.cpp" % opts.vehicle) +vehicle_paths = glob.glob(apm_path + "%s/Parameters.cpp" % args.vehicle) extension = 'cpp' if len(vehicle_paths) == 0: - vehicle_paths = glob.glob(apm_path + "%s/Parameters.pde" % opts.vehicle) + vehicle_paths = glob.glob(apm_path + "%s/Parameters.pde" % args.vehicle) extension = 'pde' vehicle_paths.sort(reverse=True) @@ -60,7 +60,7 @@ current_file = None def debug(str_to_print): """Debug output if verbose is set.""" - if opts.verbose: + if args.verbose: print(str_to_print) @@ -335,27 +335,27 @@ def do_emit(emit): emit.close() -if opts.emit_params: - if opts.output_format == 'all' or opts.output_format == 'xml': +if args.emit_params: + if args.output_format == 'all' or args.output_format == 'xml': do_emit(XmlEmit()) - if opts.output_format == 'all' or opts.output_format == 'wiki': + if args.output_format == 'all' or args.output_format == 'wiki': do_emit(WikiEmit()) - if opts.output_format == 'all' or opts.output_format == 'html': + if args.output_format == 'all' or args.output_format == 'html': do_emit(HtmlEmit()) - if opts.output_format == 'all' or opts.output_format == 'rst': + if args.output_format == 'all' or args.output_format == 'rst': do_emit(RSTEmit()) - if opts.output_format == 'all' or opts.output_format == 'md': + if args.output_format == 'all' or args.output_format == 'md': do_emit(MDEmit()) - if opts.output_format == 'all' or opts.output_format == 'edn': + if args.output_format == 'all' or args.output_format == 'edn': try: from ednemit import EDNEmit do_emit(EDNEmit()) except ImportError: # if the user wanted edn only then don't hide any errors - if opts.output_format == 'edn': + if args.output_format == 'edn': raise - if opts.verbose: + if args.verbose: print("Unable to emit EDN, install edn_format and pytz if edn is desired") sys.exit(error_count)