Spaces:
Running
Running
| from __future__ import annotations | |
| from dataclasses import dataclass | |
| from typing import Any | |
| from data_studio.sampling import SamplingManifestV1, reproducible_random_sample | |
| class AuditPolicy: | |
| policy_id: str | |
| random_sample_size: int | |
| maximum_random_failures: int | |
| risk_sample_size: int | |
| maximum_critical_failures: int = 0 | |
| AUDIT_POLICY_100K_DRAFT = AuditPolicy( | |
| policy_id="bulk-100k-draft-v1", | |
| random_sample_size=700, | |
| maximum_random_failures=14, | |
| risk_sample_size=300, | |
| ) | |
| def build_audit_samples( | |
| population_ids: list[str], | |
| risk_ids: list[str], | |
| policy: AuditPolicy, | |
| seed: str, | |
| ) -> tuple[SamplingManifestV1, SamplingManifestV1]: | |
| random_manifest = reproducible_random_sample(population_ids, policy.random_sample_size, f"{seed}:random") | |
| risk_population = sorted(set(risk_ids).difference(random_manifest.selected_record_ids)) | |
| risk_manifest = reproducible_random_sample(risk_population, policy.risk_sample_size, f"{seed}:risk") | |
| return random_manifest, risk_manifest | |
| def audit_promotion_result( | |
| policy: AuditPolicy, | |
| random_result: dict[str, Any], | |
| risk_result: dict[str, Any], | |
| ) -> dict[str, Any]: | |
| random_failures = sum( | |
| int(random_result.get(key, 0)) | |
| for key in ("minor_failure_count", "major_failure_count", "critical_failure_count") | |
| ) | |
| critical = int(random_result.get("critical_failure_count", 0)) + int( | |
| risk_result.get("critical_failure_count", 0) | |
| ) | |
| systematic_risk_failure = bool(risk_result.get("systematic_failure", False)) | |
| passed = ( | |
| random_failures <= policy.maximum_random_failures | |
| and critical <= policy.maximum_critical_failures | |
| and not systematic_risk_failure | |
| ) | |
| return { | |
| "policy_id": policy.policy_id, | |
| "passed": passed, | |
| "random_failures": random_failures, | |
| "critical_failures": critical, | |
| "systematic_risk_failure": systematic_risk_failure, | |
| } | |