ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/RateMonShiftTool_dev/TablePrint.py
Revision: 1.1
Committed: Wed Nov 30 18:06:01 2011 UTC (13 years, 5 months ago) by abrinke1
Content type: text/x-python
Branch: MAIN
Log Message:
Combination of Alex's and G&A's code

File Contents

# User Rev Content
1 abrinke1 1.1 import sys
2     from colors import *
3     write = sys.stdout.write
4    
5     def PrettyPrintTable(Headers,Data,ColWidths,WarningCol=[],border='*'):
6     PrintHLine(ColWidths,border)
7     PrintLine(Headers,ColWidths,False,border)
8     PrintHLine(ColWidths,border)
9     if WarningCol==[]:
10     WarningCol=[False]*len(Data)
11     for [line,Warn] in zip(Data,WarningCol):
12     PrintLine(line,ColWidths,Warn,border)
13     PrintHLine(ColWidths,border)
14    
15     def PrintHLine(ColWidths,border): ## writes a horizontal line of the right width
16     #write = sys.stdout.write
17     for entry in ColWidths:
18     write(border)
19     for i in range(entry):
20     write(border)
21     write(border)
22     write('\n')
23    
24     def PrintLine(line,ColWidths,Warn,border):
25     assert Warn in [True,False]
26     try:
27     assert len(line)==len(ColWidths)
28     except:
29     print line
30     print ColWidths
31     raise
32     if Warn:
33     write(bcolors.FAIL)
34     for [width, entry] in zip(ColWidths,line):
35     write(border)
36     try:
37     entry = str(entry)
38     except:
39     print "\n\n\n Weird Data .. Bailing out\n\n"
40     sys.exit(0)
41     for i in range(width):
42     if i==0:
43     write(' ')
44     elif i<len(entry)+1:
45     write(entry[i-1])
46     else:
47     write(' ')
48     write(border)
49     write('\n')
50     write(bcolors.ENDC)