-
Notifications
You must be signed in to change notification settings - Fork 1.6k
[fastapi] Handle ellipsis defaults in FAST002 autofix (FAST002)
#20810
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
ntBre
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! This looks great. I just had a couple of small ideas/suggestions about the tests.
crates/ruff_linter/resources/test/fixtures/fastapi/FAST002_2.py
Outdated
Show resolved
Hide resolved
crates/ruff_linter/resources/test/fixtures/fastapi/FAST002_2.py
Outdated
Show resolved
Hide resolved
|
It looks like the linux test failure was just a transient issue. The only real CI problem is the formatting. |
|
Thanks for the review! I’ll update it soon. |
…encies with Annotated types
ntBre
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! We just need to update one more minor thing in the snapshots.
I tried to push a commit, but GitHub said I didn't have permission. Sorry for the trouble!
...hots/ruff_linter__rules__fastapi__tests__fast-api-non-annotated-dependency_FAST002_2.py.snap
Outdated
Show resolved
Hide resolved
…in FAST002 tests snapshot
|
* main: (65 commits) [ty] Some more simplifications when rendering constraint sets (#21009) [ty] Make `attributes.md` mdtests faster (#21030) [ty] Set `INSTA_FORCE_PASS` and `INSTA_OUTPUT` environment variables from mdtest.py (#21029) [ty] Fall back to `Divergent` for deeply nested specializations (#20988) [`ruff`] Autogenerate TypeParam nodes (#21028) [ty] Add assertions to ensure that we never call `KnownClass::Tuple.to_instance()` or similar (#21027) [`ruff`] Auto generate ast Pattern nodes (#21024) [`flake8-simplify`] Skip `SIM911` when unknown arguments are present (#20697) Render a diagnostic for syntax errors introduced in formatter tests (#21021) [ty] Support goto-definition on vendored typeshed stubs (#21020) [ty] Implement go-to for binary and unary operators (#21001) [ty] Avoid ever-growing default types (#20991) [syntax-errors] Name is parameter and global (#20426) [ty] Disable panicking mdtest (#21016) [ty] Fix completions at end of file (#20993) [ty] Fix out-of-order semantic token for function with regular argument after kwargs (#21013) [ty] Fix auto import for files with `from __future__` import (#20987) [`fastapi`] Handle ellipsis defaults in FAST002 autofix (`FAST002`) (#20810) [`ruff`] Skip autofix for keyword and `__debug__` path params (#20960) [`flake8-bugbear`] Skip `B905` and `B912` if <2 iterables and no starred arguments (#20998) ...
Summary
Implement handling of ellipsis (
...) defaults in theFAST002autofix to correctly differentiate between required and optional parameters in FastAPI route definitions.Previously, the autofix did not properly handle cases where parameters used
...as a default value (to indicate required parameters). This could lead to incorrect transformations when applying the autofix.This change updates the
FAST002autofix logic to:...as a valid FastAPI required default.Fixes #20800
Test Plan
Added a new test fixture at:
crates/ruff_linter/resources/test/fixtures/fastapi/FAST002_2.py