summaryrefslogtreecommitdiff
path: root/cliff/show.py
diff options
context:
space:
mode:
authorDoug Hellmann <doug.hellmann@dreamhost.com>2012-06-01 10:54:18 -0400
committerDoug Hellmann <doug.hellmann@dreamhost.com>2012-06-01 10:54:18 -0400
commit748ef2b230588c66e240ceb93471b0ceaeca1f8e (patch)
tree17ad5c9ba4e374cd3668a7201d47c1724b2cb204 /cliff/show.py
parent9059e9538a449f0fc36ad4b43cadc6bd8a2f1e0e (diff)
downloadcliff-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/show.py')
-rw-r--r--cliff/show.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/cliff/show.py b/cliff/show.py
index 34af0b4..39e94b1 100644
--- a/cliff/show.py
+++ b/cliff/show.py
@@ -24,13 +24,12 @@ class ShowOne(DisplayCommandBase):
return 'table'
@abc.abstractmethod
- def get_data(self, parsed_args):
+ def take_action(self, parsed_args):
"""Return a two-part tuple with a tuple of column names
and a tuple of values.
"""
- 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
else:
@@ -40,6 +39,8 @@ class ShowOne(DisplayCommandBase):
selector = [(c in columns_to_include)
for c in column_names]
data = list(itertools.compress(data, selector))
- formatter = self.formatters[parsed_args.formatter]
- formatter.emit_one(columns_to_include, data, self.app.stdout, parsed_args)
+ self.formatter.emit_one(columns_to_include,
+ data,
+ self.app.stdout,
+ parsed_args)
return 0