from dataclasses import dataclass, field from typing import Callable @dataclass(frozen=True) class BenchmarkSpec: name: str tier: str domain: str task_type: str metric: str priority: int status: str = "planned" notes: str = "" @dataclass(frozen=True) class ViewSpec: name: str family: str graph_type: str priority: int status: str = "planned" notes: str = "" @dataclass(frozen=True) class ComputeSpec: name: str family: str priority: int status: str = "planned" notes: str = "" @dataclass(frozen=True) class ModifierSpec: name: str family: str priority: int status: str = "planned" notes: str = "" @dataclass(frozen=True) class RunSpec: task: str view: str compute: str modifier: str = "none" default_args: dict[str, object] = field(default_factory=dict) command_builder: Callable[[dict[str, object]], list[str]] | None = None def by_name(items): return {item.name: item for item in items}