Phase 1 Step 5 of PHASE1_RUNBOOK.md.
compliance/db/repository.py (1547 LOC) decomposed into seven sibling
per-aggregate repository modules:
regulation_repository.py (268) — Regulation + Requirement
control_repository.py (291) — Control + ControlMapping
evidence_repository.py (143)
risk_repository.py (148)
audit_export_repository.py (110)
service_module_repository.py (247)
audit_session_repository.py (478) — AuditSession + AuditSignOff
compliance/db/isms_repository.py (838 LOC) decomposed into two
sub-aggregate modules mirroring the models split:
isms_governance_repository.py (354) — Scope, Policy, Objective, SoA
isms_audit_repository.py (499) — Finding, CAPA, Review, Internal Audit,
Trail, Readiness
Both original files become thin re-export shims (37 and 25 LOC
respectively) so every existing import continues to work unchanged.
New code SHOULD import from the aggregate module directly.
All new sibling files under the 500-line hard cap; largest is
isms_audit_repository.py at 499 (on the edge; when Phase 1 Step 4
router->service extraction lands, the audit_session repo may split
further if growth exceeds 500).
Verified:
- 173/173 pytest compliance/tests/ tests/contracts/ pass
- OpenAPI 360 paths / 484 operations unchanged
- All repo files under 500 LOC
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
38 lines
1.7 KiB
Python
38 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,
|
|
)
|