in prediction_generation/original-project/analysis/scripts/make_table.py [0:0]
def write_json(results, is_avg=None):
if not is_avg in [True, False]:
raise ValueError("is_avg should be either True or False")
output = {}
if is_avg:
output = results
else:
datasets = set(r.dataset for r in results)
methods = set(r.method for r in results)
for d in datasets:
output[d] = {}
for m in methods:
r = next(
(r for r in results if r.dataset == d and r.method == m),
None,
)
# intended to fail if r is None, because that shouldn't happen
output[d][m.name] = r.score
print(json.dumps(output, indent="\t", sort_keys=True))