Source code for benchbuild.reports.raw
import csv
import os
from benchbuild.reports import Report
from benchbuild.utils import schema
Experiment = schema.Experiment
Project = schema.Project
Run = schema.Run
Metrics = schema.Metric
Config = schema.Config
[docs]class RawReport(Report):
NAME = "raw"
SUPPORTED_EXPERIMENTS = ["raw"]
[docs] def report(self):
exp_ids = [str(exp_id) for exp_id in self.experiment_ids]
qr = self.session.query(
Experiment.name,
Experiment.begin, Experiment.end, Experiment.description,
Run.experiment_group,
Run.project_name, Run.status, Run.run_group,
Metrics.name, Metrics.value,
Config.name, Config.value)\
.filter(Run.experiment_group == Experiment.id)\
.filter(Run.experiment_group.in_(exp_ids))\
.filter(Run.id == Metrics.run_id)\
.filter(Run.id == Config.run_id)
for r in qr:
yield r
[docs] def generate(self):
results_f = os.path.abspath(self.out_path)
with open(results_f, 'w') as csv_f:
fieldnames = [
"exp_name", "exp_begin", "exp_end", "exp_desc", "exp_id",
"project", "status", "run_group", "metric", "value", "config",
"config_value"
]
csv_w = csv.writer(csv_f)
csv_w.writerow(fieldnames)
for rep in self.report():
csv_w.writerow(rep)