From 34bd4dd8a1e7d4f0187792a3a624c71f6422b117 Mon Sep 17 00:00:00 2001 From: Thibaut Horel Date: Wed, 13 Aug 2014 03:08:28 -0400 Subject: Better handling of uneven row lengths --- tabletext.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'tabletext.py') diff --git a/tabletext.py b/tabletext.py index 59de8ab..6914033 100644 --- a/tabletext.py +++ b/tabletext.py @@ -41,7 +41,8 @@ def format_entry(entry, format_string, padding): def format_row(row, formats, padding, ver): return (ver + ver.join(format_entry(entry, format_string, padding) - for entry, format_string in zip(row, formats)) + for entry, format_string + in izip_longest(row, formats, fillvalue="")) + ver) @@ -61,10 +62,11 @@ def print_table(table, formats=None, padding=(1, 1), corners="┌┬┐├┼┤ header_corners="╒╤╕╞╪╡", header_hor="═", header_ver="│", header=False, hor="─", ver="│"): sys.stdout = getwriter('utf8')(sys.stdout) + n_columns = max(len(row) for row in table) if not formats: - formats = [""] * len(table[-1]) + formats = [""] * n_columns elif type(formats) is unicode: - formats = [formats] * len(table[-1]) + formats = [formats] * n_columns if len(corners) == 1: corners = corners * 9 if len(header_corners) == 1: -- cgit v1.2.3-70-g09d2