Parser

class nutcli.parser.SubparsersAction(option_strings, prog, parser_class, dest='==SUPPRESS==', required=False, help=None, metavar=None)

Bases: argparse._SubParsersAction

Provide a subparser action that can create subparsers with ability of grouping arguments.

It is based on the patch from:

You most probably do not need to use this yourself. Hovewer, you can see it in action in the source code of nutcli.commands.CommandParser.

add_parser_group(title)

Add new parser group.

Parameters

title (str) – Title.

Returns

Parser group that can have additional parsers attached.

Return type

argparse.Action extended with add_parser method

class nutcli.parser.UniqueAppendAction(option_strings, dest, nargs=None, const=None, default=None, type=None, choices=None, required=False, help=None, metavar=None)

Bases: argparse.Action

Append value to a list and make sure there are no duplicates.

Example usage
parser = argparse.ArgumentParser()
parser.add_argument(
    'list', nargs='*', choices=['all', 'a', 'b', 'c'],
    action=UniqueAppendAction, default='all',
    help='Choose values. Multiple values may be set. (Default "all")'
)

args = parser.parse_args(['--list', 'a', '--list', 'b', '--list', 'a'])
print(args.list)
# -> ['a', 'b']
class nutcli.parser.UniqueAppendConstAction(*args, **kwargs)

Bases: nutcli.parser.UniqueAppendAction

Append const value to a list and make sure there are no duplicates.

Example usage
parser = argparse.ArgumentParser()

parser.add_argument(
    '-f', '--failed', const='failed', dest='filter',
    action=UniqueAppendConstAction, help='Show failed items.'
)

parser.add_argument(
    '-a', '--aborted', const='aborted', dest='filter',
    action=UniqueAppendConstAction, help='Show aborted items.'
)

parser.add_argument(
    '-s', '--successful', const='success', dest='filter',
    action=UniqueAppendConstAction, help='Show successful items.'
)

args = parser.parse_args(['-f', '-a', '-s', '-f'])
print(args.filter)
# -> ['failed', 'aborted', 'success']
class nutcli.parser.NegateAction(*args, **kwargs)

Bases: argparse.Action

Implements toggle argumnets.

Stores True if –arg is present, False if –no-arg is present.

Example usage
parser = argparse.ArgumentParser()

# You can set default value using 'default' parameter.
parser.add_argument(
    '--arg', '--no-arg', action=NegateAction, help='Enable/disable arg.'
)

args = parser.parse_args([])
print(args.arg)
# -> None

args = parser.parse_args(['--arg'])
print(args.arg)
# -> True

args = parser.parse_args(['--no-arg'])
print(args.arg)
# -> False