DarshanScripts's picture
Upload stratego/benchmarking/summary_writer.py with huggingface_hub
325bfbd verified
# stratego/benchmarking/summary_csv_logger.py
import csv
import os
from datetime import datetime
OUTPUT_DIR = "stratego/benchmarking/output/summaries"
def write_summary_csv(
summary: dict,
games: int,
size: int,
model_p0: str,
model_p1: str,
source_benchmark_csv: str
):
os.makedirs(OUTPUT_DIR, exist_ok=True)
timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
filename = f"summary_{timestamp}_{games}games.csv"
with open(os.path.join(OUTPUT_DIR, filename), "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerow([
"games",
"board_size",
"model_p0",
"model_p1",
"source_benchmark_csv",
"wins_p0",
"wins_p1",
"draws",
"win_rate_p0",
"win_rate_p1",
"ended_invalid",
"ended_flag",
"ended_no_moves",
"ended_turn_limit",
"avg_game_length",
"avg_invalid_moves_p0",
"avg_invalid_moves_p1",
"avg_repetitions"
])
writer.writerow([
games,
size,
model_p0,
model_p1,
source_benchmark_csv,
summary["Wins P0"],
summary["Wins P1"],
summary["Draws"],
summary["Win Rate P0"],
summary["Win Rate P1"],
summary["Ended by Invalid Move"],
summary["Ended by Flag"],
summary["Ended by No Moves"],
summary["Ended by Turn Limit"],
summary["Avg Game Length"],
summary["Avg Invalid Moves P0"],
summary["Avg Invalid Moves P1"],
summary["Avg Repetitions"]
])