From 31d13e9a9b2a9624eec4e5bca6069f9779def3cf Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Tue, 18 Oct 2005 15:01:51 -0400 Subject: Improvements to the graphing output util/stats/output.py: Create the graph directory if it doesn't exist Don't write out a graph if all of the jobs for that graph are missing --HG-- extra : convert_revision : 7993baf1a4be33a062f86a4f09791f01eaafa43c --- util/stats/output.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'util') diff --git a/util/stats/output.py b/util/stats/output.py index 44dba5d15..f793749f7 100644 --- a/util/stats/output.py +++ b/util/stats/output.py @@ -96,10 +96,10 @@ class StatOutput(object): self.printdata(printmode=printmode) def graph(self, graphdir): - from os.path import expanduser, join as joinpath + from os.path import expanduser, isdir, join as joinpath from barchart import BarChart - from matplotlib.numerix import Float, zeros - import re + from matplotlib.numerix import Float, array, zeros + import os, re confgroups = self.jobfile.groups() ngroups = len(confgroups) @@ -130,6 +130,8 @@ class StatOutput(object): raise AttributeError, 'No group selected for graph bars' directory = expanduser(graphdir) + if not isdir(directory): + os.mkdir(directory) html = file(joinpath(directory, '%s.html' % self.name), 'w') print >>html, '' print >>html, 'Graphs for %s' % self.name @@ -143,6 +145,8 @@ class StatOutput(object): for g,gopt in enumerate(groupopts): for b,bopt in enumerate(baropts): job = self.jobfile.job(options + [ gopt, bopt ]) + if not job: + continue val = self.info.get(job, self.stat) if val is None: @@ -156,6 +160,10 @@ class StatOutput(object): data[g][b] = val + data = array(data) + if data.sum() == 0: + continue + bar_descs = [ opt.desc for opt in baropts ] group_descs = [ opt.desc for opt in groupopts ] if stacked: -- cgit v1.2.3