Mercurial > public > mercurial-scm > hg-stable
diff mercurial/minirst.py @ 15039:c981f4a9ea74
minirst: add a helper function to build an RST table from an array
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 11 Aug 2011 22:40:43 -0500 |
parents | 3f4d337cb80a |
children | a7e375d087f6 |
line wrap: on
line diff
--- a/mercurial/minirst.py Thu Aug 11 22:40:41 2011 -0500 +++ b/mercurial/minirst.py Thu Aug 11 22:40:43 2011 -0500 @@ -553,3 +553,19 @@ text = formatblocks(s[2], width) lines.append([(section, l) for l in text.splitlines(True)]) return lines + +def maketable(data, indent=0, header=False): + '''Generate an RST table for the given table data''' + + widths = [max(encoding.colwidth(e) for e in c) for c in zip(*data)] + indent = ' ' * indent + f = indent + ' '.join('%%-%ds' % w for w in widths) + '\n' + div = indent + ' '.join('=' * w for w in widths) + '\n' + + out = [div] + for row in data: + out.append(f % tuple(row)) + if header and len(data) > 1: + out.insert(2, div) + out.append(div) + return ''.join(out)