0.9.2
📦 ruffView on GitHub →
✨ 13 features🐛 9 fixes🔧 21 symbols
Summary
Ruff 0.9.2 introduces numerous preview features, rule enhancements, formatter and server improvements, and a collection of bug fixes, while removing the deprecated "flatten" configuration option.
Migration Steps
- Remove any usage of the "flatten" configuration option, as it has been eliminated.
✨ New Features
- Fix typo "security_managr" to "security_manager" in the airflow plugin (AIR303).
- Extend and fix AIR302 rules for the airflow plugin.
- FastAPI plugin now correctly handles parameters with Depends (FAST003).
- flake8-pytest-style now implements pytest.warns diagnostics (PT029, PT030, PT031).
- flake8-pytest-style now supports test function parameters with default arguments (PT028).
- flake8-type-checking avoids false positives for the "|" operator in TC008.
- flake8-todos now allows VSCode GitHub PR extension style links in missing-todo-link (TD003).
- pyflakes now shows a syntax error message for F722.
- Formatter now correctly spaces curly brackets around f-string expressions containing curly braces.
- Formatter now correctly joins f-strings with different quotes when using the Preserve quote style.
- Server avoids indexing the same workspace multiple times.
- Server now displays context for ruff.configuration errors.
- Configuration option "flatten" removed to improve deserialization error messages.
🐛 Bug Fixes
- Formatter fixed curly bracket spacing around f-string expressions containing curly braces.
- Formatter fixed joining of f-strings with different quotes when using quote style Preserve.
- Server fixed indexing the same workspace multiple times.
- Server fixed display of context for ruff.configuration errors.
- Parser now treats triple-quoted string annotations as if they were parenthesized.
- FastAPI plugin updated Annotated handling (FAST002).
- flake8-bandit now checks for "builtins" instead of "builtin" (S102, PTH123).
- flake8-pathlib fixed --select handling for os-path-dirname (PTH120).
- Ruff fixed false positive detection of the global keyword (RUF052).
🔧 Affected Symbols
airflow.security_managerairflow.AIR302fastapi.FAST003fastapi.FAST002flake8_pytest_style.PT028flake8_pytest_style.PT029flake8_pytest_style.PT030flake8_pytest_style.PT031flake8_type_checking.TC008flake8_todos.TD003pyflakes.F722ruff.formatter.f_string_spacingruff.formatter.f_string_joinruff.server.workspace_indexingruff.server.configuration_contextruff.configuration.flattenruff.triple_quoted_annotation_parsingflake8_bandit.S102flake8_bandit.PTH123flake8_pathlib.PTH120ruff.RUF052