Fix truncating values in table
This commit is contained in:
@@ -55,18 +55,20 @@ def prettytable(field_names, rows, truncate=False):
|
|||||||
for field in t.field_names:
|
for field in t.field_names:
|
||||||
t.align[field] = 'l'
|
t.align[field] = 'l'
|
||||||
|
|
||||||
if truncate:
|
if truncate and rows:
|
||||||
max_total_len = 0
|
n_cols = len(rows[0])
|
||||||
max_name_val_ttl_len = 0
|
max_col_lengths = [0] * n_cols
|
||||||
for row in rows:
|
|
||||||
max_total_len = max(max_total_len, sum(len(col) for col in row))
|
|
||||||
max_name_val_ttl_len = max(max_name_val_ttl_len, sum(len(s) for s in row[0:-1]))
|
|
||||||
|
|
||||||
overhead_len = len(row) * 4
|
for row in rows:
|
||||||
|
for index in range(0, len(row)):
|
||||||
|
max_col_lengths[index] = max(max_col_lengths[index], len(row[index]) + 3)
|
||||||
|
|
||||||
|
max_total_len = sum(max_col_lengths) + 2
|
||||||
|
max_pre_len = sum(max_col_lengths[0:-1]) + 2
|
||||||
|
|
||||||
terminal_width = os.get_terminal_size().columns
|
terminal_width = os.get_terminal_size().columns
|
||||||
if max_total_len + overhead_len >= terminal_width:
|
if max_total_len >= terminal_width:
|
||||||
max_value_len = terminal_width - max_name_val_ttl_len - overhead_len
|
max_value_len = terminal_width - max_pre_len - 3
|
||||||
if max_value_len < 5:
|
if max_value_len < 5:
|
||||||
raise RuntimeError('terminal is too small')
|
raise RuntimeError('terminal is too small')
|
||||||
for i in range(len(rows)):
|
for i in range(len(rows)):
|
||||||
|
|||||||
Reference in New Issue
Block a user