Back to home page

Project CMSSW displayed by LXR

 
 

    


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): ## writes a horizontal line of the right width
0016     #write = sys.stdout.write
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)