Bump ruff from 0.3.7 to 0.4.0
Bumps ruff from 0.3.7 to 0.4.0.
Release notes
Sourced from ruff's releases.
v0.4.0
Changes
A new, hand-written parser
Ruff's new parser is >2x faster, which translates to a 20-40% speedup for all linting and formatting invocations. There's a lot to say about this exciting change, so check out the blog post for more details!
See #10036 for implementation details.
A new language server in Rust
With this release, we also want to highlight our new language server.
ruff server
is a Rust-powered language server that comes built-in with Ruff. It can be used with any editor that supports the Language Server Protocol (LSP). It uses a multi-threaded, lock-free architecture inspired byrust-analyzer
and it will open the door for a lot of exciting features. It’s also faster than our previous Python-based language server -- but you probably guessed that already.
ruff server
is only in alpha, but it has a lot of features that you can try out today:
- Lints Python files automatically and shows quick-fixes when available
- Formats Python files, with support for range formatting
- Comes with commands for quickly performing actions:
ruff.applyAutofix
,ruff.applyFormat
, andruff.applyOrganizeImports
- Supports
source.fixAll
andsource.organizeImports
source actions- Automatically reloads your project configuration when you change it
To setup
ruff server
with your editor, refer to the README.md.Preview features
- [
pycodestyle
] Do not triggerE3
rules ondef
s following a function/method with a dummy body (#10704)- [
pylint
] Implementinvalid-bytes-returned
(E0308
) (#10959)- [
pylint
] Implementinvalid-length-returned
(E0303
) (#10963)- [
pylint
] Implementself-cls-assignment
(W0642
) (#9267)- [
pylint
] Omit stubs frominvalid-bool
andinvalid-str-return-type
(#11008)- [
ruff
] New ruleunused-async
(RUF029
) to detect unneededasync
keywords on functions (#9966)Rule changes
- [
flake8-bandit
] Allowurllib.request.urlopen
calls with staticRequest
argument (S310
) (#10964)- [
flake8-bugbear
] Treatraise NotImplemented
-only bodies as stub functions (B006
) (#10990)- [
flake8-slots
] Respect same-fileEnum
subclasses (SLOT000
) (#11006)- [
pylint
] Support inverted comparisons (PLR1730
) (#10920)Linter
- Improve handling of builtin symbols in linter rules (#10919)
- Improve display of rules in
--show-settings
(#11003)- Improve inference capabilities of the
BuiltinTypeChecker
(#10976)- Resolve classes and functions relative to script name (#10965)
- Improve performance of
RuleTable::any_enabled
(#10971)Server
This section is devoted to updates for our new language server, written in Rust.
... (truncated)
Changelog
Sourced from ruff's changelog.
0.4.0
A new, hand-written parser
Ruff's new parser is >2x faster, which translates to a 20-40% speedup for all linting and formatting invocations. There's a lot to say about this exciting change, so check out the blog post for more details!
See #10036 for implementation details.
A new language server in Rust
With this release, we also want to highlight our new language server.
ruff server
is a Rust-powered language server that comes built-in with Ruff. It can be used with any editor that supports the Language Server Protocol (LSP). It uses a multi-threaded, lock-free architecture inspired byrust-analyzer
and it will open the door for a lot of exciting features. It’s also faster than our previous Python-based language server -- but you probably guessed that already.
ruff server
is only in alpha, but it has a lot of features that you can try out today:
- Lints Python files automatically and shows quick-fixes when available
- Formats Python files, with support for range formatting
- Comes with commands for quickly performing actions:
ruff.applyAutofix
,ruff.applyFormat
, andruff.applyOrganizeImports
- Supports
source.fixAll
andsource.organizeImports
source actions- Automatically reloads your project configuration when you change it
To setup
ruff server
with your editor, refer to the README.md.Preview features
- [
pycodestyle
] Do not triggerE3
rules ondef
s following a function/method with a dummy body (#10704)- [
pylint
] Implementinvalid-bytes-returned
(E0308
) (#10959)- [
pylint
] Implementinvalid-length-returned
(E0303
) (#10963)- [
pylint
] Implementself-cls-assignment
(W0642
) (#9267)- [
pylint
] Omit stubs frominvalid-bool
andinvalid-str-return-type
(#11008)- [
ruff
] New ruleunused-async
(RUF029
) to detect unneededasync
keywords on functions (#9966)Rule changes
- [
flake8-bandit
] Allowurllib.request.urlopen
calls with staticRequest
argument (S310
) (#10964)- [
flake8-bugbear
] Treatraise NotImplemented
-only bodies as stub functions (B006
) (#10990)- [
flake8-slots
] Respect same-fileEnum
subclasses (SLOT000
) (#11006)- [
pylint
] Support inverted comparisons (PLR1730
) (#10920)Linter
... (truncated)
Commits
-
e751b4e
Bump version to 0.4.0 (#11011) -
25a9131
Add myself as codeowner for the parser (#11013) -
b7066e6
Consider binary expr for parenthesized with items parsing (#11012) -
6c4d779
Considerif
expression for parenthesized with items parsing (#11010) -
8020d48
ResetFOR_TARGET
context for all kinds of parentheses (#11009) -
13ffb5b
Replace LALRPOP parser with hand-written parser (#10036) -
e09180b
RenameSemanticModel::is_builtin
toSemanticModel::has_builtin_binding
(#... -
2cc487e
ruff server
: Introduce settings for directly configuring the linter and for... -
5da7299
ruff server
: Write a setup guide for Neovim (#10987) -
4d8890e
[pylint
] Omit stubs frominvalid-bool
andinvalid-str-return-type
(#11008) - Additional commits viewable in compare view