summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Hellmann <doug.hellmann@dreamhost.com>2012-04-27 19:23:26 -0400
committerDoug Hellmann <doug.hellmann@dreamhost.com>2012-04-27 19:23:26 -0400
commitb8f3ad548d02eff5fe1b3c8d8515fab9db888204 (patch)
tree2b208428dd045e6efae4908f00100a2feb568e4b
parent216079ee59e994dd830dc209adb6407aacb99a6e (diff)
downloadcliff-tablib-b8f3ad548d02eff5fe1b3c8d8515fab9db888204.tar.gz
handle an empty data set
-rw-r--r--cliff/formatters/table.py20
1 files changed, 12 insertions, 8 deletions
diff --git a/cliff/formatters/table.py b/cliff/formatters/table.py
index 1813e3e..43066b4 100644
--- a/cliff/formatters/table.py
+++ b/cliff/formatters/table.py
@@ -32,14 +32,18 @@ class TableLister(ListFormatter):
# first row and set the alignment of the
# output accordingly.
data_iter = iter(data)
- first_row = next(data_iter)
- for value, name in zip(first_row, column_names):
- alignment = self.ALIGNMENTS.get(type(value), 'l')
- x.set_field_align(name, alignment)
- # Now iterate over the data and add the rows.
- x.add_row(first_row)
- for row in data_iter:
- x.add_row(row)
+ try:
+ first_row = next(data_iter)
+ except StopIteration:
+ pass
+ else:
+ for value, name in zip(first_row, column_names):
+ alignment = self.ALIGNMENTS.get(type(value), 'l')
+ x.set_field_align(name, alignment)
+ # Now iterate over the data and add the rows.
+ x.add_row(first_row)
+ for row in data_iter:
+ x.add_row(row)
formatted = x.get_string(fields=(parsed_args.columns or column_names))
stdout.write(formatted)
stdout.write('\n')