File indexing completed on 2024-04-06 12:18:46
0001 from __future__ import print_function
0002 from __future__ import absolute_import
0003 import sys
0004 from .colors import *
0005 write = sys.stdout.write
0006
0007 def PrettyPrintTable(Headers,Data,ColWidths,WarningCol=[],border='*'):
0008 PrintHLine(ColWidths,border)
0009 PrintLine(Headers,ColWidths,False,border)
0010 PrintHLine(ColWidths,border)
0011 if WarningCol==[]:
0012 WarningCol=[False]*len(Data)
0013 for [line,Warn] in zip(Data,WarningCol):
0014 PrintLine(line,ColWidths,Warn,border)
0015 PrintHLine(ColWidths,border)
0016
0017 def PrintHLine(ColWidths,border):
0018
0019 for entry in ColWidths:
0020 write(border)
0021 for i in range(entry):
0022 write(border)
0023 write(border)
0024 write('\n')
0025
0026 def PrintLine(line,ColWidths,Warn,border):
0027 assert Warn in [True,False]
0028 try:
0029 assert len(line)==len(ColWidths)
0030 except:
0031 print(line)
0032 print(ColWidths)
0033 raise
0034 if Warn:
0035 write(bcolors.FAIL)
0036 for [width, entry] in zip(ColWidths,line):
0037 write(border)
0038 try:
0039 entry = str(entry)
0040 except:
0041 print("\n\n\n Weird Data .. Bailing out\n\n")
0042 sys.exit(0)
0043 for i in range(width):
0044 if i==0:
0045 write(' ')
0046 elif i<len(entry)+1:
0047 write(entry[i-1])
0048 else:
0049 write(' ')
0050 write(border)
0051 write('\n')
0052 write(bcolors.ENDC)