summaryrefslogtreecommitdiff
path: root/cliff/show.py
diff options
context:
space:
mode:
authorDoug Hellmann <doug.hellmann@dreamhost.com>2012-05-06 21:16:43 -0400
committerDoug Hellmann <doug.hellmann@dreamhost.com>2012-05-06 21:16:43 -0400
commit43aa8d395ef0da07c81e1ed9cc729ddca0be7281 (patch)
treeaa1ed7626489814bdd71675cf2a0811741f728df /cliff/show.py
parent6efada5b6a084e5e22e3b7a225375ff8132be255 (diff)
downloadcliff-43aa8d395ef0da07c81e1ed9cc729ddca0be7281.tar.gz
move the column option so it applies to "show" commands, too
Diffstat (limited to 'cliff/show.py')
-rw-r--r--cliff/show.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/cliff/show.py b/cliff/show.py
index b2c7945..34af0b4 100644
--- a/cliff/show.py
+++ b/cliff/show.py
@@ -1,6 +1,7 @@
"""Application base class for displaying data about a single object.
"""
import abc
+import itertools
import logging
from .display import DisplayCommandBase
@@ -30,6 +31,15 @@ class ShowOne(DisplayCommandBase):
def run(self, parsed_args):
column_names, data = self.get_data(parsed_args)
+ if not parsed_args.columns:
+ columns_to_include = column_names
+ else:
+ columns_to_include = [c for c in column_names
+ if c in parsed_args.columns]
+ # Set up argument to compress()
+ 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(column_names, data, self.app.stdout, parsed_args)
+ formatter.emit_one(columns_to_include, data, self.app.stdout, parsed_args)
return 0