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

12 statements  

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

1"""Column selection and transformation models. 

2 

3Provides models for column renaming, input selection, exclusion patterns, 

4and prefix/suffix modifiers used across processor configurations. 

5""" 

6 

7from pydantic import BaseModel, ConfigDict, Field 

8 

9 

10class ColumnRename(BaseModel): 

11 """Mapping from an original column name to a new name.""" 

12 

13 model_config = ConfigDict(extra="forbid") 

14 

15 from_: str = Field(alias="from", description="Original column name.") 

16 to: str = Field(description="New column name.") 

17 

18 

19class ColumnsConfig(BaseModel): 

20 """Column selection, exclusion, renaming, and prefix/suffix operations.""" 

21 

22 model_config = ConfigDict(extra="forbid") 

23 

24 input: list[str] = Field( 

25 default=[], 

26 description="Columns to read (fnmatch patterns supported). [] reads all.", 

27 ) 

28 exclude: list[str] | None = Field( 

29 default=None, 

30 description="Columns to exclude (fnmatch patterns supported).", 

31 ) 

32 rename: list[ColumnRename] | None = None 

33 prefix: str = Field(default="", description="Prefix prepended to each column name.") 

34 suffix: str = Field(default="", description="Suffix appended to each column name.")