chore(typing): move mypy to strict and ban Any inside pgqueuer - #797
Merged
Conversation
janbjorge
force-pushed
the
typing/09-strict-config
branch
2 times, most recently
from
September 6, 2026 17:48
c3a8ed8 to
dfb9978
Compare
janbjorge
force-pushed
the
typing/09-strict-config
branch
2 times, most recently
from
September 6, 2026 18:24
5ecc326 to
906e174
Compare
janbjorge
force-pushed
the
typing/09-strict-config
branch
from
September 6, 2026 18:31
906e174 to
245b87e
Compare
janbjorge
force-pushed
the
typing/09-strict-config
branch
from
September 6, 2026 18:33
245b87e to
2ed8e7d
Compare
janbjorge
force-pushed
the
typing/09-strict-config
branch
from
September 6, 2026 18:38
2ed8e7d to
dae50bc
Compare
janbjorge
force-pushed
the
typing/09-strict-config
branch
from
September 6, 2026 18:41
dae50bc to
a7cbdda
Compare
janbjorge
force-pushed
the
typing/09-strict-config
branch
from
September 6, 2026 18:43
a7cbdda to
40991a5
Compare
Turn on `strict = true`, `warn_unreachable` and the bug-finding error codes (truthy-bool, truthy-iterable, redundant-expr, unused-awaitable, possibly-undefined, ignore-without-code). Inside pgqueuer/ an override adds `disallow_any_explicit` and `disallow_any_unimported`; tests stay strict but may use Any. The pydantic plugin runs with `init_typed` and `init_forbid_extra`, so model constructors are checked like any other signature; DBSettings needs `populate_by_name` for the plugin to type its AliasChoices fields. Tests that built models from bare literals now wrap them in the domain NewTypes or go through model_validate(). AGENTS.md documents the new rules and RELEASE.md lists every public signature that moved across the typing series.
janbjorge
force-pushed
the
typing/09-strict-config
branch
from
September 6, 2026 18:45
40991a5 to
e1730a1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part 9/9 of the strict-mypy series. Stacked on #796; merge in order, I rebase the rest after each merge.
Turn on
strict = true,warn_unreachableand the bug-finding errorcodes (truthy-bool, truthy-iterable, redundant-expr, unused-awaitable,
possibly-undefined, ignore-without-code). Inside pgqueuer/ an override
adds
disallow_any_explicitanddisallow_any_unimported; tests staystrict but may use Any. The pydantic plugin runs with
init_typedandinit_forbid_extra, so model constructors are checked like any othersignature; DBSettings needs
populate_by_namefor the plugin to typeits AliasChoices fields.
Tests that built models from bare literals now wrap them in the domain
NewTypes or go through model_validate(). AGENTS.md documents the new
rules and RELEASE.md lists every public signature that moved across
the typing series.