Source code for ample.util.printTable
#!/usr/bin/env python
import locale
import sys
import six
# Below causes issues in some locales and noone knows why it was included so commenting out for now
# locale.setlocale(locale.LC_NUMERIC, "")
[docs]class Table:
[docs] def get_max_width(self, table, index):
"""Get the maximum width of the given column index"""
return max([len(self.format_num(row[index])) for row in table])
[docs] def pprint_table(self, table):
"""Prints out a table of data, padded for alignment
@param table: The table to print. A list of lists.
Each row must have the same number of columns. """
col_paddings = []
out = ""
for i in range(len(table[0])):
col_paddings.append(self.get_max_width(table, i))
for row in table:
# left col
out += str(row[0]).ljust(col_paddings[0] + 1)
# rest of the cols
for i in range(1, len(row)):
col = self.format_num(row[i]).rjust(col_paddings[i] + 2)
out += col
out += "\n"
return out
if __name__ == "__main__":
T = Table()
T.bumppath = '/home/jmht/ample-dev1/examples/toxd-example/ROSETTA_MR_3/MRBUMP/cluster_run1'
T.cluster = True
table = T.maketable()
out = sys.stdout
T.pprint_table(out, table)