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
« prev ^ index » next coverage.py v7.14.1, created at 2026-07-21 08:27 +0000
1"""Pipeline interface configuration models.
3Defines the three main pipeline interfaces (features, metrics, gap) each
4composing storage, compute, error handling, outputs, and processor lists.
5"""
7from pydantic import BaseModel, ConfigDict, Field
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
14class _InterfaceBase(BaseModel):
15 """Base for pipeline-interface configs (storage, compute, error overrides)."""
17 model_config = ConfigDict(extra="forbid")
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 )
33class FeaturesInterfaceConfig(_InterfaceBase):
34 """Feature-extraction pipeline configuration."""
36 outputs: FeaturesOutputsConfig | None = None
37 processors: list[ProcessorConfig] = Field(default=[], description="Ordered list of feature processors.")
40class MetricsInterfaceConfig(_InterfaceBase):
41 """Metric-computation pipeline configuration."""
43 outputs: MetricsOutputsConfig | None = None
44 processors: list[ProcessorConfig] = Field(default=[], description="Ordered list of metric processors.")
47class GapInterfaceConfig(_InterfaceBase):
48 """Domain-gap computation pipeline configuration."""
50 outputs: GapOutputsConfig | None = None
51 processors: list[ProcessorConfig] = Field(default=[], description="Ordered list of domain-gap processors.")