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
« prev ^ index » next coverage.py v7.14.1, created at 2026-07-21 08:27 +0000
1"""Column selection and transformation models.
3Provides models for column renaming, input selection, exclusion patterns,
4and prefix/suffix modifiers used across processor configurations.
5"""
7from pydantic import BaseModel, ConfigDict, Field
10class ColumnRename(BaseModel):
11 """Mapping from an original column name to a new name."""
13 model_config = ConfigDict(extra="forbid")
15 from_: str = Field(alias="from", description="Original column name.")
16 to: str = Field(description="New column name.")
19class ColumnsConfig(BaseModel):
20 """Column selection, exclusion, renaming, and prefix/suffix operations."""
22 model_config = ConfigDict(extra="forbid")
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.")