--- a/buildframework/helium/tools/relnotes/readHTML.py Fri Feb 05 11:59:41 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-#============================================================================
-#Name : readHTML.py
-#Part of : Helium
-
-#Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-#All rights reserved.
-#This component and the accompanying materials are made available
-#under the terms of the License "Eclipse Public License v1.0"
-#which accompanies this distribution, and is available
-#at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-#Initial Contributors:
-#Nokia Corporation - initial contribution.
-#
-#Contributors:
-#
-#Description:
-#===============================================================================
-
-# Name: readHTML.py
-# Synopsis: This script creates a CSV file from the Log File Summary (.html)
-
-import htmllib
-import sys
-import formatter
-import re
-
-class HTMLComponent(object):
- """
- Represents a component in the log file summary
- """
- def __init__(self):
- self._name = ''
- self._errorCount = 0
- self._warningCount = 0
-
- def getCSV(self):
- return self._name + ',' + str(self._errorCount) + ',' + str(self._warningCount)
-
- def __setName(self, n):
- self._name = n
- def __setErrorCount(self, n):
- self._errorCount = n
- def __setWarningCount(self, n):
- self._warningCount = n
-
- name = property(None, __setName)
- errorCount = property(None, __setErrorCount)
- warningCount = property(None, __setWarningCount)
-
-class LogHTMLParser(htmllib.HTMLParser):
- """
- Parse the scan2log HTML file into CSV
- """
- def __init__(self, verbose=0):
- self.anchors = {}
- f = formatter.NullFormatter()
- htmllib.HTMLParser.__init__(self, f, verbose)
-
- self.state = -1 #represents column, 0 is first
- self.printFlag = False
- self.errorCount = 0
- self.warningCount = 0
-
- self._components = []
- self.component = None
-
- def __getComponents(self):
- return self._components
-
- components = property(__getComponents)
-
- def handle_data(self, text):
- text = text.strip()
-
- #ignore plain text links that appear eg. [9]
- p = re.compile('\[[0-9]*\]')
- if not text or p.match(text):
- return
-
- #start of area to parse
- if (text == 'Component'):
- self.state = 0
-
- #end of area to parse
- if (text == 'By Command'):
- self.state = -1
-
- #reset column if we get lost
- #if (self.state > 0 and not text.isdigit()):
- # self.state = 0
-
- if (self.state == 0):
- self.component = HTMLComponent()
- self.component.name = text
- if (text.isdigit() and self.state == 2):
- self.errorCount += int(text)
- self.component.errorCount = text
- if (text.isdigit() and self.state == 3):
- self.warningCount += int(text)
- self.component.warningCount = text
-
- #if there are more than/ equal 5 errors or 50 warnings we print this row
- if (text.isdigit() and ((self.state == 2 and (int(text) >= 5)) or
- (self.state == 3 and (int(text) >= 50)))):
- self.printFlag = True
-
- if (self.state == 5):
- if (self.printFlag):
- self.components.append(self.component)
-
- self.printFlag = False
-
- if (self.state >= 0):
- self.state += 1
- self.state %= 6
-
-def main():
- if len(sys.argv) != 3:
- print "Usage: readHTML.pl LogFile.html errors.csv"
- sys.exit(1)
-
- parser = LogHTMLParser()
-
- inputFile = file( sys.argv[1], 'rb' )
- outFile = file( sys.argv[2], 'w' )
-
- outFile.write("Component,Errors (more than 5),Warnings (more than 50)\n")
-
- parser.feed(inputFile.read())
-
- for c in parser.components:
- outFile.write(c.getCSV() + "\n")
-
- outFile.write("Total," + str(parser.errorCount) + "," + str(parser.warningCount) + "\n")
-
- inputFile.close()
- outFile.close()
- parser.close()
-
-if __name__ == '__main__' :
- main()
\ No newline at end of file