From 2ec6e72cff8cbe609d23dfb9325291a115be5714 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Wed, 29 Jan 2025 12:51:01 +0100 Subject: [PATCH] Cmds: Add parsed args as attribute The parsed args container is passed to the run() function and friends for convenient use. Sometimes, though, the base classes or umbrella commands need to make use of it, too, even more so as they may define command line arguments via add_arguments(). However, run() or _run() or whatever is never called on them, neither any other callback, so make args available to them as a member variable. Signed-off-by: Jan Lindemann --- tools/python/jwutils/Cmds.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/python/jwutils/Cmds.py b/tools/python/jwutils/Cmds.py index 55b3597..5b33735 100644 --- a/tools/python/jwutils/Cmds.py +++ b/tools/python/jwutils/Cmds.py @@ -89,9 +89,9 @@ class Cmds: # export self.__add_cmd_to_parser(cmd, subparsers) async def __run(self, argv=None): - args = self.__parser.parse_args(args=argv) - set_flags(args.log_flags) - set_level(args.log_level) + self.args = self.__parser.parse_args(args=argv) + set_flags(self.args.log_flags) + set_level(self.args.log_level) # This is the toplevel parser, i.e. no func member has been added to the args via # @@ -101,11 +101,11 @@ class Cmds: # export # super().add_parser(parsers) # Cmd.__parser.set_defaults(func=self.run) # - if not hasattr(args, 'func'): + if not hasattr(self.args, 'func'): self.__parser.print_help() return None - return await args.func(args) + return await self.args.func(self.args) def __del__(self): if self.__own_eloop: