Coverage for src / ezqt_app / services / bootstrap / contracts / steps.py: 100.00%
19 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-06 13:12 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-06 13:12 +0000
1# ///////////////////////////////////////////////////////////////
2# SERVICES.BOOTSTRAP.CONTRACTS.STEPS - Initialization step contracts
3# Project: ezqt_app
4# ///////////////////////////////////////////////////////////////
6"""Contracts describing initialization sequence steps."""
8from __future__ import annotations
10# ///////////////////////////////////////////////////////////////
11# IMPORTS
12# ///////////////////////////////////////////////////////////////
13from collections.abc import Callable
14from dataclasses import dataclass
15from enum import Enum
18# ///////////////////////////////////////////////////////////////
19# TYPES
20# ///////////////////////////////////////////////////////////////
21class StepStatus(Enum):
22 """Execution status of a single initialization step."""
24 PENDING = "pending"
25 RUNNING = "running"
26 SUCCESS = "success"
27 FAILED = "failed"
28 SKIPPED = "skipped"
31@dataclass(slots=True)
32class InitStep:
33 """Descriptor for a single initialization step."""
35 name: str
36 description: str
37 function: Callable[[], None]
38 required: bool = True
39 status: StepStatus = StepStatus.PENDING
40 error_message: str | None = None
41 duration: float | None = None