mirror of
https://github.com/obra/superpowers.git
synced 2026-05-10 11:09:05 +08:00
Lift drill into evals/ at 013fcb8b7dbefd6d3fa4653493e5d2ec8e7f985b
rsync of obra/drill@013fcb8b7d into superpowers/evals/, excluding .git/, .venv/, results/, .env/, __pycache__/, *.egg-info/, .private-journal/. The drill repo is unaffected by this commit; archival is a separate manual step after this PR merges. Source SHA recorded at evals/.drill-source-sha for divergence detection.
This commit is contained in:
committed by
Drew Ritter
parent
2e46e9590d
commit
3b412a3836
43
evals/drill/setup.py
Normal file
43
evals/drill/setup.py
Normal file
@@ -0,0 +1,43 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
from setup_helpers import HELPER_REGISTRY
|
||||
from setup_helpers.base import create_base_repo
|
||||
|
||||
|
||||
def clone_template(template_dir: Path, workdir: Path) -> None:
|
||||
"""Clone (or build) template_dir into workdir with full git history."""
|
||||
create_base_repo(workdir, template_dir)
|
||||
|
||||
|
||||
def run_helpers(helper_names: list[str], workdir: Path, fixtures_dir: Path) -> None:
|
||||
for name in helper_names:
|
||||
helper = HELPER_REGISTRY.get(name)
|
||||
if helper is None:
|
||||
raise ValueError(f"Unknown setup helper: {name}")
|
||||
if name == "create_base_repo":
|
||||
helper(workdir, fixtures_dir / "template-repo") # ty: ignore[invalid-argument-type, too-many-positional-arguments, missing-argument]
|
||||
elif name == "symlink_superpowers":
|
||||
import os
|
||||
|
||||
helper(workdir, os.environ["SUPERPOWERS_ROOT"]) # ty: ignore[invalid-argument-type, too-many-positional-arguments, missing-argument]
|
||||
else:
|
||||
helper(workdir) # ty: ignore[invalid-argument-type, missing-argument]
|
||||
|
||||
|
||||
def run_assertions(assertions: list[str], workdir: Path) -> None:
|
||||
for assertion in assertions:
|
||||
result = subprocess.run(
|
||||
assertion,
|
||||
shell=True,
|
||||
cwd=workdir,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
if result.returncode != 0:
|
||||
raise AssertionError(
|
||||
f"Setup assertion failed: {assertion}\n"
|
||||
f"stdout: {result.stdout}\nstderr: {result.stderr}"
|
||||
)
|
||||
Reference in New Issue
Block a user