--- a/sbsv2/raptor/bin/statcollate.py Wed Oct 28 14:39:48 2009 +0000
+++ b/sbsv2/raptor/bin/statcollate.py Mon Nov 16 09:46:46 2009 +0000
@@ -1,112 +1,112 @@
-#
-# Copyright (c) 2007-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:
-# statcollate
-#
-
-"""
- Produce output for a graphing program or spreadsheet from
- the statistic logs produced by buildstats.py from Raptor logs.
- e.g. by analysing several logs we can see how
- "number of successful compiles" improves over time.
-"""
-
-import sys
-from optparse import OptionParser
-import os
-import xml.dom.minidom
-from stat import *
-
-namespace = "http://symbian.com/2007/xml/build/raptor/stats"
-
-class StatsFail(Exception):
- pass
-
-def pullStats(statnames, file):
- """Load a Statistics document and pull stats for a graph"""
-
- # try to read and parse the XML file
- try:
- dom = xml.dom.minidom.parse(file)
-
- except Exception,e: # a whole bag of exceptions can be raised here
- print "pullStats: %s" % str(e)
- raise StatsFail
-
- # <build> is always the root element
- stats = dom.documentElement
- objects = []
- build = stats.childNodes[1]
-
- # create a Data Model object from each sub-element
- output = {}
- output['date'] = build.getAttribute('date')
- #print "statnames %s\n" % str(statnames) #test
- for child in build.childNodes:
- if child.namespaceURI == namespace \
- and child.nodeType == child.ELEMENT_NODE \
- and child.hasAttributes():
- #print "child node %s\n" % child.getAttribute('name') #test
- name = child.getAttribute('name')
- if name in statnames:
- #print "1" #test
- output[name] = child.getAttribute('count')
-
- return output
-
-statnames = ['postlink success', 'compile success', 'compile fail']
-
-## Command Line Interface ################################################
-
-parser = OptionParser(prog = "statgraph",
- usage = "%prog [-h | options] [<statsfile>] [[<statsfile>] ...]")
-
-(options, args) = parser.parse_args()
-
-statfilename = "stdin"
-
-table = sys.stdout
-print >> table, 'Date,', # add 'Date' in front of names
-
-comma=""
-for name in statnames:
- print >> table, comma+name, #! this order is not the order in dictionary
- comma=', '
- #print 'test,', #test
-
-print >> table, ""
-
-if len(args) > 0:
- for statfilename in args:
- sys.__stderr__.write("Loading %s\n" % statfilename)
- file = open(statfilename, "r")
- try:
- stats = pullStats(statnames, file)
- except StatsFail,e:
- sys.__stderr__.write("Can't process file %s\n" % statfilename)
- sys.exit(1)
- #print stats.items() # test
- file.close()
-
- comma=""
- print >> table, stats['date'] + ",",
- for name in statnames:
- print >> table, comma+stats[name],
- comma=', '
- #print 'test,', # test
- print >> table, ""
-
-else:
- sys.stderr.write("No files specified")
- #pullStats(statnames,sys.stdin)
+#
+# Copyright (c) 2007-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:
+# statcollate
+#
+
+"""
+ Produce output for a graphing program or spreadsheet from
+ the statistic logs produced by buildstats.py from Raptor logs.
+ e.g. by analysing several logs we can see how
+ "number of successful compiles" improves over time.
+"""
+
+import sys
+from optparse import OptionParser
+import os
+import xml.dom.minidom
+from stat import *
+
+namespace = "http://symbian.com/2007/xml/build/raptor/stats"
+
+class StatsFail(Exception):
+ pass
+
+def pullStats(statnames, file):
+ """Load a Statistics document and pull stats for a graph"""
+
+ # try to read and parse the XML file
+ try:
+ dom = xml.dom.minidom.parse(file)
+
+ except Exception,e: # a whole bag of exceptions can be raised here
+ print "pullStats: %s" % str(e)
+ raise StatsFail
+
+ # <build> is always the root element
+ stats = dom.documentElement
+ objects = []
+ build = stats.childNodes[1]
+
+ # create a Data Model object from each sub-element
+ output = {}
+ output['date'] = build.getAttribute('date')
+ #print "statnames %s\n" % str(statnames) #test
+ for child in build.childNodes:
+ if child.namespaceURI == namespace \
+ and child.nodeType == child.ELEMENT_NODE \
+ and child.hasAttributes():
+ #print "child node %s\n" % child.getAttribute('name') #test
+ name = child.getAttribute('name')
+ if name in statnames:
+ #print "1" #test
+ output[name] = child.getAttribute('count')
+
+ return output
+
+statnames = ['postlink success', 'compile success', 'compile fail']
+
+## Command Line Interface ################################################
+
+parser = OptionParser(prog = "statgraph",
+ usage = "%prog [-h | options] [<statsfile>] [[<statsfile>] ...]")
+
+(options, args) = parser.parse_args()
+
+statfilename = "stdin"
+
+table = sys.stdout
+print >> table, 'Date,', # add 'Date' in front of names
+
+comma=""
+for name in statnames:
+ print >> table, comma+name, #! this order is not the order in dictionary
+ comma=', '
+ #print 'test,', #test
+
+print >> table, ""
+
+if len(args) > 0:
+ for statfilename in args:
+ sys.__stderr__.write("Loading %s\n" % statfilename)
+ file = open(statfilename, "r")
+ try:
+ stats = pullStats(statnames, file)
+ except StatsFail,e:
+ sys.__stderr__.write("Can't process file %s\n" % statfilename)
+ sys.exit(1)
+ #print stats.items() # test
+ file.close()
+
+ comma=""
+ print >> table, stats['date'] + ",",
+ for name in statnames:
+ print >> table, comma+stats[name],
+ comma=', '
+ #print 'test,', # test
+ print >> table, ""
+
+else:
+ sys.stderr.write("No files specified")
+ #pullStats(statnames,sys.stdin)