From 7317674e4c9334d5e26e5b6b254dceacab62d1b5 Mon Sep 17 00:00:00 2001 From: yrriban Date: Mon, 1 Sep 2025 23:18:01 -0400 Subject: [PATCH] Make the implementation of add_common_args clearer. Probably can't do better than this without messing around with the method resolution order and other things I'd rather not touch. --- dcc/config.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/dcc/config.py b/dcc/config.py index aeebd63..d1683a7 100644 --- a/dcc/config.py +++ b/dcc/config.py @@ -61,17 +61,17 @@ class ConfigBase(object): return self._doom.joinpath(self._dsda) -def AddCommonArgs(parser): - parser.add_argument( - "--doom", default=pathlib.Path.home().joinpath("doom")) - parser.add_argument("--config-name", default="config.toml") - return parser +def get_parser_func(toc): + def add_common_args(self, prog_name): + parser = super(toc, self).get_parser(prog_name) + parser.add_argument( + "--doom", default=pathlib.Path.home().joinpath("doom")) + parser.add_argument("--config-name", default="config.toml") + return parser + return add_common_args class Base(cliff.command.Command, ConfigBase): - def get_parser(self, prog_name): - return AddCommonArgs(super().get_parser(prog_name)) - def run(self, parsed_args): super().init_base(parsed_args) super().finalize() @@ -79,12 +79,13 @@ class Base(cliff.command.Command, ConfigBase): class ListerBase(cliff.lister.Lister, ConfigBase): - def get_parser(self, prog_name): - return AddCommonArgs(super().get_parser(prog_name)) - def run(self, parsed_args): super().init_base(parsed_args) super().finalize() self.formatter = self._formatter_plugins[parsed_args.formatter].obj columns, data = self.take_action(parsed_args) return self.produce_output(parsed_args, columns, data) + + +for toc in (Base, ListerBase): + toc.get_parser = get_parser_func(toc)