dqm_ml_core.models
Data model definitions for DQM-ML configuration and output schemas.
This module re-exports all public model classes for processor configurations, column mappings, dataloader settings, compute/storage/error handling, interface definitions, and output specifications.
ProcessorConfig = Annotated[ImageFeaturesProcessorConfig | FeaturesEmbeddingsProcessorConfig | CompletenessProcessorConfig | RepresentativenessProcessorConfig | DiversityProcessorConfig | DomainGapProcessorConfig, Field(discriminator='type')]
module-attribute
__all__ = ['ColumnRename', 'ColumnsConfig', 'CompletenessProcessorConfig', 'ComputeConfig', 'DataLoaderConfig', 'DataLoadersConfig', 'DiversityProcessorConfig', 'DomainGapProcessorConfig', 'ErrorsConfig', 'FeaturesEmbeddingsProcessorConfig', 'FeaturesInterfaceConfig', 'FeaturesOutputsConfig', 'FilterConfig', 'GapInterfaceConfig', 'GapOutputsConfig', 'HistogramConfig', 'ImageErrorsConfig', 'ImageFeaturesProcessorConfig', 'JobConfig', 'MetricsInterfaceConfig', 'MetricsOutputsConfig', 'ProcessorConfig', 'RepresentativenessProcessorConfig', 'RetryConfig', 'SamplePathConfig', 'SplitConfig', 'StorageConfig', 'TabularErrorsConfig', 'TransformConfig', 'TransformType']
module-attribute
ColumnRename
Bases: BaseModel
Mapping from an original column name to a new name.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/columns.py
from_: str = Field(alias='from', description='Original column name.')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
to: str = Field(description='New column name.')
class-attribute
instance-attribute
ColumnsConfig
Bases: BaseModel
Column selection, exclusion, renaming, and prefix/suffix operations.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/columns.py
exclude: list[str] | None = Field(default=None, description='Columns to exclude (fnmatch patterns supported).')
class-attribute
instance-attribute
input: list[str] = Field(default=[], description='Columns to read (fnmatch patterns supported). [] reads all.')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
prefix: str = Field(default='', description='Prefix prepended to each column name.')
class-attribute
instance-attribute
rename: list[ColumnRename] | None = None
class-attribute
instance-attribute
suffix: str = Field(default='', description='Suffix appended to each column name.')
class-attribute
instance-attribute
CompletenessProcessorConfig
Bases: _ProcessorBase
Configuration for completeness metric computation.
Computes per-column and overall completeness (non-null) metrics.
Attributes:
| Name | Type | Description |
|---|---|---|
type |
Literal['completeness']
|
Processor type discriminator ("completeness"). |
include_per_column |
bool
|
Include per-column completeness scores in output. |
include_overall |
bool
|
Include overall completeness score in output. |
include_metadata |
bool
|
Include metadata (total rows, null counts) in output. |
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/processors.py
include_metadata: bool = Field(default=False, description='Include metadata in output.')
class-attribute
instance-attribute
include_overall: bool = Field(default=True, description='Include overall completeness score.')
class-attribute
instance-attribute
include_per_column: bool = Field(default=True, description='Include per-column completeness scores.')
class-attribute
instance-attribute
type: Literal['completeness'] = 'completeness'
class-attribute
instance-attribute
ComputeConfig
Bases: BaseModel
Global compute / runtime settings.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/global_.py
device: Literal['auto', 'cpu', 'cuda'] = Field(default='auto', description="Compute device: 'auto' picks cuda if available.")
class-attribute
instance-attribute
log_level: Literal['debug', 'info', 'warning', 'error'] = Field(default='warning', description='Logging verbosity.')
class-attribute
instance-attribute
max_memory: str | None = Field(default=None, description="Maximum memory per worker (e.g. '4Gi').")
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
progress_bar: bool = Field(default=True, description='Show tqdm progress bars.')
class-attribute
instance-attribute
seed: int = Field(default=42, description='Random seed for reproducibility.')
class-attribute
instance-attribute
threads: int = Field(default=4, gt=0, description='Number of worker threads.')
class-attribute
instance-attribute
DataLoaderConfig
Bases: BaseModel
Configuration for a single dataloader (Parquet or CSV).
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/dataloaders.py
batch_size: int = Field(default=10000, description='Number of rows per batch.')
class-attribute
instance-attribute
filters: list[FilterConfig] | None = None
class-attribute
instance-attribute
id_column: str | None = Field(default=None, description='Column used as row identifier.')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
name: str = Field(description='Unique name for this dataloader.')
class-attribute
instance-attribute
path: str = Field(description='Glob pattern or path to data files.')
class-attribute
instance-attribute
sample_path: list[SamplePathConfig] | None = None
class-attribute
instance-attribute
split: SplitConfig | None = None
class-attribute
instance-attribute
storage: StorageConfig | None = None
class-attribute
instance-attribute
transform: list[TransformConfig] | None = None
class-attribute
instance-attribute
type: Literal['parquet', 'csv'] = Field(description='Data file format.')
class-attribute
instance-attribute
DataLoadersConfig
Bases: BaseModel
Collection of dataloaders for a job.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/dataloaders.py
loaders: list[DataLoaderConfig] = Field(description='List of dataloader configurations.')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
storage: StorageConfig | None = Field(default=None, description='Default storage config inherited by all loaders.')
class-attribute
instance-attribute
DiversityProcessorConfig
Bases: _ProcessorBase
Configuration for diversity metric computation.
Computes diversity metrics: Simpson, Gini, Shannon entropy, and richness.
Attributes:
| Name | Type | Description |
|---|---|---|
type |
Literal['diversity']
|
Processor type discriminator ("diversity"). |
metrics |
list[str]
|
List of diversity metrics to compute. |
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/processors.py
metrics: list[str] = Field(default=['simpson', 'gini', 'shannon', 'richness'], description='List of diversity metrics to compute.')
class-attribute
instance-attribute
type: Literal['diversity'] = 'diversity'
class-attribute
instance-attribute
DomainGapProcessorConfig
Bases: _ProcessorBase
Configuration for domain-gap (distribution shift) measurement.
Measures distribution shift between datasets using a configured distance metric.
Attributes:
| Name | Type | Description |
|---|---|---|
type |
Literal['domain_gap']
|
Processor type discriminator ("domain_gap"). |
columns |
ColumnsConfig
|
Column input configuration (required). |
distance |
DistanceConfig
|
Distance metric configuration. |
summary |
SummaryConfig | None
|
Embedding summary configuration. |
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/processors.py
columns: ColumnsConfig = Field(description='Column input configuration (required).')
class-attribute
instance-attribute
distance: DistanceConfig = Field(description='Distance metric configuration.')
class-attribute
instance-attribute
summary: SummaryConfig | None = None
class-attribute
instance-attribute
type: Literal['domain_gap'] = 'domain_gap'
class-attribute
instance-attribute
ErrorsConfig
Bases: BaseModel
Aggregate error-handling configuration.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/global_.py
default: Literal['silent_fail', 'fail_fast'] = Field(default='silent_fail', description='Default error action when no specific policy is set.')
class-attribute
instance-attribute
images: ImageErrorsConfig | None = None
class-attribute
instance-attribute
max_failure_rate: float = Field(default=0.05, ge=0, le=1, description='Maximum tolerated failure rate before the job aborts (from 0.0 to 1.0).')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
tabular: TabularErrorsConfig | None = None
class-attribute
instance-attribute
FeaturesEmbeddingsProcessorConfig
Bases: _ProcessorBase
Configuration for neural-network embedding feature extraction.
Extracts deep learning embeddings from images using a configured model.
Attributes:
| Name | Type | Description |
|---|---|---|
type |
Literal['features_embeddings']
|
Processor type discriminator ("features_embeddings"). |
model |
ModelConfig
|
Neural network model configuration. |
infer |
InferConfig
|
Inference pre-processing settings. |
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/processors.py
infer: InferConfig = Field(default_factory=InferConfig)
class-attribute
instance-attribute
model: ModelConfig = Field(default_factory=ModelConfig)
class-attribute
instance-attribute
type: Literal['features_embeddings'] = 'features_embeddings'
class-attribute
instance-attribute
FeaturesInterfaceConfig
Bases: _InterfaceBase
Feature-extraction pipeline configuration.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/interfaces.py
outputs: FeaturesOutputsConfig | None = None
class-attribute
instance-attribute
processors: list[ProcessorConfig] = Field(default=[], description='Ordered list of feature processors.')
class-attribute
instance-attribute
FeaturesOutputsConfig
Bases: BaseModel
Output configuration for computed features.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/outputs.py
exclude: list[str] | None = Field(default=None, description='Feature columns to exclude (fnmatch patterns supported).')
class-attribute
instance-attribute
include: list[str] | None = Field(default=None, description='Feature columns to include (fnmatch patterns supported).')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
path: str = Field(description='Destination path for feature output.')
class-attribute
instance-attribute
FilterConfig
Bases: BaseModel
Row-level filter applied during data loading.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/dataloaders.py
column: str = Field(description='Column name to filter on.')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
values: list[bool] | list[str] | list[int] | list[float] = Field(description='Value(s) to keep. Rows where column matches are included.')
class-attribute
instance-attribute
GapInterfaceConfig
Bases: _InterfaceBase
Domain-gap computation pipeline configuration.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/interfaces.py
outputs: GapOutputsConfig | None = None
class-attribute
instance-attribute
processors: list[ProcessorConfig] = Field(default=[], description='Ordered list of domain-gap processors.')
class-attribute
instance-attribute
GapOutputsConfig
Bases: BaseModel
Output configuration for domain-gap results.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/outputs.py
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
pairwise: bool = Field(default=True, description='Include pairwise (delta) results.')
class-attribute
instance-attribute
path: str = Field(description='Destination path for domain-gap output.')
class-attribute
instance-attribute
HistogramConfig
Bases: BaseModel
Histogram parameters for feature extraction.
Attributes:
| Name | Type | Description |
|---|---|---|
bins |
int
|
Number of histogram bins (must be positive). |
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/processors.py
bins: int = Field(default=256, gt=0, description='Number of histogram bins.')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
ImageErrorsConfig
Bases: BaseModel
Error-handling policy for image-processing failures.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/global_.py
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
on_decode_failure: Literal['silent_fail', 'fail_fast'] = Field(default='silent_fail', description='Action when an image cannot be decoded.')
class-attribute
instance-attribute
on_transform_error: Literal['silent_fail', 'fail_fast'] = Field(default='silent_fail', description='Action when an image transform fails.')
class-attribute
instance-attribute
on_unsupported_format: Literal['silent_fail', 'fail_fast'] = Field(default='fail_fast', description='Action on unsupported image format.')
class-attribute
instance-attribute
ImageFeaturesProcessorConfig
Bases: _ProcessorBase
Configuration for low-level image feature extraction.
Extracts luminosity, contrast, blur, and entropy features from images.
Attributes:
| Name | Type | Description |
|---|---|---|
type |
Literal['image_features']
|
Processor type discriminator ("image_features"). |
features |
list[str]
|
List of image features to compute. |
batch_size |
int
|
Batch size for image processing. |
grayscale |
bool
|
Whether to convert images to grayscale. |
normalize |
bool
|
Whether to normalize pixel values to [0, 1]. |
laplacian_kernel |
str
|
Laplacian kernel size for blur detection ("3x3" or "5x5"). |
clip_percentiles |
tuple[int, int] | None
|
Percentile clipping for extreme pixel values, e.g. (1, 99). |
histogram |
HistogramConfig | None
|
Histogram configuration for feature computation. |
luminosity_weights |
str | tuple[float, float, float] | None
|
Luminosity weights for grayscale conversion. Standard name ('bt601', 'bt709', 'bt2020') or [R, G, B] list/tuple. Defaults to BT.709 when None. |
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/processors.py
batch_size: int = Field(default=64, gt=0, description='Batch size for image processing.')
class-attribute
instance-attribute
clip_percentiles: tuple[int, int] | None = Field(default=None, description='Percentile clipping for extreme pixel values, e.g. (1, 99).')
class-attribute
instance-attribute
features: list[str] = Field(default=['luminosity', 'contrast', 'blur', 'entropy'], description='List of image features to compute.')
class-attribute
instance-attribute
grayscale: bool = Field(default=True, description='Convert images to grayscale.')
class-attribute
instance-attribute
histogram: HistogramConfig | None = None
class-attribute
instance-attribute
laplacian_kernel: str = Field(default='3x3', description='Laplacian kernel size for blur detection.')
class-attribute
instance-attribute
luminosity_weights: str | tuple[float, float, float] | None = Field(default=None, description="Luminosity weights for grayscale conversion. Standard name ('bt601', 'bt709', 'bt2020') or [R, G, B] list. Defaults to BT.709 when None.")
class-attribute
instance-attribute
normalize: bool = Field(default=True, description='Normalise pixel values to [0, 1].')
class-attribute
instance-attribute
type: Literal['image_features'] = 'image_features'
class-attribute
instance-attribute
JobConfig
Bases: BaseModel
Root configuration for a dqm-ml job. Each field maps to a pipeline stage.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/config.py
compute: ComputeConfig | None = None
class-attribute
instance-attribute
dataloaders: DataLoadersConfig
instance-attribute
errors: ErrorsConfig | None = None
class-attribute
instance-attribute
features: FeaturesInterfaceConfig | None = None
class-attribute
instance-attribute
gap: GapInterfaceConfig | None = None
class-attribute
instance-attribute
metrics: MetricsInterfaceConfig | None = None
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
storage: StorageConfig | None = None
class-attribute
instance-attribute
MetricsInterfaceConfig
Bases: _InterfaceBase
Metric-computation pipeline configuration.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/interfaces.py
outputs: MetricsOutputsConfig | None = None
class-attribute
instance-attribute
processors: list[ProcessorConfig] = Field(default=[], description='Ordered list of metric processors.')
class-attribute
instance-attribute
MetricsOutputsConfig
Bases: BaseModel
Output configuration for computed metrics.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/outputs.py
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
path: str = Field(description='Destination path for metrics output.')
class-attribute
instance-attribute
RepresentativenessProcessorConfig
Bases: _ProcessorBase
Configuration for representativeness evaluation against a reference distribution.
Evaluates how well a dataset represents a target distribution using multiple statistical metrics.
Attributes:
| Name | Type | Description |
|---|---|---|
type |
Literal['representativeness']
|
Processor type discriminator ("representativeness"). |
metrics |
list[str]
|
List of representativeness metrics to compute. |
alpha |
float
|
Significance level for statistical tests. |
epsilon |
float
|
Small constant to avoid division by zero. |
distribution |
Literal['normal', 'uniform']
|
Expected reference distribution ("normal" or "uniform"). |
interpretation |
InterpretationConfig | None
|
Human-readable labels for results. |
histogram |
HistogramsConfig | None
|
Histogram configuration for evaluation. |
shannon |
ShannonConfig | None
|
Shannon entropy threshold configuration. |
grte |
GrteConfig | None
|
GRTE configuration. |
ks |
KsConfig | None
|
Kolmogorov-Smirnov test configuration. |
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/processors.py
alpha: float = Field(default=0.05, description='Significance level for statistical tests.')
class-attribute
instance-attribute
distribution: Literal['normal', 'uniform'] = Field(default='normal', description='Expected reference distribution.')
class-attribute
instance-attribute
distribution_params: list[ColumnDistributionParams] | None = Field(default=None, description="Per-column explicit distribution parameters for 'user_provided' strategy. Example: [{'column': 'col1', 'mean': 0.0, 'std': 1.0}]")
class-attribute
instance-attribute
epsilon: float = Field(default=1e-09, gt=0, description='Small constant to avoid division by zero.')
class-attribute
instance-attribute
expected_counts_method: Literal['cdf', 'monte_carlo'] = Field(default='cdf', description="Method for computing expected bin counts. 'cdf' — exact expected counts via CDF (deterministic). 'monte_carlo' — Monte Carlo sampling via RNG (stochastic).")
class-attribute
instance-attribute
grte: GrteConfig | None = None
class-attribute
instance-attribute
histogram: HistogramsConfig | None = None
class-attribute
instance-attribute
interpretation: InterpretationConfig | None = None
class-attribute
instance-attribute
ks: KsConfig | None = None
class-attribute
instance-attribute
mean_std_estimation: Literal['from_first_batch', 'per_batch', 'from_all_data', 'user_provided'] = Field(default='from_first_batch', description="How distribution parameters (mean/std for normal, min/max for uniform) are estimated. 'from_first_batch' — estimate from the first batch and reuse (consistent with bin edges). 'per_batch' — re-estimate on each batch (use with high-variance data, risks insufficient_bins). 'user_provided' — use explicit parameters from distribution_params. 'from_all_data' — estimate from full dataset (not yet implemented).")
class-attribute
instance-attribute
metrics: list[str] = Field(default=['chi-square', 'grte', 'kolmogorov-smirnov', 'shannon-entropy'], description='List of representativeness metrics to compute.')
class-attribute
instance-attribute
shannon: ShannonConfig | None = None
class-attribute
instance-attribute
type: Literal['representativeness'] = 'representativeness'
class-attribute
instance-attribute
RetryConfig
Bases: BaseModel
Retry policy for storage operations.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/global_.py
max_attempts: int = Field(default=3, gt=0, description='Maximum number of retry attempts.')
class-attribute
instance-attribute
mode: Literal['default', 'standard'] = Field(default='standard', description="Retry mode: 'default' uses exponential backoff, 'standard' uses fixed intervals.")
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
SamplePathConfig
Bases: BaseModel
Per-column path prefix configuration.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/dataloaders.py
column: str = Field(description='Column name containing relative file paths.')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
prefix: str | None = Field(default=None, description='Base directory for resolving relative paths.')
class-attribute
instance-attribute
SplitConfig
Bases: BaseModel
How to split data into named groups (e.g. train / test).
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/dataloaders.py
by: str = Field(description='Column used to determine the split group.')
class-attribute
instance-attribute
exclude: list[str] | None = Field(default=None, description='Split-group values to exclude (fnmatch patterns supported).')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
values: list[str] | None = Field(default=None, description='Explicit list of split-group values to materialise. Auto-discovered if None.')
class-attribute
instance-attribute
StorageConfig
Bases: BaseModel
Remote or local storage configuration.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/global_.py
access_key: str | None = Field(default=None, description='AWS access key ID.')
class-attribute
instance-attribute
anonymous: bool = Field(default=False, description='Use anonymous (unsigned) requests.')
class-attribute
instance-attribute
bucket: str | None = Field(default=None, description="S3 bucket name (required when type='s3').")
class-attribute
instance-attribute
checksum_validation: Literal['when_required', 'always', 'never'] = Field(default='when_required', description='Controls S3 checksum validation behaviour.')
class-attribute
instance-attribute
connect_timeout: float | None = Field(default=None, description='Connection timeout in seconds.')
class-attribute
instance-attribute
endpoint: str | None = Field(default=None, description='Custom S3 endpoint URL.')
class-attribute
instance-attribute
external_id: str | None = Field(default=None, description='External ID for role assumption.')
class-attribute
instance-attribute
load_frequency: int = Field(default=900, gt=0, description='Frequency (seconds) to refresh credentials / role.')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
proxy_options: dict[str, Any] | str | None = Field(default=None, description='Proxy configuration as a dict or URL string.')
class-attribute
instance-attribute
region: str | None = Field(default=None, description="AWS region (e.g. 'us-east-1').")
class-attribute
instance-attribute
request_timeout: float | None = Field(default=None, description='Request timeout in seconds.')
class-attribute
instance-attribute
retry: RetryConfig | None = None
class-attribute
instance-attribute
role_arn: str | None = Field(default=None, description='ARN of IAM role to assume.')
class-attribute
instance-attribute
scheme: str | None = Field(default=None, description="URI scheme (e.g. 'https').")
class-attribute
instance-attribute
secret_key: str | None = Field(default=None, description='AWS secret access key.')
class-attribute
instance-attribute
session_name: str | None = Field(default=None, description='Name for the assumed role session.')
class-attribute
instance-attribute
session_token: str | None = Field(default=None, description='AWS session token.')
class-attribute
instance-attribute
tls_ca_file_path: str | None = Field(default=None, description='Path to a custom TLS CA bundle.')
class-attribute
instance-attribute
type: Literal['s3', 'local'] = Field(description='Storage backend type.')
class-attribute
instance-attribute
TabularErrorsConfig
Bases: BaseModel
Error-handling policy for tabular-data failures.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/global_.py
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
on_file_not_found: Literal['silent_fail', 'fail_fast'] = Field(default='fail_fast', description='Action when a data file is not found.')
class-attribute
instance-attribute
on_missing_column: Literal['silent_fail', 'fail_fast'] = Field(default='fail_fast', description='Action when a required column is missing.')
class-attribute
instance-attribute
TransformConfig
Bases: BaseModel
Column type-casting transformation.
Source code in packages/dqm-ml-core/src/dqm_ml_core/models/dataloaders.py
column: str = Field(description='Column name to transform.')
class-attribute
instance-attribute
in_place: bool = Field(default=False, description='Overwrite the original column in place.')
class-attribute
instance-attribute
model_config = ConfigDict(extra='forbid')
class-attribute
instance-attribute
to_type: TransformType = Field(description='Target data type.')
class-attribute
instance-attribute
TransformType
Bases: str, Enum
Target data type for column transformations.