from __future__ import annotations import abc import enum import logging import os import shutil import subprocess import sys from pathlib import Path from benchmark import Command from benchmark.projects import Project class Benchmark(enum.Enum): """Enumeration of the benchmarks to run.""" COLD = "cold" """Cold check of an entire project without a cache present.""" WARM = "warm" """Re-checking the entire project without any changes".""" def which_tool(name: str) -> Path: tool = shutil.which(name) assert tool is not None, ( f"Tool {name} not found. Run the script with `uv run