Mercurial > mozilla > hg > ProfileManager
comparison profilemanager/utils.py @ 5:ca57920aa223
adding better formatting for list
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Tue, 06 Apr 2010 08:04:24 -0700 |
parents | |
children | 145e111903d2 |
comparison
equal
deleted
inserted
replaced
4:35dc297efa25 | 5:ca57920aa223 |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 def format_tabular(table, spacer=' '): | |
4 columns = [0 for i in range(max([len(row) for row in table]))] | |
5 assert (len(columns) == min([len(row) for row in table])) | |
6 for row in table: | |
7 for index, column in enumerate(row): | |
8 if len(column) > columns[index]: | |
9 columns[index] = len(column) | |
10 format_string = spacer.join(['%s%s' for i in range(len(columns))]) | |
11 retval = [] | |
12 for row in table: | |
13 values = [] | |
14 for index, column in enumerate(row): | |
15 values.append(column) | |
16 values.append(' ' * (columns[index] - len(column))) | |
17 retval.append(format_string % tuple(values)) | |
18 return '\n'.join(retval) | |
19 | |
20 if __name__ == '__main__': | |
21 test_data = [ ['fox', 'i am a fox!', 'Foxkeh'], | |
22 ['cat', 'meow', 'Lilly'], | |
23 ['elephant', 'elephants shower with their trunks', 'Elephino'] ] | |
24 print format_tabular(test_data) |