Update dependency ruff to ^0.5.0
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
ruff (source, changelog) | dependencies | minor |
^0.4.0 -> ^0.5.0
|
Release Notes
astral-sh/ruff (ruff)
v0.5.1
Preview features
- [
flake8-bugbear
] Implement mutable-contextvar-default (B039) (#12113) - [
pycodestyle
] Whitespace after decorator (E204
) (#12140) - [
pytest
] ReversePT001
andPT0023
defaults (#12106)
Rule changes
- Enable token-based rules on source with syntax errors (#11950)
- [
flake8-bandit
] Detecthttpx
forS113
(#12174) - [
numpy
] UpdateNPY201
to include exception deprecations (#12065) - [
pylint
] Generate autofix forduplicate-bases
(PLE0241
) (#12105)
Server
- Avoid syntax error notification for source code actions (#12148)
- Consider the content of the new cells during notebook sync (#12203)
- Fix replacement edit range computation (#12171)
Bug fixes
- Disable auto-fix when source has syntax errors (#12134)
- Fix cache key collisions for paths with separators (#12159)
- Make
requires-python
inference robust to==
(#12091) - Use char-wise width instead of
str
-width (#12135) - [
pycodestyle
] AvoidE275
if keyword followed by comma (#12136) - [
pycodestyle
] AvoidE275
if keyword is followed by a semicolon (#12095) - [
pylint
] Skip dummy variables forPLR1704
(#12190)
Performance
v0.5.0
Check out the blog post for a migration guide and overview of the changes!
Breaking changes
See also, the "Remapped rules" section which may result in disabled rules.
- Follow the XDG specification to discover user-level configurations on macOS (same as on other Unix platforms)
- Selecting
ALL
now excludes deprecated rules - The released archives now include an extra level of nesting, which can be removed with
--strip-components=1
when untarring. - The release artifact's file name no longer includes the version tag. This enables users to install via
/latest
URLs on GitHub. - The diagnostic ranges for some
flake8-bandit
rules were modified (#10667).
Deprecations
The following rules are now deprecated:
-
syntax-error
(E999
): Syntax errors are now always shown
Remapped rules
The following rules have been remapped to new rule codes:
-
blocking-http-call-in-async-function
:ASYNC100
toASYNC210
-
open-sleep-or-subprocess-in-async-function
:ASYNC101
split intoASYNC220
,ASYNC221
,ASYNC230
, andASYNC251
-
blocking-os-call-in-async-function
:ASYNC102
has been merged intoASYNC220
andASYNC221
-
trio-timeout-without-await
:TRIO100
toASYNC100
-
trio-sync-call
:TRIO105
toASYNC105
-
trio-async-function-with-timeout
:TRIO109
toASYNC109
-
trio-unneeded-sleep
:TRIO110
toASYNC110
-
trio-zero-sleep-call
:TRIO115
toASYNC115
-
repeated-isinstance-calls
:PLR1701
toSIM101
Stabilization
The following rules have been stabilized and are no longer in preview:
-
mutable-fromkeys-value
(RUF024
) -
default-factory-kwarg
(RUF026
) -
django-extra
(S610
) -
manual-dict-comprehension
(PERF403
) -
print-empty-string
(FURB105
) -
readlines-in-for
(FURB129
) -
if-expr-min-max
(FURB136
) -
bit-count
(FURB161
) -
redundant-log-base
(FURB163
) -
regex-flag-alias
(FURB167
) -
isinstance-type-none
(FURB168
) -
type-none-comparison
(FURB169
) -
implicit-cwd
(FURB177
) -
hashlib-digest-hex
(FURB181
) -
list-reverse-copy
(FURB187
) -
bad-open-mode
(PLW1501
) -
empty-comment
(PLR2044
) -
global-at-module-level
(PLW0604
) -
misplaced-bare-raise
(PLE0744
) -
non-ascii-import-name
(PLC2403
) -
non-ascii-name
(PLC2401
) -
nonlocal-and-global
(PLE0115
) -
potential-index-error
(PLE0643
) -
redeclared-assigned-name
(PLW0128
) -
redefined-argument-from-local
(PLR1704
) -
repeated-keyword-argument
(PLE1132
) -
super-without-brackets
(PLW0245
) -
unnecessary-list-index-lookup
(PLR1736
) -
useless-exception-statement
(PLW0133
) -
useless-with-lock
(PLW2101
)
The following behaviors have been stabilized:
-
is-literal
(F632
) now warns for identity checks against list, set or dictionary literals -
needless-bool
(SIM103
) now detectsif
expressions with implicitelse
branches -
module-import-not-at-top-of-file
(E402
) now allowsos.environ
modifications between import statements -
type-comparison
(E721
) now allows idioms such astype(x) is int
-
yoda-condition
(SIM300
) now flags a wider range of expressions
Removals
The following deprecated settings have been removed:
-
output-format=text
; useoutput-format=concise
oroutput-format=full
-
tab-size
; useindent-width
The following deprecated CLI options have been removed:
-
--show-source
; use--output-format=full
-
--no-show-source
; use--output-format=concise
The following deprecated CLI commands have been removed:
-
ruff <path>
; useruff check <path>
-
ruff --clean
; useruff clean
-
ruff --generate-shell-completion
; useruff generate-shell-completion
Preview features
- [
ruff
] Addassert-with-print-message
rule (#11981)
CLI
- Use rule name rather than message in
--statistics
(#11697) - Use the output format
full
by default (#12010) - Don't log syntax errors to the console (#11902)
Rule changes
- [
ruff
] Fix false positives ifgettext
is imported using an alias (RUF027
) (#12025) - [
numpy
] Updatetrapz
andin1d
deprecation (NPY201
) (#11948) - [
flake8-bandit
] Modify diagnostic ranges for shell-related rules (#10667)
Server
- Closing an untitled, unsaved notebook document no longer throws an error (#11942)
- Support the usage of tildes and environment variables in
logFile
(#11945) - Add option to configure whether to show syntax errors (#12059)
Bug fixes
- [
pycodestyle
] AvoidE203
for f-string debug expression (#12024) - [
pep8-naming
] Match import-name ignores against both name and alias (N812
,N817
) (#12033) - [
pyflakes
] Detect assignments that shadow definitions (F811
) (#11961)
Parser
- Emit a syntax error for an empty type parameter list (#12030)
- Avoid consuming the newline for unterminated strings (#12067)
- Do not include the newline in the unterminated string range (#12017)
- Use the correct range to highlight line continuation errors (#12016)
- Consider 2-character EOL before line continuations (#12035)
- Consider line continuation character for re-lexing (#12008)
Other changes
- Upgrade the Unicode table used for measuring the line-length (#11194)
- Remove the deprecation error message for the nursery selector (#10172)
v0.4.10
Parser
- Implement re-lexing logic for better error recovery (#11845)
Rule changes
- [
flake8-copyright
] UpdateCPY001
to check the first 4096 bytes instead of 1024 (#11927) - [
pycodestyle
] UpdateE999
to show all syntax errors instead of just the first one (#11900)
Server
- Add tracing setup guide to Helix documentation (#11883)
- Add tracing setup guide to Neovim documentation (#11884)
- Defer notebook cell deletion to avoid an error message (#11864)
Security
- Guard against malicious ecosystem comment artifacts (#11879)
v0.4.9
Preview features
- [
pylint
] Implementconsider-dict-items
(C0206
) (#11688) - [
refurb
] Implementrepeated-global
(FURB154
) (#11187)
Rule changes
- [
pycodestyle
] Adapt fix forE203
to work identical toruff format
(#10999)
Formatter
- Fix formatter instability for lines only consisting of zero-width characters (#11748)
Server
- Add supported commands in server capabilities (#11850)
- Use real file path when available in
ruff server
(#11800) - Improve error message when a command is run on an unavailable document (#11823)
- Introduce the
ruff.printDebugInformation
command (#11831) - Tracing system now respects log level and trace level, with options to log to a file (#11747)
CLI
- Handle non-printable characters in diff view (#11687)
Bug fixes
- [
refurb
] Avoid suggesting starmap when arguments are used outside call (FURB140
) (#11830) - [
flake8-bugbear
] Avoid panic inB909
when checking large loop blocks (#11772) - [
refurb
] Fix misbehavior ofoperator.itemgetter
when getter param is a tuple (FURB118
) (#11774)
v0.4.8
Performance
- Linter performance has been improved by around 10% on some microbenchmarks by refactoring the lexer and parser to maintain synchronicity between them (#11457)
Preview features
- [
flake8-bugbear
] Implementreturn-in-generator
(B901
) (#11644) - [
flake8-pyi
] ImplementPYI063
(#11699) - [
pygrep_hooks
] Check blanket ignores via file-level pragmas (PGH004
) (#11540)
Rule changes
- [
pyupgrade
] UpdateUP035
for Python 3.13 and the latest version oftyping_extensions
(#11693) - [
numpy
] UpdateNPY001
rule for NumPy 2.0 (#11735)
Server
- Formatting a document with syntax problems no longer spams a visible error popup (#11745)
CLI
- Add RDJson support for
--output-format
flag (#11682)
Bug fixes
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.