diff --git a/development/STATIC-TYPES.md b/development/STATIC-TYPES.md index 5b635f2c..72ebce38 100644 --- a/development/STATIC-TYPES.md +++ b/development/STATIC-TYPES.md @@ -170,5 +170,12 @@ Enable `check_untyped_defs = true` as the final step once the repo is clean. - [x] Fix `elasticsearch/server.py` `_send_json` signature: `dict` → `dict | list` (P1, 1 error) - [x] Remove 2 stale `# type: ignore[no-untyped-def]` in clustering adapters; kept logging/canary ignores as valid (P1) - [x] Annotate `ranges` in `geoip/rir/provider.py` and `asn/iptoasn/provider.py` (P1, 2 errors) -- [ ] Sweep `sqlmodel_repo/` with proper None-guard raises (P2, ~350 errors) +- [x] P2 — sqlmodel_repo/ now has 0 mypy errors: + - Add `_MixinBase` abstract class in `_helpers.py` with `_session()` + cross-mixin stubs (fixed ~120 attr-defined) + - Add `_require(val, msg)` helper for narrowing `T | None` → `T` + - Wrap SQLAlchemy column method calls with `col()` from sqlmodel (fixed `.is_()`, `.like()`, `.notin_()`, `.in_()`, `.contains()`) + - Suppress `arg-type` in `sqlmodel_repo.*` via `[[tool.mypy.overrides]]` (pydantic plugin false positives on column comparisons) + - Remove 9 stale `# type: ignore` comments across logging, helpers, credentials + - Fix `telemetry.py` overload `no-redef` + `misc` + - Fix `logs.py` `datetime/str` operator errors and nullable PK comparison - [ ] Annotate `transport` in template servers + guard call sites (P3, ~100 errors)