mth5.utils.mth5_validator

Validates MTH5 files for structural integrity and metadata compliance.

This module provides comprehensive validation of MTH5 files including: - File format and version checks - Group structure validation - Metadata schema validation - Summary table validation

Created on February 7, 2026

copyright:

MTH5 Development Team

license:

MIT

Examples

Validate a file programmatically:

>>> from mth5.utils.mth5_validator import MTH5Validator
>>> validator = MTH5Validator('data.mth5')
>>> results = validator.validate()
>>> print(results.is_valid)
True

Validate with detailed reporting:

>>> validator = MTH5Validator('data.mth5', verbose=True)
>>> results = validator.validate()
>>> results.print_report()

Classes

ValidationLevel

Validation severity levels.

ValidationMessage

Container for a single validation message.

ValidationResults

Container for validation results.

MTH5Validator

MTH5 file validator.

Functions

validate_mth5_file(→ ValidationResults)

Convenience function to validate an MTH5 file.

Module Contents

class mth5.utils.mth5_validator.ValidationLevel[source]

Bases: enum.Enum

Validation severity levels.

ERROR = 'ERROR'[source]
WARNING = 'WARNING'[source]
INFO = 'INFO'[source]
class mth5.utils.mth5_validator.ValidationMessage[source]

Container for a single validation message.

level: ValidationLevel[source]
category: str[source]
message: str[source]
path: str | None = None[source]
details: dict[str, Any][source]
class mth5.utils.mth5_validator.ValidationResults[source]

Container for validation results.

file_path: pathlib.Path[source]
messages: list[ValidationMessage] = [][source]
checked_items: dict[str, bool][source]
property is_valid: bool[source]

Check if file passed validation (no errors).

property error_count: int[source]

Count of error messages.

property warning_count: int[source]

Count of warning messages.

property info_count: int[source]

Count of info messages.

add_error(category: str, message: str, path: str | None = None, **details) None[source]

Add an error message.

add_warning(category: str, message: str, path: str | None = None, **details) None[source]

Add a warning message.

add_info(category: str, message: str, path: str | None = None, **details) None[source]

Add an info message.

print_report(include_info: bool = False) None[source]

Print a formatted validation report.

to_dict() dict[source]

Convert results to dictionary.

to_json(**kwargs) str[source]

Convert results to JSON string.

class mth5.utils.mth5_validator.MTH5Validator(file_path: str | pathlib.Path, verbose: bool = False, validate_metadata: bool = True, check_data: bool = False)[source]

MTH5 file validator.

Performs comprehensive validation of MTH5 files including file format, group structure, and metadata validation.

Parameters:
  • file_path (str | Path) – Path to the MTH5 file to validate.

  • verbose (bool, default False) – Enable verbose logging during validation.

  • validate_metadata (bool, default True) – Enable metadata validation using mt_metadata schemas.

  • check_data (bool, default False) – Check that channels contain data (can be slow for large files).

results[source]

Validation results after running validate().

Type:

ValidationResults

Examples

Basic validation:

>>> validator = MTH5Validator('data.mth5')
>>> results = validator.validate()
>>> if results.is_valid:
...     print("File is valid!")

Detailed validation with report:

>>> validator = MTH5Validator('data.mth5', verbose=True, check_data=True)
>>> results = validator.validate()
>>> results.print_report(include_info=True)
file_path[source]
verbose = False[source]
validate_metadata = True[source]
check_data = False[source]
results[source]
h5_file = None[source]
validate() ValidationResults[source]

Run full validation suite.

Returns:

Complete validation results with all messages.

Return type:

ValidationResults

Examples

>>> validator = MTH5Validator('data.mth5')
>>> results = validator.validate()
>>> print(f"Valid: {results.is_valid}")
mth5.utils.mth5_validator.validate_mth5_file(file_path: str | pathlib.Path, verbose: bool = False, **kwargs) ValidationResults[source]

Convenience function to validate an MTH5 file.

Parameters:
  • file_path (str | Path) – Path to MTH5 file to validate.

  • verbose (bool, default False) – Enable verbose output.

  • **kwargs – Additional arguments passed to MTH5Validator.

Returns:

Validation results.

Return type:

ValidationResults

Examples

>>> from mth5.utils.mth5_validator import validate_mth5_file
>>> results = validate_mth5_file('data.mth5')
>>> if not results.is_valid:
...     results.print_report()