What's Changed
⚠️ Breaking Changes ⚠️
select
, extend-select
, ignore
, and extend-ignore
have new semantics (#2312)
Previously, the interplay between select
and its related options could lead to unexpected behavior. For example, ruff --select E501 --ignore ALL
and ruff --select E501 --extend-ignore ALL
behaved differently. (See #2312 for more examples.)
The new semantics are such that Ruff uses the "highest-priority" select
as the basis for the rule set, and then applies any extend-select
, ignore
, and extend-ignore
adjustments. CLI options are given higher priority than pyproject.toml
options, and the current pyproject.toml
file is given higher priority than any inherited pyproject.toml
files.
As an example: ruff --select F401
will select rule F401
, and ignore any of the modifiers from the pyproject.toml
, as the "highest-priorty" select kicks off the resolution chain.
This change is largely backwards compatible -- most users should experience no change in behavior. For more, see BREAKING_CHANGES.md.
remove-six-compat
(UP016
) has been removed (#2332)
The remove-six-compat
rule has been removed. This rule was only useful for one-time Python 2-to-3 upgrades.
Rules
- Implement Pylint's
too-many-arguments
rule (PLR0913
) by @akhildevelops in #2308 - Extend conventional imports defaults to include TensorFlow et al by @sbrugman in #2353
Settings
- feat: add ruff --statistics by @spaceone in #2284
- Ignore magic comparisons to bytes by default by @charliermarsh in #2365
- Implement
ruff linter
subcommand by @not-my-profile in #2294 - Improve rule config resolution by @not-my-profile in #2312
Bug Fixes
- Refine criteria for
exc_info
logger rules by @charliermarsh in #2364 - Respect per-file-ignores when checking noqa by @sciyoshi in #2309
- Place star before other member imports by @charliermarsh in #2320
- Allow list comprehensions for all assignment by @charliermarsh in #2326
- [
TRY201
] don't check raise statements in nested exception handlers by @sciyoshi in #2337 - include tomllib in standard lib by @sbrugman in #2345
- Avoid removing trailing comments when autofixing by @charliermarsh in #2352
- [
I001
] fix isort for files with tab-based indentation by @sciyoshi in #2361 - Disable incompatible rules rather than merely warning by @charliermarsh in #2369
New Contributors
- @chirag127 made their first contribution in #2307
- @akhildevelops made their first contribution in #2308
Full Changelog: v0.0.237...v0.0.238