pytorch
49 строк · 1.3 Кб
1# This script takes csvs produced by parse_logs.py and combines them
2# into a single CSV file
3
4import ast5import csv6import sys7from collections import defaultdict8
9assert len(sys.argv) == 310
11RESULTS = defaultdict(dict)12
13for side, f in zip(["static", "dynamic"], sys.argv[1:]):14with open(f) as f:15reader = csv.DictReader(f)16for row in reader:17RESULTS[(row["bench"], row["name"])][side] = row18
19fields = ["frame_time", "graph_breaks"]20
21out = csv.DictWriter(22sys.stdout,23["bench", "name"] + [f"delta_{n}" for n in fields] + ["static_url", "dynamic_url"],24dialect="excel",25)
26out.writeheader()27
28for (bench, name), sides in RESULTS.items():29if "static" not in sides:30continue31if "dynamic" not in sides:32continue33if not name:34out.writerow(35{36"static_url": sides["static"]["explain"],37"dynamic_url": sides["dynamic"]["explain"],38}39)40continue41row = {"bench": bench, "name": name}42for f in fields:43try:44static = ast.literal_eval(sides["static"][f])45dynamic = ast.literal_eval(sides["dynamic"][f])46except SyntaxError:47continue48row[f"delta_{f}"] = dynamic - static49out.writerow(row)50