# HG changeset patch # User Boris Feld <boris.feld@octobus.net> # Date 1544003590 -3600 # Wed Dec 05 10:53:10 2018 +0100 # Node ID d0b30ec6cf7ee13ca89d972a3597ce54c9feca63 # Parent 1e7737a8282a13fa59ef8476e41221778961cbc5 Refactor asv_result_time to ease future work diff --git a/script/asv_result_time.py b/script/asv_result_time.py --- a/script/asv_result_time.py +++ b/script/asv_result_time.py @@ -6,23 +6,45 @@ import sys -def main(): - with open(sys.argv[1], 'r') as f: - result = json.load(f) +def split_name(name): + return name + + +def read_result_file(result_file): + with open(result_file, "r") as f: + return json.load(f) + + +def parse_result_file(result): times = {} - mname = 0 + total_time = datetime.timedelta() - for name, start in result['started_at'].items(): - times[name] = datetime.timedelta(seconds=(result['ended_at'][name] - start) / 1000.) + + for name, start in result["started_at"].items(): + times[name] = datetime.timedelta( + seconds=(result["ended_at"][name] - start) / 1000.0 + ) total_time += times[name] - mname = max(mname, len(name)) - fmt = '{:<70} {:>10} {:>10}%' - print(fmt.format('Benchmark', 'Time', '')) - print(fmt.format('Total', total_time, '100')) + + return times, total_time + + +def format_results(times, total_time): + fmt = "{:<70} {:>10} {:>10}%" + print(fmt.format("Benchmark", "Time", "")) + print(fmt.format("Total", total_time, "100")) for name, btime in sorted(times.items(), key=operator.itemgetter(1), reverse=True): - percent = '%.2f' % (btime.total_seconds() / total_time.total_seconds() * 100,) + percent = "%.2f" % (btime.total_seconds() / total_time.total_seconds() * 100,) print(fmt.format(name, btime, percent)) -if __name__ == '__main__': - main() +def main(result_file): + result = read_result_file(result_file) + + times, total_time = parse_result_file(result) + + format_results(times, total_time) + + +if __name__ == "__main__": + main(sys.argv[1])