Skip to content

Commit 2943a78

Browse files
feat: add evaluation manifest CLI
1 parent 3dccac6 commit 2943a78

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ gamengen-train = "src.diffusion.train:main"
5151
gamengen-dino = "src.agent.train_dqn:main"
5252
gamengen-doom = "src.agent.train_ppo_doom:main"
5353
gamengen-cache-latents = "src.diffusion.latent_cache:main"
54+
gamengen-create-eval-manifest = "src.utils.evaluation_manifest:main"
5455

5556
[tool.setuptools.packages.find]
5657
include = ["gamengen", "src*"]

src/utils/evaluation_manifest.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import hashlib
66
import json
7+
import argparse
78
from pathlib import Path
89

910
from src.utils.data_recorder import load_npz_shard, shard_checksum
@@ -49,3 +50,13 @@ def validate_evaluation_manifest(path: str | Path, data_dir: str | Path) -> dict
4950
if shard_checksum(Path(data_dir) / name) != expected:
5051
raise ValueError(f"evaluation source checksum mismatch: {name}")
5152
return payload
53+
54+
55+
def main() -> None:
56+
parser = argparse.ArgumentParser(description="Create a checksum-bound GameNGen evaluation manifest")
57+
parser.add_argument("--data-dir", required=True)
58+
parser.add_argument("--output", required=True)
59+
parser.add_argument("--limit", type=int)
60+
args = parser.parse_args()
61+
path = create_evaluation_manifest(args.data_dir, args.output, limit=args.limit)
62+
print(f"Wrote immutable evaluation manifest: {path}")

0 commit comments

Comments
 (0)