| """Local preview for the Tasks tab. |
| |
| Renders the task-browser page from the *local* data clones |
| (``cadgenbench-data`` + ``cadgenbench-data-gt`` at the repo root) and |
| writes a standalone HTML file you can open in a browser. Image URLs are |
| relative paths into those local folders, so the output must live at the |
| workspace root for the relative paths to resolve. |
| |
| Usage:: |
| |
| python cadgenbench-leaderboard/tools/preview_tasks.py |
| # writes <workspace>/tasks-preview.html |
| """ |
| from __future__ import annotations |
|
|
| import sys |
| from pathlib import Path |
|
|
| |
| LEADERBOARD_DIR = Path(__file__).resolve().parent.parent |
| sys.path.insert(0, str(LEADERBOARD_DIR)) |
|
|
| from tasks import load_tasks_from_dir, render_tasks_page |
|
|
| WORKSPACE = LEADERBOARD_DIR.parent |
| INPUTS_DIR = WORKSPACE / "cadgenbench-data" |
| GT_DIR = WORKSPACE / "cadgenbench-data-gt" |
| OUT = WORKSPACE / "tasks-preview.html" |
|
|
|
|
| def main() -> int: |
| tasks = load_tasks_from_dir(INPUTS_DIR) |
|
|
| def asset_url(fixture: str, relpath: str) -> str: |
| return f"cadgenbench-data/{fixture}/{relpath}" |
|
|
| doc = render_tasks_page(tasks, asset_url) |
| OUT.write_text(doc) |
| n_edit = sum(1 for t in tasks if t["task_type"] == "editing") |
| print( |
| f"Wrote {OUT} ({len(tasks)} tasks, {n_edit} editing, " |
| f"{OUT.stat().st_size // 1024} KB)" |
| ) |
| return 0 |
|
|
|
|
| if __name__ == "__main__": |
| raise SystemExit(main()) |
|
|