diff --git a/ipaacalib/python/src/ipaaca/misc.py b/ipaacalib/python/src/ipaaca/misc.py index 8e3575b6ca58ec5f18b4122ee417581966fa30f8..4894c19016d097b048639d439e67dc94447fc0fa 100644 --- a/ipaacalib/python/src/ipaaca/misc.py +++ b/ipaacalib/python/src/ipaaca/misc.py @@ -77,7 +77,6 @@ logger.setLevel(level=ipaaca.defaults.IPAACA_DEFAULT_LOGGING_LEVEL) class IpaacaArgumentParser(argparse.ArgumentParser): - class IpaacaDefaultChannelAction(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): @@ -88,22 +87,24 @@ class IpaacaArgumentParser(argparse.ArgumentParser): def __call__(self, parser, namespace, values, option_string=None): logger.setLevel(level=values) - def __init__(self, prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True): super(IpaacaArgumentParser, self).__init__(prog=prog, usage=usage, description=description, epilog=epilog, parents=parents, formatter_class=formatter_class, prefix_chars=prefix_chars, fromfile_prefix_chars=fromfile_prefix_chars, argument_default=argument_default, conflict_handler=conflict_handler, add_help=add_help) - self.add_argument( + def _add_ipaaca_lib_arguments(self): + ipaacalib_group = self.add_argument_group(title='IPAACA library arguments''') + ipaacalib_group.add_argument( '--ipaaca-default-channel', action=self.IpaacaDefaultChannelAction, default='default', metavar='NAME', dest='_ipaaca_default_channel_', - help='ipaaca channel name which is used if a buffer does not define one locally') - - self.add_argument( + help="IPAACA channel name which is used if a buffer does not define one locally (default: 'default')") + ipaacalib_group.add_argument( '--ipaaca-logging-level', action=self.IpaacaLoggingLevelAction, - choices=['NOTSET','CRITICAL','ERROR','WARNING','INFO','DEBUG'], + choices=['CRITICAL', 'ERROR', 'WARNING', 'INFO', 'DEBUG'], dest='_ipaaca_logging_level_', - help='logging threshold for ipaaca') + help="IPAACA logging threshold (default: 'WARNING')") def parse_args(self, args=None, namespace=None): + # Add ipaaca-library specific arguments at the very end + self._add_ipaaca_lib_arguments() result = super(IpaacaArgumentParser, self).parse_args(args, namespace) for item in dir(result): if item.startswith('_ipaaca') and item.endswith('_'):