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

1"""Output configuration models for pipeline results. 

2 

3Defines output settings for features, metrics, and domain-gap computations 

4including destination paths and column filtering. 

5""" 

6 

7from typing import Any 

8 

9from pydantic import BaseModel, ConfigDict, Field 

10 

11 

12class ParquetOutputConfig(BaseModel): 

13 """Configuration for the Parquet output writer. 

14 

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 """ 

21 

22 model_config = ConfigDict(extra="forbid") 

23 

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 ) 

31 

32 

33class FeaturesOutputsConfig(BaseModel): 

34 """Output configuration for computed features.""" 

35 

36 model_config = ConfigDict(extra="forbid") 

37 

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 ) 

47 

48 

49class MetricsOutputsConfig(BaseModel): 

50 """Output configuration for computed metrics.""" 

51 

52 model_config = ConfigDict(extra="forbid") 

53 

54 path: str = Field(description="Destination path for metrics output.") 

55 

56 

57class GapOutputsConfig(BaseModel): 

58 """Output configuration for domain-gap results.""" 

59 

60 model_config = ConfigDict(extra="forbid") 

61 

62 path: str = Field(description="Destination path for domain-gap output.") 

63 pairwise: bool = Field(default=True, description="Include pairwise (delta) results.")