Source code for analyzer.utils.summary_table
import operator as op
[docs]
def texEscape(s):
return s.replace("_", "\\_")
[docs]
def makeTableFromDict(data):
keys = list(data[0].keys())
ret = [keys] + sorted([[d[k] for k in keys] for d in data], key=op.itemgetter(0))
return ret
[docs]
def texTable(elems, separator=" & ", force_max=None, col_format_funcs=None):
col_format_funcs = col_format_funcs or {}
elems = [
[
texEscape((col_format_funcs.get(i, str) if j > 0 else str)(x))
for i, x in enumerate(y)
]
for j, y in enumerate(elems)
]
max_lens = [force_max or max(len(x) for x in y) for y in zip(*elems)]
row_format = separator.join(f"{{: <{l}}}" for l in max_lens)
res = " \\\\\n".join(row_format.format(*e) for e in elems)
return res