fairmd.lipids.schema_validation.validate_yaml module

Tools for validating YAML files against predefined JSON Schemas.

This module can be run either as a module or as a script.

Module usage:

python -m fairmd.lipids.schema_validation.validate_yaml --schema readme README.yaml

Script usage:

# Validate a README.yaml file
python validate_yaml.py --schema readme README.yaml
python validate_yaml.py --schema info info.yml
# Multiple files can be validated at once
python validate_yaml.py README.yaml other/README.yaml
fairmd.lipids.schema_validation.validate_yaml.validate_info_dict(instance: dict, schema_path: str = '/home/runner/work/FAIRMD_lipids/FAIRMD_lipids/.tox/docs/lib/python3.13/site-packages/fairmd/lipids/schema_validation/schema/info_yml_schema.json')[source]

Validate an info dict against a schema dict. Returns a list of jsonschema.ValidationError objects which is empty with valid.

fairmd.lipids.schema_validation.validate_yaml.validate_info_file(info_file_path: str, schema_path: str = '/home/runner/work/FAIRMD_lipids/FAIRMD_lipids/.tox/docs/lib/python3.13/site-packages/fairmd/lipids/schema_validation/schema/info_yml_schema.json')[source]

Validate an info file (YML/YAML) on disk against a JSON schema file. Returns a list of ValidationError objects (empty if valid).

fairmd.lipids.schema_validation.validate_yaml.validate_readme_dict(instance: dict, schema_path: str = '/home/runner/work/FAIRMD_lipids/FAIRMD_lipids/.tox/docs/lib/python3.13/site-packages/fairmd/lipids/schema_validation/schema/readme_yaml_schema.json')[source]

Validate a README.yaml dict against the README JSON schema.

Returns a list of jsonschema.ValidationError objects (empty if valid).

fairmd.lipids.schema_validation.validate_yaml.validate_readme_file(readme_file_path: str, schema_path: str = '/home/runner/work/FAIRMD_lipids/FAIRMD_lipids/.tox/docs/lib/python3.13/site-packages/fairmd/lipids/schema_validation/schema/readme_yaml_schema.json')[source]

Validate a README.yaml file on disk against the README JSON schema.

Returns a list of ValidationError objects (empty if valid).

fairmd.lipids.schema_validation.validate_yaml.run_file(path: str, schema_type: Literal['info', 'readme']) None[source]

Validate a single YAML file against the selected schema.

On success, logs “OK: <path>” and returns normally. On failure, logs detailed schema errors and raises an exception.

Raises:
  • FileNotFoundError – If the file does not exist or is not a regular file.

  • RuntimeError – If the file was successfully read but failed schema validation.

  • ValueError – If the YAML does not contain a non-empty mapping (invalid structure).

  • OSError, yaml.YAMLError, json.JSONDecodeError, SchemaError – For I/O errors, invalid YAML, invalid JSON schema, or other runtime failures.

fairmd.lipids.schema_validation.validate_yaml.main() int[source]

Command-line entry point for YAML schema validation.

Validates one or more YAML files against either the FAIRMD info.yml schema or the README.yaml schema.

Returns:

Process exit code: 0 = all files valid 1 = at least one file failed schema validation 2 = at least one file was missing or not a regular file 3 = at least one file could not be read, parsed, or validated due to YAML, JSON, or runtime errors