nirs4all.data.schema.validation.validators module

Validators for dataset configuration.

This module provides validation logic for dataset configurations, checking for consistency, required fields, file existence, and other rules.

class nirs4all.data.schema.validation.validators.ConfigValidator(check_file_existence: bool = False, custom_validators: list[Callable] | None = None)[source]

Bases: object

Validator for dataset configurations.

Provides validation rules and methods for checking dataset configurations. Supports both legacy and new format configurations.

Example

```python validator = ConfigValidator() result = validator.validate(config_dict) if not result.is_valid:

for error in result.errors:

print(f”Error: {error}”)

```

validate(config: dict[str, Any]) → ValidationResult[source]

Validate a configuration dictionary.

Parameters:

config – Configuration dictionary to validate.

Returns:

ValidationResult with errors, warnings, and normalized config.

class nirs4all.data.schema.validation.validators.ValidationError(code: str, message: str, field: str | None = None, value: Any = None, suggestion: str | None = None)[source]

Bases: object

Represents a validation error.

Variables:
  • code (str) – Error code for programmatic handling.

  • message (str) – Human-readable error message.

  • field (str | None) – The configuration field that caused the error.

  • value (Any) – The value that caused the error.

  • suggestion (str | None) – Optional suggestion for fixing the error.

code: str
field: str | None = None
message: str
suggestion: str | None = None
value: Any = None
class nirs4all.data.schema.validation.validators.ValidationResult(is_valid: bool, errors: list[ValidationError] = <factory>, warnings: list[ValidationWarning] = <factory>, normalized_config: dict[str, ~typing.Any] | None=None)[source]

Bases: object

Result of configuration validation.

Variables:
errors: list[ValidationError]
is_valid: bool
normalized_config: dict[str, Any] | None = None
raise_if_invalid() → None[source]

Raise ValueError if configuration is invalid.

warnings: list[ValidationWarning]
class nirs4all.data.schema.validation.validators.ValidationWarning(code: str, message: str, field: str | None = None)[source]

Bases: object

Represents a validation warning (non-fatal issue).

Variables:
  • code (str) – Warning code for programmatic handling.

  • message (str) – Human-readable warning message.

  • field (str | None) – The configuration field that caused the warning.

code: str
field: str | None = None
message: str
nirs4all.data.schema.validation.validators.validate_config(config: dict[str, Any], check_file_existence: bool = False) → ValidationResult[source]

Convenience function to validate a configuration.

Parameters:
  • config – Configuration dictionary to validate.

  • check_file_existence – Whether to check if referenced files exist.

Returns:

ValidationResult with errors, warnings, and normalized config.