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)