Coverage for packages/dqm-ml-core/src/dqm_ml_core/models/interfaces.py: 100%

18 statements  

« prev     ^ index     » next       coverage.py v7.14.1, created at 2026-07-21 08:27 +0000

1"""Pipeline interface configuration models. 

2 

3Defines the three main pipeline interfaces (features, metrics, gap) each 

4composing storage, compute, error handling, outputs, and processor lists. 

5""" 

6 

7from pydantic import BaseModel, ConfigDict, Field 

8 

9from dqm_ml_core.models.global_ import ComputeConfig, ErrorsConfig, StorageConfig 

10from dqm_ml_core.models.outputs import FeaturesOutputsConfig, GapOutputsConfig, MetricsOutputsConfig 

11from dqm_ml_core.models.processors import ProcessorConfig 

12 

13 

14class _InterfaceBase(BaseModel): 

15 """Base for pipeline-interface configs (storage, compute, error overrides).""" 

16 

17 model_config = ConfigDict(extra="forbid") 

18 

19 storage: StorageConfig | None = Field( 

20 default=None, 

21 description="Storage override for this interface.", 

22 ) 

23 compute: ComputeConfig | None = Field( 

24 default=None, 

25 description="Compute override for this interface.", 

26 ) 

27 errors: ErrorsConfig | None = Field( 

28 default=None, 

29 description="Error-handling override for this interface.", 

30 ) 

31 

32 

33class FeaturesInterfaceConfig(_InterfaceBase): 

34 """Feature-extraction pipeline configuration.""" 

35 

36 outputs: FeaturesOutputsConfig | None = None 

37 processors: list[ProcessorConfig] = Field(default=[], description="Ordered list of feature processors.") 

38 

39 

40class MetricsInterfaceConfig(_InterfaceBase): 

41 """Metric-computation pipeline configuration.""" 

42 

43 outputs: MetricsOutputsConfig | None = None 

44 processors: list[ProcessorConfig] = Field(default=[], description="Ordered list of metric processors.") 

45 

46 

47class GapInterfaceConfig(_InterfaceBase): 

48 """Domain-gap computation pipeline configuration.""" 

49 

50 outputs: GapOutputsConfig | None = None 

51 processors: list[ProcessorConfig] = Field(default=[], description="Ordered list of domain-gap processors.")