Feature Validation Helper
GitHub Link to Code.
Feature validation helper for parameter and state validation.
This module provides utilities for validating feature-related parameters and states in the FeatureManager, separating validation logic from core business logic.
- class mdxplain.feature.helper.feature_validation_helper.FeatureValidationHelper
Helper class for feature parameter and state validation.
Provides static methods for validating various types of parameters used in feature management, including threshold parameters, feature existence checks, and dependency validation.
- static validate_threshold_parameters(threshold_min: int | float | None, threshold_max: int | float | None, metric: str) None
Validate threshold parameters for data reduction.
Parameters
- threshold_minfloat or None
Minimum threshold value to validate
- threshold_maxfloat or None
Maximum threshold value to validate
- metricstr
Metric name for context in error messages
Returns
- None
Validates parameters or raises ValueError
Raises
- ValueError
If threshold parameters are invalid (wrong type or invalid range)
Examples
>>> FeatureValidationHelper.validate_threshold_parameters(0.1, 0.9, "cv") >>> # No error - valid parameters
>>> FeatureValidationHelper.validate_threshold_parameters(0.9, 0.1, "cv") ValueError: Invalid threshold range...
- static validate_feature_exists(pipeline_data: PipelineData, feature_key: str) bool
Check if feature exists and has computed data.
Parameters
- pipeline_dataPipelineData
Pipeline data object to check
- feature_keystr
Feature key to validate
Returns
- bool
True if feature exists and has data, False otherwise
Examples
>>> exists = FeatureValidationHelper.validate_feature_exists( ... pipeline_data, "distances" ... )
- static validate_dependencies(pipeline_data: PipelineData, feature_type: FeatureTypeBase, feature_key: str, traj_indices: List[int]) None
Validate that all feature dependencies are available.
Parameters
- pipeline_dataPipelineData
Pipeline data object to check
- feature_typeFeatureTypeBase
Feature type object to check dependencies for
- feature_keystr
Feature key for error messages
Returns
- None
Validates dependencies or raises ValueError
Raises
- ValueError
If required dependency is missing
Examples
>>> FeatureValidationHelper.validate_dependencies( ... pipeline_data, contacts_feature, "contacts" ... )
- static validate_computation_requirements(pipeline_data: PipelineData, feature_type: FeatureTypeBase) None
Validate that all requirements for feature computation are met.
Parameters
- pipeline_dataPipelineData
Pipeline data object to validate
- feature_typeFeatureTypeBase
Feature type object to validate
Returns
- None
Validates requirements or raises ValueError
Raises
- ValueError
If trajectory labels are not set or trajectories are not loaded
Examples
>>> FeatureValidationHelper.validate_computation_requirements( ... pipeline_data, distances_feature ... )
- static validate_reduction_state(pipeline_data: PipelineData, feature_key: str, traj_indices: List[int]) None
Validate that feature is ready for reduction for specified trajectories.
Parameters
- pipeline_dataPipelineData
Pipeline data object to validate
- feature_keystr
Feature key to validate
- traj_indicesList[int]
List of trajectory indices to validate
Returns
- None
Validates state or raises ValueError
Raises
- ValueError
If feature has no data or reduction already performed for specified trajectories
Examples
>>> FeatureValidationHelper.validate_reduction_state( ... pipeline_data, "distances", [0, 1, 2] ... )