Loading tests/benchmarks/share/tnl-log-to-html.py +132 −6 Original line number Diff line number Diff line Loading @@ -2,11 +2,68 @@ import sys; class tableColumn: def __init__( self, level, label ): self.level = level self.maxLevel = 0 self.height = 0 self.label = label self.subcolumns = [] self.numberOfSubcolumns = 0 self.rowspan = 0 def insertSubcolumn( self, level, label ): if level > self.maxLevel: self.maxLevel = level if level == self.level + 1: self.subcolumns.append( tableColumn( level, label ) ) if level > self.level + 1: self.subcolumns[ len( self.subcolumns ) - 1 ].insertSubcolumn( level, label ) def countSubcolumns( self ): if( len( self.subcolumns ) == 0 ): return 1 self.numberOfSubcolumns = 0; for subcolumn in self.subcolumns: self.numberOfSubcolumns = self.numberOfSubcolumns + subcolumn.countSubcolumns() return self.numberOfSubcolumns def countHeight( self ): self.height = 1; if len( self.subcolumns ) == 0: return 1 for subcolumn in self.subcolumns: self.height = max( self.height, subcolumn.countHeight() + 1 ) return self.height def countRowspan( self, height ): self.rowspan = height - self.height + 1 print "Setting rowspan of ", self.label, " to ", self.rowspan for subcolumn in self.subcolumns: subcolumn.countRowspan( self.height - 1 ) def recomputeLevel( self, level ): self.level = level for subcolumn in self.subcolumns: subcolumn.recomputeLevel( self.level + self.rowspan ) def writeToColumnsHeader( self, htmlFile, height, currentLevel ): if currentLevel > self.level: for subcolumn in self.subcolumns: subcolumn.writeToColumnsHeader( htmlFile, self.height , currentLevel ) if currentLevel == self.level: print "Label = ", self.label, " self.height = ", self.height, " height = ", height htmlFile.write( " <td rowspan=" + str( self.rowspan ) + " colspan=" + str( self.numberOfSubcolumns) + ">" + self.label + "</td>\n" ) class logToHtmlConvertor: def processFile( self, logFileName, htmlFileName ): def __init__( self ): self.tableColumns = [] self.maxLevel = 0 def processFile( self, logFileName, htmlFileName ): print "Processing file", logFileName print "Writing output to", htmlFileName logFile = open( logFileName, 'r' ) Loading @@ -15,15 +72,84 @@ class logToHtmlConvertor: htmlFile.close() logFile.close() def writeHtmlHeader( self, htmlFile, logFile ): htmlFile.write("<html>" ) htmlFile.write(" <body>" ) def initColumnsStructure( self, logFile ): for line in logFile: if line[ 0 ] != '#': return data = line[1:] leadingSpaces = len( data ) - len( data.lstrip(' ') ) print "Leading spaces", leadingSpaces level = len( data ) - len( data.lstrip(' ') ) level = level + 1 label = data.lstrip( ' ') label = label.rstrip( '\n' ) print " Inserting column on level ", level, " and label ", label if level > self.maxLevel: self.maxLevel = level; if level == 1: self.tableColumns.append( tableColumn( 1, label ) ) if level > 1: self.tableColumns[ len( self.tableColumns ) - 1 ].insertSubcolumn( level, label ) def countSubcolumns( self ): for subcolumn in self.tableColumns: subcolumn.countSubcolumns(); def countHeight( self ): for subcolumn in self.tableColumns: subcolumn.countHeight(); def countRowspan( self ): for subcolumn in self.tableColumns: subcolumn.countRowspan( self.maxLevel ) def recomputeLevel( self ): for subcolumn in self.tableColumns: subcolumn.recomputeLevel( 1 ) def writeColumnsHeader( self, htmlFile ): level = 1 while level <= self.maxLevel: print "Writing columns on level ", level htmlFile.write( " <tr>\n") for column in self.tableColumns: column.writeToColumnsHeader( htmlFile, self.maxLevel, level ) htmlFile.write( " </tr>\n") print "-------------------------------" level = level + 1 def writeTable( self, logFile, htmlFile ): firstLine = "true" for line in logFile: if len( line ) == 1: if firstLine == "true": htmlFile.write( " <tr>\n" ) firstLine = "false" else: htmlFile.write( " </tr>\n" ) htmlFile.write( " <tr>\n" ) else: htmlFile.write( " <td>" ) line = line.lstrip( ' ' ) line = line.rstrip( '\n' ) htmlFile.write( line ) htmlFile.write( " </td>" ) htmlFile.write( " </tr>\n" ) def writeHtmlHeader( self, htmlFile, logFile ): htmlFile.write( "<html>\n" ) htmlFile.write( " <body>\n" ) htmlFile.write( " <table border=1>\n") self.initColumnsStructure( logFile ) self.countSubcolumns() self.countHeight() self.countRowspan() self.recomputeLevel() self.writeColumnsHeader( htmlFile ) self.writeTable( logFile, htmlFile ) htmlFile.write( " </table>\n") htmlFile.write( " </body>\n" ) htmlFile.write( "</html>\n" ) print "Max level = ", self.maxLevel arguments = sys.argv[ 1: ] Loading Loading
tests/benchmarks/share/tnl-log-to-html.py +132 −6 Original line number Diff line number Diff line Loading @@ -2,11 +2,68 @@ import sys; class tableColumn: def __init__( self, level, label ): self.level = level self.maxLevel = 0 self.height = 0 self.label = label self.subcolumns = [] self.numberOfSubcolumns = 0 self.rowspan = 0 def insertSubcolumn( self, level, label ): if level > self.maxLevel: self.maxLevel = level if level == self.level + 1: self.subcolumns.append( tableColumn( level, label ) ) if level > self.level + 1: self.subcolumns[ len( self.subcolumns ) - 1 ].insertSubcolumn( level, label ) def countSubcolumns( self ): if( len( self.subcolumns ) == 0 ): return 1 self.numberOfSubcolumns = 0; for subcolumn in self.subcolumns: self.numberOfSubcolumns = self.numberOfSubcolumns + subcolumn.countSubcolumns() return self.numberOfSubcolumns def countHeight( self ): self.height = 1; if len( self.subcolumns ) == 0: return 1 for subcolumn in self.subcolumns: self.height = max( self.height, subcolumn.countHeight() + 1 ) return self.height def countRowspan( self, height ): self.rowspan = height - self.height + 1 print "Setting rowspan of ", self.label, " to ", self.rowspan for subcolumn in self.subcolumns: subcolumn.countRowspan( self.height - 1 ) def recomputeLevel( self, level ): self.level = level for subcolumn in self.subcolumns: subcolumn.recomputeLevel( self.level + self.rowspan ) def writeToColumnsHeader( self, htmlFile, height, currentLevel ): if currentLevel > self.level: for subcolumn in self.subcolumns: subcolumn.writeToColumnsHeader( htmlFile, self.height , currentLevel ) if currentLevel == self.level: print "Label = ", self.label, " self.height = ", self.height, " height = ", height htmlFile.write( " <td rowspan=" + str( self.rowspan ) + " colspan=" + str( self.numberOfSubcolumns) + ">" + self.label + "</td>\n" ) class logToHtmlConvertor: def processFile( self, logFileName, htmlFileName ): def __init__( self ): self.tableColumns = [] self.maxLevel = 0 def processFile( self, logFileName, htmlFileName ): print "Processing file", logFileName print "Writing output to", htmlFileName logFile = open( logFileName, 'r' ) Loading @@ -15,15 +72,84 @@ class logToHtmlConvertor: htmlFile.close() logFile.close() def writeHtmlHeader( self, htmlFile, logFile ): htmlFile.write("<html>" ) htmlFile.write(" <body>" ) def initColumnsStructure( self, logFile ): for line in logFile: if line[ 0 ] != '#': return data = line[1:] leadingSpaces = len( data ) - len( data.lstrip(' ') ) print "Leading spaces", leadingSpaces level = len( data ) - len( data.lstrip(' ') ) level = level + 1 label = data.lstrip( ' ') label = label.rstrip( '\n' ) print " Inserting column on level ", level, " and label ", label if level > self.maxLevel: self.maxLevel = level; if level == 1: self.tableColumns.append( tableColumn( 1, label ) ) if level > 1: self.tableColumns[ len( self.tableColumns ) - 1 ].insertSubcolumn( level, label ) def countSubcolumns( self ): for subcolumn in self.tableColumns: subcolumn.countSubcolumns(); def countHeight( self ): for subcolumn in self.tableColumns: subcolumn.countHeight(); def countRowspan( self ): for subcolumn in self.tableColumns: subcolumn.countRowspan( self.maxLevel ) def recomputeLevel( self ): for subcolumn in self.tableColumns: subcolumn.recomputeLevel( 1 ) def writeColumnsHeader( self, htmlFile ): level = 1 while level <= self.maxLevel: print "Writing columns on level ", level htmlFile.write( " <tr>\n") for column in self.tableColumns: column.writeToColumnsHeader( htmlFile, self.maxLevel, level ) htmlFile.write( " </tr>\n") print "-------------------------------" level = level + 1 def writeTable( self, logFile, htmlFile ): firstLine = "true" for line in logFile: if len( line ) == 1: if firstLine == "true": htmlFile.write( " <tr>\n" ) firstLine = "false" else: htmlFile.write( " </tr>\n" ) htmlFile.write( " <tr>\n" ) else: htmlFile.write( " <td>" ) line = line.lstrip( ' ' ) line = line.rstrip( '\n' ) htmlFile.write( line ) htmlFile.write( " </td>" ) htmlFile.write( " </tr>\n" ) def writeHtmlHeader( self, htmlFile, logFile ): htmlFile.write( "<html>\n" ) htmlFile.write( " <body>\n" ) htmlFile.write( " <table border=1>\n") self.initColumnsStructure( logFile ) self.countSubcolumns() self.countHeight() self.countRowspan() self.recomputeLevel() self.writeColumnsHeader( htmlFile ) self.writeTable( logFile, htmlFile ) htmlFile.write( " </table>\n") htmlFile.write( " </body>\n" ) htmlFile.write( "</html>\n" ) print "Max level = ", self.maxLevel arguments = sys.argv[ 1: ] Loading