This release includes the Beta version of the Ruff formatter — an extremely fast, Black-compatible Python formatter.
Try it today with ruff format
! Check out the blog post and read the docs.
Changes
Preview features
- [
pylint
] Implementnon-ascii-module-import
(C2403
) (#8056) - [
pylint
] implementnon-ascii-name
(C2401
) (#8038) - [
pylint
] Implement unnecessary-lambda (W0108) (#7953) - [
refurb
] Implementread-whole-file
(FURB101
) (#7682) - Add fix for
E223
,E224
, andE242
(#8143) - Add fix for
E225
,E226
,E227
, andE228
(#8136) - Add fix for
E252
(#8142) - Add fix for
E261
(#8114) - Add fix for
E273
andE274
(#8144) - Add fix for
E275
(#8133) - Update
SIM401
to catch ternary operations (#7415) - Update
E721
to allowis
andis
not for direct type comparisons (#7905)
Rule changes
- Add
backports.strenum
todeprecated-imports
(#8113) - Update
SIM112
to ignorehttps_proxy
,http_proxy
, andno_proxy
(#8140) - Update fix for
literal-membership
(PLR6201
) to be unsafe (#8097) - Update fix for
mutable-argument-defaults
(B006
) to be unsafe (#8108)
Formatter
- Change
line-ending
default toauto
(#8057) - Respect parenthesized generators in
has_own_parentheses
(#8100) - Add caching to formatter (#8089)
- Remove
--line-length
option fromformat
command (#8131) - Add formatter to
line-length
documentation (#8150) - Warn about incompatible formatter options (#8088)
- Fix range of unparenthesized tuple subject in match statement (#8101)
- Remove experimental formatter warning (#8148)
- Don't move type param opening parenthesis comment (#8163)
- Update versions in format benchmark script (#8110)
- Avoid loading files for cached format results (#8134)
CLI
- Show the
ruff format
command in help menus (#8167) - Add
ruff version
command with long version display (#8034)
Configuration
- New
pycodestyle.max-line-length
option (#8039)
Bug fixes
- Detect
sys.version_info
slices inoutdated-version-block
(#8112) - Avoid if-else simplification for
TYPE_CHECKING
blocks (#8072) - Avoid false-positive print separator diagnostic with starred argument (#8079)
Documentation
- Fix message for
too-many-arguments
lint (#8092) - Fix
extend-unsafe-fixes
andextend-safe-fixes
example (#8139) - Add links to
flake8-import-conventions
options (#8115) - Rework the documentation to incorporate the Ruff formatter (#7732)
- Fix
Options
JSON schema description (#8081) - Fix typo (
pytext
->pytest
) (#8117) - Improve
magic-value-comparison
example in docs (#8111)