mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-09 21:28:21 +00:00
![]()
Some checks are pending
CI / Determine changes (push) Waiting to run
CI / cargo fmt (push) Waiting to run
CI / cargo clippy (push) Blocked by required conditions
CI / cargo test (linux) (push) Blocked by required conditions
CI / cargo test (linux, release) (push) Blocked by required conditions
CI / cargo test (windows) (push) Blocked by required conditions
CI / cargo test (wasm) (push) Blocked by required conditions
CI / cargo build (release) (push) Waiting to run
CI / cargo build (msrv) (push) Blocked by required conditions
CI / cargo fuzz build (push) Blocked by required conditions
CI / fuzz parser (push) Blocked by required conditions
CI / test scripts (push) Blocked by required conditions
CI / ecosystem (push) Blocked by required conditions
CI / Fuzz for new ty panics (push) Blocked by required conditions
CI / cargo shear (push) Blocked by required conditions
CI / python package (push) Waiting to run
CI / pre-commit (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / formatter instabilities and black similarity (push) Blocked by required conditions
CI / test ruff-lsp (push) Blocked by required conditions
CI / check playground (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
[ty Playground] Release / publish (push) Waiting to run
<!-- Thank you for contributing to Ruff/ty! To help us out with reviewing, please consider the following: - Does this pull request include a summary of the change? (See below.) - Does this pull request include a descriptive title? (Please prefix with `[ty]` for ty pull requests.) - Does this pull request include references to any relevant issues? --> ## Summary Closes #17226. This PR updates the `FAST003` rule to correctly handle [FastAPI class dependencies](https://fastapi.tiangolo.com/tutorial/dependencies/classes-as-dependencies/). Specifically, if a path parameter is declared in either: - a `pydantic.BaseModel` used as a dependency, or - the `__init__` method of a class used as a dependency, then `FAST003` will no longer incorrectly report it as unused. FastAPI allows a shortcut when using annotated class dependencies - `Depends` can be called without arguments, e.g.: ```python class MyParams(BaseModel): my_id: int @router.get("/{my_id}") def get_id(params: Annotated[MyParams, Depends()]): ... ``` This PR ensures that such usage is properly supported by the linter. Note: Support for dataclasses is not included in this PR. Let me know if you’d like it to be added. ## Test Plan Added relevant test cases to the `FAST003.py` fixture. |
||
---|---|---|
.. | ||
airflow | ||
control-flow-graph | ||
eradicate | ||
fastapi | ||
filesystem | ||
flake8_2020 | ||
flake8_annotations | ||
flake8_async | ||
flake8_bandit | ||
flake8_blind_except | ||
flake8_boolean_trap | ||
flake8_bugbear | ||
flake8_builtins | ||
flake8_commas | ||
flake8_comprehensions | ||
flake8_datetimez | ||
flake8_debugger | ||
flake8_django | ||
flake8_errmsg | ||
flake8_executable | ||
flake8_fixme | ||
flake8_future_annotations | ||
flake8_gettext | ||
flake8_implicit_str_concat | ||
flake8_import_conventions | ||
flake8_logging | ||
flake8_logging_format | ||
flake8_no_pep420 | ||
flake8_pie | ||
flake8_print | ||
flake8_pyi | ||
flake8_pytest_style | ||
flake8_quotes | ||
flake8_raise | ||
flake8_return | ||
flake8_self | ||
flake8_simplify | ||
flake8_slots | ||
flake8_tidy_imports | ||
flake8_todos | ||
flake8_type_checking | ||
flake8_unused_arguments | ||
flake8_use_pathlib | ||
flynt | ||
isort | ||
mccabe | ||
numpy | ||
pandas_vet | ||
pep8_naming | ||
perflint | ||
pycodestyle | ||
pydoclint | ||
pydocstyle | ||
pyflakes | ||
pygrep_hooks | ||
pylint | ||
pyupgrade | ||
refurb | ||
ruff | ||
syntax_errors | ||
tryceratops | ||
__init__.py |