Commit 0d44cfb
authored
chore(ingestion): refresh basedpyright config; standard mode + ratchet scaffold (#27794)
* chore(ingestion): refresh basedpyright config; standard mode + ratchet scaffold
Switch from implicit `recommended` mode to `typeCheckingMode = "standard"`,
matching the production-default of every mature OSS pyright/basedpyright
config surveyed (Pydantic, Litestar, FastAPI, OpenAI/Anthropic SDKs,
Polars, Strawberry, Airflow, AnyIO). `recommended` enables the
`reportUnknown*` family which is catastrophic on a 75-connector codebase
with partially-typed third-party deps (snowflake, pyhive, databricks,
etc.) — 30K+ baseline entries are noise from those library boundaries,
not real type debt in our code.
The config holds real-bug rules at `error` explicitly so a future
config refactor can't silently drop them:
- reportPossiblyUnboundVariable (real UnboundLocalError)
- reportOptionalMemberAccess (NoneType crashes)
- reportAttributeAccessIssue (typos / refactor stragglers)
- reportCallIssue / reportArgumentType / reportReturnType
- reportAssignmentType / reportIncompatibleMethodOverride
- reportInvalidTypeArguments
Plus three cheap promotions at `warning` for real-bug rules that fire
rarely:
- reportMatchNotExhaustive
- reportUnreachable
- reportInvalidCast
`allowedUntypedLibraries` and an `executionEnvironments` block are
scaffolded (empty / commented) for the per-subtree ratchet plan: as
well-typed subtrees (`data_quality/`, `utils/`, `ometa/`) drop their
local baselines, they get promoted to a stricter rule subset
independent of the connector tail.
Baseline shrinks 56,151 → 18,916 entries (66% smaller). The remaining
18,916 are real-bug-class entries that bound the cleanup work going
forward; `reportUnknown*` noise is no longer measured.
* Update pyproject.toml1 parent 6260905 commit 0d44cfb
2 files changed
Lines changed: 58657 additions & 356682 deletions
0 commit comments