Spaces:
Running
Running
Download build.py from dzakybd/pid-parser: direct link, hf CLI and curl.
- Browser
- Download file 1.94 kB
-
https://huggingface.co/spaces/dzakybd/pid-parser/resolve/main/build.py
- Command line
-
hf download hf://spaces/dzakybd/pid-parser/build.py
-
curl -L -o build.py https://huggingface.co/spaces/dzakybd/pid-parser/resolve/main/build.py
1.94 kB
| """Pack precomputed runs on the dense sheet into space/data for the Hugging Face Space. | |
| The sheet is PID2Graph "Dataset PID" 269 (CC BY-SA 4.0). Two runs of the same sheet are shown: the skill on Claude | |
| Sonnet 5.5 and the Deep Agents runner on gpt-6-luna (best of three runs). | |
| Usage: uv run python space/build.py | |
| """ | |
| import json | |
| import shutil | |
| from pathlib import Path | |
| from PIL import Image | |
| Image.MAX_IMAGE_PIXELS = None | |
| REPO = Path(__file__).resolve().parent.parent | |
| SHEET = "dpid-269" | |
| RUNS = { | |
| "dpid-269-sonnet": ("Skill, Sonnet 5.5", REPO / "runs" / "claude-claude-sonnet-5-5-cv" / SHEET / "r1"), | |
| "dpid-269-luna": ("Deep Agents, gpt-6-luna", REPO / "runs" / "deepagents-gpt-6-luna-low-tiled-cv" / SHEET / "r1"), | |
| } | |
| WEB_WIDTH = 2400 # the drawing is 7000+ px wide; the overlay uses original pixels via the SVG viewBox | |
| def main(): | |
| data = REPO / "space" / "data" | |
| shutil.rmtree(data, ignore_errors=True) | |
| img = Image.open(REPO / "samples" / f"{SHEET}.png").convert("RGB") | |
| small = img.resize((WEB_WIDTH, round(img.height * WEB_WIDTH / img.width)), Image.LANCZOS) | |
| index = [] | |
| for sheet, (title, run) in RUNS.items(): | |
| dest = data / sheet | |
| shutil.copytree(run / "out", dest / "out") | |
| shutil.copy(run / "graph.json", dest / "graph.json") | |
| small.save(dest / "drawing.jpg", quality=85) | |
| meta = json.loads((run / "run.json").read_text()) | |
| score = json.loads((run / "score.json").read_text()) | |
| index.append( | |
| { | |
| "id": sheet, | |
| "title": title, | |
| "model": meta["model"], | |
| "effort": meta.get("effort"), | |
| "seconds": meta["seconds"], | |
| "score": {k: score[k] for k in ("symbols", "connections")}, | |
| } | |
| ) | |
| (data / "sheets.json").write_text(json.dumps(index, indent=2)) | |
| print(f"{len(index)} runs -> {data}") | |
| if __name__ == "__main__": | |
| main() | |