Coverage for packages/dqm-ml-core/src/dqm_ml_core/models/outputs.py: 100%
20 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"""Output configuration models for pipeline results.
3Defines output settings for features, metrics, and domain-gap computations
4including destination paths and column filtering.
5"""
7from typing import Any
9from pydantic import BaseModel, ConfigDict, Field
12class ParquetOutputConfig(BaseModel):
13 """Configuration for the Parquet output writer.
15 Attributes:
16 path_pattern: Output file path format string.
17 columns: Columns to include in output.
18 exclude: Columns to exclude from output.
19 storage: Optional storage configuration (bool or dict).
20 """
22 model_config = ConfigDict(extra="forbid")
24 path_pattern: str = Field(description="Output file path format string.")
25 columns: list[str] = Field(default_factory=list, description="Columns to include in output.")
26 exclude: list[str] = Field(default_factory=list, description="Columns to exclude from output.")
27 storage: bool | dict[str, Any] | None = Field(
28 default=None,
29 description="Storage configuration (bool or dict with S3 settings).",
30 )
33class FeaturesOutputsConfig(BaseModel):
34 """Output configuration for computed features."""
36 model_config = ConfigDict(extra="forbid")
38 path: str = Field(description="Destination path for feature output.")
39 include: list[str] | None = Field(
40 default=None,
41 description="Feature columns to include (fnmatch patterns supported).",
42 )
43 exclude: list[str] | None = Field(
44 default=None,
45 description="Feature columns to exclude (fnmatch patterns supported).",
46 )
49class MetricsOutputsConfig(BaseModel):
50 """Output configuration for computed metrics."""
52 model_config = ConfigDict(extra="forbid")
54 path: str = Field(description="Destination path for metrics output.")
57class GapOutputsConfig(BaseModel):
58 """Output configuration for domain-gap results."""
60 model_config = ConfigDict(extra="forbid")
62 path: str = Field(description="Destination path for domain-gap output.")
63 pairwise: bool = Field(default=True, description="Include pairwise (delta) results.")