diff --git a/scripts/west_commands/runners/canopen_program.py b/scripts/west_commands/runners/canopen_program.py index e72b1dbbd6655..a53e05a8e5f71 100644 --- a/scripts/west_commands/runners/canopen_program.py +++ b/scripts/west_commands/runners/canopen_program.py @@ -44,11 +44,6 @@ PROGRAM_CTRL_CLEAR = 0x03 PROGRAM_CTRL_ZEPHYR_CONFIRM = 0x80 -class ToggleAction(argparse.Action): - '''Toggle argument parser''' - def __call__(self, parser, namespace, values, option_string=None): - setattr(namespace, self.dest, not option_string.startswith('--no-')) - class CANopenBinaryRunner(ZephyrBinaryRunner): '''Runner front-end for CANopen.''' def __init__(self, cfg, dev_id, can_context=DEFAULT_CAN_CONTEXT, @@ -99,9 +94,7 @@ def do_add_parser(cls, parser): help=f'Python-CAN context to use (default: {DEFAULT_CAN_CONTEXT})') parser.add_argument('--program-number', type=int, default=DEFAULT_PROGRAM_NUMBER, help=f'program number (default: {DEFAULT_PROGRAM_NUMBER})') - parser.add_argument('--confirm', '--no-confirm', - dest='confirm', nargs=0, - action=ToggleAction, + parser.add_argument('--confirm', action=argparse.BooleanOptionalAction, help='confirm after starting? (default: yes)') parser.add_argument('--confirm-only', default=False, action='store_true', help='confirm only, no program download (default: no)') diff --git a/scripts/west_commands/runners/core.py b/scripts/west_commands/runners/core.py index 611848f671cd9..c391788eed3a2 100644 --- a/scripts/west_commands/runners/core.py +++ b/scripts/west_commands/runners/core.py @@ -377,11 +377,6 @@ def __call__(self, parser, namespace, values, option_string=None): namespace.dt_flash = False -class _ToggleAction(argparse.Action): - - def __call__(self, parser, args, ignored, option): - setattr(args, self.dest, not option.startswith('--no-')) - class DeprecatedAction(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): @@ -610,14 +605,12 @@ def add_parser(cls, parser): help='path to zephyr.mot' if not caps.file else 'Deprecated, use -f/--file instead.') - parser.add_argument('--erase', '--no-erase', nargs=0, - action=_ToggleAction, + parser.add_argument('--erase', action=argparse.BooleanOptionalAction, help=("mass erase flash before loading, or don't. " "Default action depends on each specific runner." if caps.erase else argparse.SUPPRESS)) - parser.add_argument('--reset', '--no-reset', nargs=0, - action=_ToggleAction, + parser.add_argument('--reset', action=argparse.BooleanOptionalAction, help=("reset device after flashing, or don't. " "Default action depends on each specific runner." if caps.reset else argparse.SUPPRESS)) diff --git a/scripts/west_commands/runners/jlink.py b/scripts/west_commands/runners/jlink.py index 5fa13e19873e2..bb9426ceab86b 100644 --- a/scripts/west_commands/runners/jlink.py +++ b/scripts/west_commands/runners/jlink.py @@ -43,11 +43,6 @@ def is_ip(ip): def is_tunnel(tunnel): return tunnel.startswith("tunnel:") if tunnel else False -class ToggleAction(argparse.Action): - - def __call__(self, parser, args, ignored, option): - setattr(args, self.dest, not option.startswith('--no-')) - class JLinkBinaryRunner(ZephyrBinaryRunner): '''Runner front-end for the J-Link GDB server.''' @@ -194,10 +189,8 @@ def do_add_parser(cls, parser): parser.add_argument('--commander', default=DEFAULT_JLINK_EXE, help=f'''J-Link Commander, default is {DEFAULT_JLINK_EXE}''') - parser.add_argument('--reset-after-load', '--no-reset-after-load', - dest='reset', nargs=0, - action=ToggleAction, - help='obsolete synonym for --reset/--no-reset') + parser.add_argument('--reset-after-load', action=argparse.BooleanOptionalAction, + dest='reset', help='obsolete synonym for --reset/--no-reset') parser.add_argument('--rtt-client', default='JLinkRTTClient', help='RTT client, default is JLinkRTTClient') parser.add_argument('--rtt-port', default=DEFAULT_JLINK_RTT_PORT, diff --git a/scripts/west_commands/sign.py b/scripts/west_commands/sign.py index c6fa273138e5a..c2416f3d4b300 100644 --- a/scripts/west_commands/sign.py +++ b/scripts/west_commands/sign.py @@ -101,12 +101,6 @@ [1]: https://www.silabs.com/documents/public/user-guides/ug574-siwx917-soc-manufacturing-utility-user-guide.pdf ''' -class ToggleAction(argparse.Action): - - def __call__(self, parser, args, ignored, option): - setattr(args, self.dest, not option.startswith('--no-')) - - class Sign(Forceable): def __init__(self): super(Sign, self).__init__( @@ -147,8 +141,7 @@ def do_add_parser(self, parser_adder): # bin file options group = parser.add_argument_group('binary (.bin) file options') - group.add_argument('--bin', '--no-bin', dest='gen_bin', nargs=0, - action=ToggleAction, + group.add_argument('--bin', dest='gen_bin', action=argparse.BooleanOptionalAction, help='''produce a signed .bin file? (default: yes, if supported and unsigned bin exists)''') @@ -159,8 +152,7 @@ def do_add_parser(self, parser_adder): # hex file options group = parser.add_argument_group('Intel HEX (.hex) file options') - group.add_argument('--hex', '--no-hex', dest='gen_hex', nargs=0, - action=ToggleAction, + group.add_argument('--hex', dest='gen_hex', action=argparse.BooleanOptionalAction, help='''produce a signed .hex file? (default: yes, if supported and unsigned hex exists)''')