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: BaseModel

Aggregated results from all validation checks.

property all_passed: bool

Return True if 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: BaseModel

Result 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.