Mercurial > hg > TextShaper
diff textshaper/tablify.py @ 35:5ffa0dbcb7fe
from k0s.org/hg/config
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Thu, 13 Mar 2014 13:53:41 -0700 |
parents | |
children | 8cf9a26b9aaa |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/textshaper/tablify.py Thu Mar 13 13:53:41 2014 -0700 @@ -0,0 +1,35 @@ +def format_cols(rows, header=None, right_align=()): + if header: + raise NotImplementedError('TODO') # -> record TODO items + if not rows: + return # XXX header + assert len(set([len(row) for row in rows])) == 1 + rows = [[str(col) for col in row] + for row in rows] + lengths = [max([len(row[i]) for row in rows]) + for i in range(len(rows[0]))] + rows = [[col + ' '*(length-len(col)) for col, length in zip(row, lengths)] + for row in rows] + return rows + + +def tablify(table_lines, header=True): + """=> HTML table""" + table = '<table>\n' + if header: + tag, invtag = '<th> ', ' </th>' + else: + tag, invtag = '<td> ', ' </td>' + if not hasattr(table_lines, '__iter__'): + table_lines = ( table_lines, ) + for i in table_lines: + table += '<tr>' + if not hasattr(i, '__iter__'): + i = (i,) + for j in i: + table += tag + str(j) + invtag + table += '</tr>\n' + tag = '<td> ' + invtag = ' </td>' + table += '</table>' + return table