generated from john/python-template
chore: make ty check blocking with targeted suppressions
Co-authored-by: Copilot App <[email protected]>
This commit is contained in:
co-authored by
Copilot App
parent
a2bb1acd6b
commit
26f9c83f54
@@ -113,3 +113,17 @@ Declared with `>=` floors and moved by explicit `uv lock --upgrade`. Verify with
|
||||
`uv run ruff check .`, `uv run ty check`, and `uv run pytest -q -m "not external"`
|
||||
before committing a changed lockfile.
|
||||
|
||||
## 7. Type-check suppression policy
|
||||
|
||||
`uv run ty check` is a blocking pre-commit gate. Suppressions are allowed only for
|
||||
proven SQLAlchemy descriptor false positives where runtime behavior is correct and
|
||||
the checker cannot represent the descriptor protocol at that call site.
|
||||
|
||||
Every suppression must be:
|
||||
|
||||
1. **Targeted** to a single rule (for example `# ty: ignore[unresolved-attribute]`).
|
||||
2. **Inline** on the expression it suppresses (not file-wide).
|
||||
3. Followed by a **one-line rationale** stating it is a SQLAlchemy descriptor false positive.
|
||||
|
||||
Do not use broad or rationale-free suppressions. If a diagnostic is not a known
|
||||
false positive, fix the code instead of suppressing it.
|
||||
|
||||
Reference in New Issue
Block a user