diff options
Diffstat (limited to 'cliff/display.py')
-rw-r--r-- | cliff/display.py | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/cliff/display.py b/cliff/display.py index 09c68ce..3c05760 100644 --- a/cliff/display.py +++ b/cliff/display.py @@ -70,14 +70,17 @@ class DisplayCommandBase(Command): return parser @abc.abstractmethod - def get_data(self, parsed_args): - """Return a two-part tuple with a tuple of column names - and a tuple of values. + def produce_output(self, parsed_args, column_names, data): + """Use the formatter to generate the output. + + :param parsed_args: argparse.Namespace instance with argument values + :param column_names: sequence of strings containing names + of output columns + :param data: iterable with values matching the column names """ - @abc.abstractmethod def run(self, parsed_args): - column_names, data = self.get_data(parsed_args) - formatter = self.formatters[parsed_args.formatter] - formatter.emit_one(column_names, data, self.app.stdout, parsed_args) + self.formatter = self.formatters[parsed_args.formatter] + column_names, data = self.take_action(parsed_args) + self.produce_output(parsed_args, column_names, data) return 0 |