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-03-26 07:07 +0000

1# /////////////////////////////////////////////////////////////// 

2# SERVICES.BOOTSTRAP.CONTRACTS.STEPS - Initialization step contracts 

3# Project: ezqt_app 

4# /////////////////////////////////////////////////////////////// 

5 

6"""Contracts describing initialization sequence steps.""" 

7 

8from __future__ import annotations 

9 

10# /////////////////////////////////////////////////////////////// 

11# IMPORTS 

12# /////////////////////////////////////////////////////////////// 

13from collections.abc import Callable 

14from dataclasses import dataclass 

15from enum import Enum 

16 

17 

18# /////////////////////////////////////////////////////////////// 

19# TYPES 

20# /////////////////////////////////////////////////////////////// 

21class StepStatus(Enum): 

22 """Execution status of a single initialization step.""" 

23 

24 PENDING = "pending" 

25 RUNNING = "running" 

26 SUCCESS = "success" 

27 FAILED = "failed" 

28 SKIPPED = "skipped" 

29 

30 

31@dataclass(slots=True) 

32class InitStep: 

33 """Descriptor for a single initialization step.""" 

34 

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