Check the four integration nodes under strict mypy
mqtt, http, influx and delay carried the prototype's annotations and were excluded wholesale. Annotating them leaves nothing to exclude: what the two untyped dependencies need is an implicit-reexport allowance for influxdb_client and the import-site ignore croniter already gets elsewhere. InfluxDbNode.inject now takes the durable flag its supertype passes, and the cron loop reads its stop event once instead of dereferencing a field that stop_cron() may have cleared. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H7LwYgJfpkbLCTeiAf8U4A
This commit is contained in:
+9
-10
@@ -46,18 +46,17 @@ build-backend = "hatchling.build"
|
||||
[tool.mypy]
|
||||
strict = true
|
||||
exclude = ["venv", ".venv", "alembic"]
|
||||
# influxdb_client's Point builder carries no annotations; calling it is not a
|
||||
# reason to stop checking the caller (app/flow/nodes/influx.py).
|
||||
untyped_calls_exclude = ["influxdb_client"]
|
||||
|
||||
# The integration nodes still carry the prototype's annotations, and croniter and
|
||||
# influxdb_client ship no stubs. Shrinking one module at a time as each integration
|
||||
# is revisited; the rest of the package, and everything around it, is checked strictly.
|
||||
# Every module is checked strictly. influxdb_client is typed but re-exports its
|
||||
# names implicitly, which strict mode refuses to follow. (croniter, the other
|
||||
# untyped dependency, is ignored at its two import sites.)
|
||||
[[tool.mypy.overrides]]
|
||||
module = [
|
||||
"app.flow.nodes.delay",
|
||||
"app.flow.nodes.http",
|
||||
"app.flow.nodes.influx",
|
||||
"app.flow.nodes.mqtt",
|
||||
]
|
||||
ignore_errors = true
|
||||
module = ["influxdb_client"]
|
||||
implicit_reexport = true
|
||||
|
||||
|
||||
[tool.ruff]
|
||||
target-version = "py310"
|
||||
|
||||
Reference in New Issue
Block a user