from table_formatter import TableFormatter as TableFormatter class AutotestGatherer(TableFormatter): def __init__(self): self.runs = [] TableFormatter.__init__(self) def GetFormattedMainTable(self, percents_only, fit_string): ret = '' table = self.GetTableValues() ret += self.GetTableLabels(table) ret += self.GetFormattedTable(table, percents_only=percents_only, fit_string=fit_string) return ret def GetFormattedSummaryTable(self, percents_only, fit_string): ret = '' table = self.GetTableValues() summary_table = self.GetSummaryTableValues(table) ret += self.GetTableLabels(summary_table) ret += self.GetFormattedTable(summary_table, percents_only=percents_only, fit_string=fit_string) return ret def GetBenchmarksString(self): ret = 'Benchmarks (in order):' ret = '\n'.join(self.GetAllBenchmarks()) return ret def GetAllBenchmarks(self): all_benchmarks = [] for run in self.runs: for key in run.results.keys(): if key not in all_benchmarks: all_benchmarks.append(key) all_benchmarks.sort() return all_benchmarks def GetTableValues(self): table = [] row = [] row.append('Benchmark') for i in range(len(self.runs)): run = self.runs[i] label = run.GetLabel() label = self.GetLabelWithIteration(label, run.iteration) row.append(label) table.append(row) all_benchmarks = self.GetAllBenchmarks() for benchmark in all_benchmarks: row = [] row.append(benchmark) for run in self.runs: results = run.results if benchmark in results: row.append(results[benchmark]) else: row.append('') table.append(row) return table