-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathupdate_manifest.py
More file actions
50 lines (41 loc) · 1.46 KB
/
update_manifest.py
File metadata and controls
50 lines (41 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env python3
"""
Update samples.json manifest without regenerating GIFs.
"""
import json
from pathlib import Path
from datetime import datetime
import sys
sys.path.insert(0, str(Path(__file__).parent))
from slm_guessr.generator import get_all_samples
def main():
"""Update manifest with all sample configs."""
samples = get_all_samples()
manifest_entries = []
for config in samples:
entry = {
"id": config.id,
"level": config.level,
"category": config.category,
"name": config.name,
"description": config.description,
"phase_gif": f"assets/L{config.level}/{config.id}_phase.gif",
"intensity_gif": f"assets/L{config.level}/{config.id}_intensity.gif",
"parameters": config.parameters or {}
}
manifest_entries.append(entry)
manifest = {
"samples": manifest_entries,
"generated_at": datetime.now().isoformat(),
"version": "1.0.0",
}
# Save manifest
manifest_path = Path(__file__).parent / "static" / "samples.json"
with open(manifest_path, "w") as f:
json.dump(manifest, f, indent=2)
print(f"Updated manifest with {len(manifest_entries)} samples")
print(f"L1 samples: {len([s for s in samples if s.level == 1])}")
print(f"L2 samples: {len([s for s in samples if s.level == 2])}")
print(f"Manifest saved to: {manifest_path}")
if __name__ == "__main__":
main()