diff options
author | Doug Hellmann <doug.hellmann@dreamhost.com> | 2012-06-01 10:54:18 -0400 |
---|---|---|
committer | Doug Hellmann <doug.hellmann@dreamhost.com> | 2012-06-01 10:54:18 -0400 |
commit | 748ef2b230588c66e240ceb93471b0ceaeca1f8e (patch) | |
tree | 17ad5c9ba4e374cd3668a7201d47c1724b2cb204 /cliff/lister.py | |
parent | 9059e9538a449f0fc36ad4b43cadc6bd8a2f1e0e (diff) | |
download | cliff-tablib-748ef2b230588c66e240ceb93471b0ceaeca1f8e.tar.gz |
Refactor DisplayBase.run() to make it easier to override separate parts in subclasses.
Rename get_data() to take_action() so subclasses that do something other than query for values have a clear place to override.
Diffstat (limited to 'cliff/lister.py')
-rw-r--r-- | cliff/lister.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/cliff/lister.py b/cliff/lister.py index abf3771..c3fb909 100644 --- a/cliff/lister.py +++ b/cliff/lister.py @@ -24,13 +24,12 @@ class Lister(DisplayCommandBase): return 'table' @abc.abstractmethod - def get_data(self, parsed_args): + def take_action(self, parsed_args): """Return a tuple containing the column names and an iterable containing the data to be listed. """ - def run(self, parsed_args): - column_names, data = self.get_data(parsed_args) + def produce_output(self, parsed_args, column_names, data): if not parsed_args.columns: columns_to_include = column_names data_gen = data @@ -50,6 +49,8 @@ class Lister(DisplayCommandBase): # list so the table formatter can ask for its length. data_gen = (list(itertools.compress(row, selector)) for row in data) - formatter = self.formatters[parsed_args.formatter] - formatter.emit_list(columns_to_include, data_gen, self.app.stdout, parsed_args) + self.formatter.emit_list(columns_to_include, + data_gen, + self.app.stdout, + parsed_args) return 0 |