Adds scoped mypy disable-error-code headers to all 15 agent-created service files covering the ORM Column[T] + raw-SQL result type issues. Updates mypy.ini to flip 14 personally-refactored route files to strict; defers 4 agent-refactored routes (dsr, vendor, notfallplan, isms) until return type annotations are added. mypy compliance/ -> Success: no issues found in 162 source files 173/173 pytest pass Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
109 lines
3.9 KiB
INI
109 lines
3.9 KiB
INI
[mypy]
|
|
python_version = 3.12
|
|
strict = True
|
|
implicit_reexport = True
|
|
ignore_missing_imports = True
|
|
warn_unused_configs = True
|
|
exclude = (?x)(
|
|
^compliance/tests/
|
|
| ^compliance/data/
|
|
| ^compliance/scripts/
|
|
)
|
|
|
|
# Tests are not type-checked (legacy; will be tightened when TestClient-based
|
|
# integration tests land in Phase 1 Step 4 follow-up).
|
|
[mypy-compliance.tests.*]
|
|
ignore_errors = True
|
|
|
|
# ----------------------------------------------------------------------
|
|
# Phase 1 refactor policy:
|
|
# - compliance.domain / compliance.schemas : fully strict
|
|
# - compliance.api._http_errors : fully strict
|
|
# - compliance.services.<new_clean_arch_service> : strict (list explicitly)
|
|
# - compliance.repositories.* : strict with ORM arg-type
|
|
# ignore (see per-file)
|
|
# - compliance.db.* : loose (ORM models)
|
|
# - compliance.services.<legacy utility modules> : loose (pre-refactor)
|
|
# - compliance.api.<route files> : loose until Step 4
|
|
# ----------------------------------------------------------------------
|
|
|
|
# Legacy utility services that predate the Phase 1 refactor. Not touched
|
|
# by the clean-arch extraction. Left loose until their own refactor pass.
|
|
[mypy-compliance.services.ai_compliance_assistant]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.audit_pdf_generator]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.auto_risk_updater]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.control_generator]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.export_generator]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.llm_provider]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.pdf_extractor]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.regulation_scraper]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.report_generator]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.seeder]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.similarity_detector]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.license_gate]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.anchor_finder]
|
|
ignore_errors = True
|
|
[mypy-compliance.services.rag_client]
|
|
ignore_errors = True
|
|
|
|
# SQLAlchemy ORM layer: models use Column() rather than Mapped[T], so
|
|
# static analysis sees descriptors as Column[T] while runtime returns T.
|
|
# Loose for the whole db package until a future Mapped[T] migration.
|
|
[mypy-compliance.db.*]
|
|
ignore_errors = True
|
|
|
|
# Route files (Phase 1 Step 4 in progress): only the refactored ones are
|
|
# checked strictly via explicit extension of the strict scope in CI.
|
|
# Until each file is refactored, it stays loose.
|
|
[mypy-compliance.api.*]
|
|
ignore_errors = True
|
|
|
|
# Refactored route modules under Step 4 — override the blanket rule above.
|
|
[mypy-compliance.api.audit_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.banner_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.tom_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.company_profile_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.vvt_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.canonical_control_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.source_policy_router]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.screening_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.evidence_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.email_template_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.incident_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.legal_document_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.dsfa_routes]
|
|
ignore_errors = False
|
|
[mypy-compliance.api.routes]
|
|
ignore_errors = False
|
|
# Agent-refactored routes — flip to strict after adding return type annotations:
|
|
# [mypy-compliance.api.dsr_routes]
|
|
# [mypy-compliance.api.vendor_compliance_routes]
|
|
# [mypy-compliance.api.notfallplan_routes]
|
|
# [mypy-compliance.api.isms_routes]
|
|
[mypy-compliance.api._http_errors]
|
|
ignore_errors = False
|