feather-a10-runtime / overlay /scripts /benchmark_preflight.py
Jackoatmon's picture
Update Feather training runtime image
951f760 verified
#!/usr/bin/env python3
from __future__ import annotations
from pathlib import Path
from scripts.bootstrap_benchmark_env import build_bootstrap_report
from scripts.benchmark_checkpoint import choose_checkpoint_candidate
def build_readiness_report(*, cache_dir: Path, hf_token_present: bool, dependencies_present: bool = True, missing_dependencies: list[str] | None = None, output_repo: str | None = None, tokenizer_repo: str | None = None) -> dict[str, object]:
checkpoint = choose_checkpoint_candidate(cache_dir)
tokenizer_dir = cache_dir / "tokenizer"
tokenizer_ready = (tokenizer_dir / "tokenizer.pkl").exists() and (tokenizer_dir / "token_bytes.pt").exists()
checkpoint_present = checkpoint is not None
runtime = build_bootstrap_report(missing_dependencies=list(missing_dependencies or []))
return {
"cache_dir": str(cache_dir),
"checkpoint_present": checkpoint_present,
"checkpoint_path": str(checkpoint) if checkpoint is not None else None,
"tokenizer_ready": tokenizer_ready,
"hf_token_present": hf_token_present,
"dependencies_present": dependencies_present,
"missing_dependencies": list(missing_dependencies or []),
"install_hint": runtime["install_hint"],
"install_command": runtime["install_command"],
"install_blockers": runtime["install_blockers"],
"output_repo": output_repo,
"tokenizer_repo": tokenizer_repo,
"hydration_possible": bool(hf_token_present and output_repo and tokenizer_repo),
"ready_for_hydra_benchmarks": checkpoint_present and tokenizer_ready and dependencies_present,
}