Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python3 | |
| """ | |
| Cross-platform task runner for RedStack. | |
| Pure stdlib only — no POSIX binaries, no shell assumptions. | |
| Works identically on macOS, Linux, and native Windows (PowerShell/CMD). | |
| Usage: | |
| python scripts/run.py build | |
| python scripts/run.py rank | |
| python scripts/run.py validate | |
| python scripts/run.py clean | |
| """ | |
| import os | |
| import shutil | |
| import subprocess | |
| import sys | |
| from pathlib import Path | |
| # --------------------------------------------------------------------------- | |
| # Deterministic single-thread execution caps — applied BEFORE any subprocess. | |
| # --------------------------------------------------------------------------- | |
| os.environ["OMP_NUM_THREADS"] = "1" | |
| os.environ["MKL_NUM_THREADS"] = "1" | |
| os.environ["OPENBLAS_NUM_THREADS"] = "1" | |
| os.environ["VECLIB_MAXIMUM_THREADS"] = "1" | |
| os.environ["PYTHONUNBUFFERED"] = "1" | |
| os.environ["PYTHONDONTWRITEBYTECODE"] = "1" | |
| REPO_ROOT = Path(__file__).resolve().parent.parent | |
| SRC_DIR = REPO_ROOT / "src" | |
| PYTHON = sys.executable | |
| def _run(*args: str) -> None: | |
| # Propagate src/ so bare `python scripts/run.py` works without uv or editable install. | |
| env = os.environ.copy() | |
| src = str(SRC_DIR) | |
| existing_pp = env.get("PYTHONPATH", "") | |
| env["PYTHONPATH"] = f"{src}{os.pathsep}{existing_pp}" if existing_pp else src | |
| result = subprocess.run([PYTHON, "-m"] + list(args), cwd=REPO_ROOT, env=env) | |
| sys.exit(result.returncode) | |
| def cmd_build() -> None: | |
| artifact_dirs = [ | |
| "artifacts/embeddings", | |
| "artifacts/models", | |
| "artifacts/gates", | |
| "artifacts/weights", | |
| "artifacts/calibration", | |
| "artifacts/lexicon", | |
| "artifacts/archetypes", | |
| ] | |
| for d in artifact_dirs: | |
| Path(REPO_ROOT / d).mkdir(parents=True, exist_ok=True) | |
| _run( | |
| "redstack.cli.app", | |
| "build", | |
| "--config", | |
| "configs/runtime/offline.yaml", | |
| "--no-golden-labels", | |
| ) | |
| def cmd_rank() -> None: | |
| Path(REPO_ROOT / "artifacts").mkdir(parents=True, exist_ok=True) | |
| _run( | |
| "redstack.cli.app", | |
| "rank", | |
| "--input", | |
| "data/raw/candidates.jsonl", | |
| "--output", | |
| "artifacts/submission.csv", | |
| ) | |
| def cmd_validate() -> None: | |
| _run( | |
| "redstack.cli.app", | |
| "validate", | |
| "--submission", | |
| "artifacts/submission.csv", | |
| ) | |
| def cmd_clean() -> None: | |
| noise_dirs = [ | |
| ".mypy_cache", | |
| ".ruff_cache", | |
| ".pytest_cache", | |
| ".coverage", | |
| "htmlcov", | |
| "dist", | |
| "build", | |
| ] | |
| for name in noise_dirs: | |
| target = REPO_ROOT / name | |
| if target.exists(): | |
| shutil.rmtree(target, ignore_errors=True) | |
| print(f"removed {target}") | |
| for pycache in REPO_ROOT.rglob("__pycache__"): | |
| shutil.rmtree(pycache, ignore_errors=True) | |
| print("clean done.") | |
| COMMANDS = { | |
| "build": cmd_build, | |
| "rank": cmd_rank, | |
| "validate": cmd_validate, | |
| "clean": cmd_clean, | |
| } | |
| if __name__ == "__main__": | |
| if len(sys.argv) < 2 or sys.argv[1] not in COMMANDS: | |
| print(f"Usage: python scripts/run.py [{' | '.join(COMMANDS)}]", file=sys.stderr) | |
| sys.exit(1) | |
| COMMANDS[sys.argv[1]]() | |