datasets
49 строк · 1.6 Кб
1import json2import sys3
4
5def format_json_to_md(input_json_file, output_md_file):6with open(input_json_file, encoding="utf-8") as f:7results = json.load(f)8
9output_md = ["<details>", "<summary>Show updated benchmarks!</summary>", " "]10
11for benchmark_name in sorted(results):12benchmark_res = results[benchmark_name]13
14benchmark_file_name = benchmark_name.split("/")[-1]15output_md.append(f"### Benchmark: {benchmark_file_name}")16
17title = "| metric |"18lines = "|--------|"19value = "| new / old (diff) |"20for metric_name in sorted(benchmark_res):21metric_vals = benchmark_res[metric_name]22new_val = metric_vals["new"]23old_val = metric_vals.get("old", None)24dif_val = metric_vals.get("diff", None)25
26val_str = f" {new_val:f}" if isinstance(new_val, (int, float)) else "None"27
28if old_val is not None:29val_str += f" / {old_val:f}" if isinstance(old_val, (int, float)) else "None"30if dif_val is not None:31val_str += f" ({dif_val:f})" if isinstance(dif_val, (int, float)) else "None"32
33title += " " + metric_name + " |"34lines += "---|"35value += val_str + " |"36
37output_md += [title, lines, value, " "]38
39output_md.append("</details>")40
41with open(output_md_file, "w", encoding="utf-8") as f:42f.writelines("\n".join(output_md))43
44
45if __name__ == "__main__":46input_json_file = sys.argv[1]47output_md_file = sys.argv[2]48
49format_json_to_md(input_json_file, output_md_file)50