Files
breakpilot-compliance/backend-compliance/compliance/db/repository.py
Sharang Parnerkar 3702f70754
Some checks failed
CI / branch-name (pull_request) Successful in 3s
CI / guardrail-integrity (pull_request) Failing after 5s
CI / loc-budget (pull_request) Failing after 6s
CI / secret-scan (pull_request) Failing after 4s
CI / go-lint (pull_request) Failing after 2s
CI / python-lint (pull_request) Failing after 12s
CI / nodejs-lint (pull_request) Failing after 4s
CI / nodejs-build (pull_request) Failing after 3s
CI / dep-audit (pull_request) Failing after 10s
CI / sbom-scan (pull_request) Failing after 2s
CI / test-go (pull_request) Failing after 2s
CI / test-python-backend (pull_request) Failing after 10s
CI / test-python-document-crawler (pull_request) Failing after 9s
CI / test-python-dsms-gateway (pull_request) Failing after 10s
CI / validate-canonical-controls (pull_request) Failing after 10s
fix: strip duplicate inline class definitions from db shim files
models.py and repository.py are backwards-compat re-export shims from
Phase 1. Both files still contained the original 1466/1547 line class
definitions below the re-export block. These inline definitions shadowed
the correctly-imported sub-module versions and failed at import time
because Column, AuditResultEnum, etc. were no longer in scope.

Fix:
- models.py: remove all duplicate Base-subclass definitions (lines 209-
  1581). Retain EvidenceConfidenceEnum and EvidenceTruthStatusEnum (unique
  to this shim, not yet extracted to a sub-module) and the two models that
  have no sub-module yet: LLMGenerationAuditDB and AssertionDB. Add back
  the SQLAlchemy column-type imports those two models need.
- repository.py: remove all duplicate Repository class definitions (lines
  40-1692). All classes are now fully provided by the sub-repositories.

Result: 172 pytest tests pass, import OK.
2026-04-20 07:50:29 +02:00

39 lines
1.7 KiB
Python

"""
compliance.db.repository — backwards-compatibility re-export shim.
Phase 1 Step 5 split the monolithic 1547-line repository module into per-aggregate
sibling modules. Every repository class is re-exported here so existing imports
(``from compliance.db.repository import ControlRepository, ...``) continue to
work unchanged.
New code SHOULD import directly from the aggregate module:
from compliance.db.regulation_repository import RegulationRepository, RequirementRepository
from compliance.db.control_repository import ControlRepository, ControlMappingRepository
from compliance.db.evidence_repository import EvidenceRepository
from compliance.db.risk_repository import RiskRepository
from compliance.db.audit_export_repository import AuditExportRepository
from compliance.db.service_module_repository import ServiceModuleRepository
from compliance.db.audit_session_repository import AuditSessionRepository, AuditSignOffRepository
DO NOT add new classes to this file.
"""
from compliance.db.regulation_repository import ( # noqa: F401
RegulationRepository,
RequirementRepository,
)
from compliance.db.control_repository import ( # noqa: F401
ControlRepository,
ControlMappingRepository,
)
from compliance.db.evidence_repository import EvidenceRepository # noqa: F401
from compliance.db.risk_repository import RiskRepository # noqa: F401
from compliance.db.audit_export_repository import AuditExportRepository # noqa: F401
from compliance.db.service_module_repository import ServiceModuleRepository # noqa: F401
from compliance.db.audit_session_repository import ( # noqa: F401
AuditSessionRepository,
AuditSignOffRepository,
)