Represents a single linting stage. Attributes: name: Internal name (e.g., "cpp_linting", "ruff") display_name: Human-readable name (e.g., "C++ LINTING", "RUFF") run_fn: Function to execute the stage (returns True on success) check_cache_fn: Optional function
| 6 | |
| 7 | @dataclass |
| 8 | class LintStage: |
| 9 | """ |
| 10 | Represents a single linting stage. |
| 11 | |
| 12 | Attributes: |
| 13 | name: Internal name (e.g., "cpp_linting", "ruff") |
| 14 | display_name: Human-readable name (e.g., "C++ LINTING", "RUFF") |
| 15 | run_fn: Function to execute the stage (returns True on success) |
| 16 | check_cache_fn: Optional function to check fingerprint cache |
| 17 | mark_success_fn: Optional function to mark cache success |
| 18 | dependencies: List of stage names that must complete first |
| 19 | timeout: Timeout in seconds |
| 20 | """ |
| 21 | |
| 22 | name: str |
| 23 | display_name: str |
| 24 | run_fn: Callable[[], bool] |
| 25 | check_cache_fn: Optional[Callable[[], bool]] = None |
| 26 | mark_success_fn: Optional[Callable[[], None]] = None |
| 27 | dependencies: list[str] = field(default_factory=lambda: []) |
| 28 | timeout: float = 300.0 |