ncaa_eval.ingest.validation module¶
Post-sync data validation checks.
Validates data quality after sync completes — game counts, duplicates,
and team reference integrity. All checks are non-fatal: they produce
a ValidationReport with pass/fail status per check rather than
raising exceptions.
- class ncaa_eval.ingest.validation.ValidationReport(*, results: list[ValidationResult])[source]¶
Bases:
BaseModelAggregated results from all validation checks.
- property all_passed: bool¶
Return
Trueif every check passed.
- model_config = {'frozen': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- results: list[ValidationResult]¶
- class ncaa_eval.ingest.validation.ValidationResult(*, check_name: str, passed: bool, message: str, details: dict[str, Any] = {})[source]¶
Bases:
BaseModelResult of a single validation check.
- check_name: str¶
- details: dict[str, Any]¶
- message: str¶
- model_config = {'frozen': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- passed: bool¶
- ncaa_eval.ingest.validation.validate_sync(repo: Repository) ValidationReport[source]¶
Run all post-sync validation checks and return a report.
This function is non-fatal — it never raises on validation failures. Unexpected I/O errors (e.g., corrupt Parquet) may still propagate. The caller is responsible for logging results.