From 745e8758ad8ef3eaaf00ec39f22248a5b26cad3d Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Thu, 5 Jan 2023 08:37:55 -0300 Subject: [PATCH] Added correct detection for unknown outputs/groups inside groups --- kibot/kiplot.py | 5 ++++- kibot/registrable.py | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/kibot/kiplot.py b/kibot/kiplot.py index 43e7b5b7..7ad07e2e 100644 --- a/kibot/kiplot.py +++ b/kibot/kiplot.py @@ -438,7 +438,10 @@ def _generate_outputs(outputs, targets, invert, skip_pre, cli_order, no_priority exit(EXIT_BAD_ARGS) # Expand groups logger.debug('Outputs before groups expansion: {}'.format(targets)) - targets = RegOutput.solve_groups(targets) + try: + targets = RegOutput.solve_groups(targets, 'command line') + except KiPlotConfigurationError as e: + config_error(str(e)) logger.debug('Outputs after groups expansion: {}'.format(targets)) # Now convert the list of names into a list of output objects if cli_order: diff --git a/kibot/registrable.py b/kibot/registrable.py index 18cafcc6..c7c66735 100644 --- a/kibot/registrable.py +++ b/kibot/registrable.py @@ -164,7 +164,7 @@ class RegOutput(Optionable, Registrable): return None @staticmethod - def solve_groups(targets, level=0): + def solve_groups(targets, where, level=0): """ Replaces any group by its members. Returns a new list. Assumes the outputs and groups are valid. """ @@ -177,8 +177,11 @@ class RegOutput(Optionable, Registrable): if t in RegOutput._def_outputs: new_targets.append(t) else: + new_grp = RegOutput._def_groups.get(t, None) + if new_grp is None: + raise KiPlotConfigurationError('Unknown output/group `{}` (in `{}`)'.format(t, where)) # Recursive expand - new_targets.extend(RegOutput.solve_groups(RegOutput._def_groups[t], level)) + new_targets.extend(RegOutput.solve_groups(new_grp, t, level)) return new_targets