import argparse import os from matharena.runner import run from matharena.grader import run_grader import yaml from loguru import logger parser = argparse.ArgumentParser() parser.add_argument("--n", type=int, default=4) parser.add_argument("--grader_config", type=str, required=True) parser.add_argument("--solver_config", type=str, nargs="+", required=True) parser.add_argument("--skip_existing", action="store_true") parser.add_argument("--comp", type=str, required=True) parser.add_argument("--output-folder", type=str, default="outputs") parser.add_argument("--grading-folder", type=str, default="autogradings") parser.add_argument("--configs-folder", type=str, default="configs") args = parser.parse_args() with open(f"{args.configs_folder}/{args.grader_config}", 'r') as f: grader_config = yaml.safe_load(f) for solver_config_path in args.solver_config: with open(f"{args.configs_folder}/{solver_config_path}", 'r') as f: solver_config = yaml.safe_load(f) logger.info(f"Running grader {args.grader_config} on config: {solver_config}") grader_config["n"] = solver_config.get("n", args.n) run_grader(grader_config, solver_config_path, args.comp, skip_existing=args.skip_existing, output_folder=args.output_folder, grading_folder=args.grading_folder)