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