fix(deps): update dependency ruff to ^0.4.0 by renovate[bot] · Pull Request #172 · allthingslinux/tux
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| ruff (source, changelog) | ^0.3.6 -> ^0.4.0 |
Release Notes
astral-sh/ruff (ruff)
v0.4.1
Preview features
- [
pylint] Implementinvalid-hash-returned(PLE0309) (#10961) - [
pylint] Implementinvalid-index-returned(PLE0305) (#10962)
Bug fixes
- [
pylint] AllowNoReturn-like functions for__str__,__len__, etc. (PLE0307) (#11017) - Parser: Use empty range when there's "gap" in token source (#11032)
- [
ruff] Ignore stub functions inunused-async(RUF029) (#11026) - Parser: Expect indented case block instead of match stmt (#11033)
v0.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 by rust-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.fixAllandsource.organizeImportssource 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 triggerE3rules ondefs 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-boolandinvalid-str-return-type(#11008) - [
ruff] New ruleunused-async(RUF029) to detect unneededasynckeywords on functions (#9966)
Rule changes
- [
flake8-bandit] Allowurllib.request.urlopencalls with staticRequestargument (S310) (#10964) - [
flake8-bugbear] Treatraise NotImplemented-only bodies as stub functions (B006) (#10990) - [
flake8-slots] Respect same-fileEnumsubclasses (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.
- Enable ruff-specific source actions (#10916)
- Refreshes diagnostics for open files when file configuration is changed (#10988)
- Important errors are now shown as popups (#10951)
- Introduce settings for directly configuring the linter and formatter (#10984)
- Resolve configuration for each document individually (#10950)
- Write a setup guide for Neovim (#10987)
Configuration
- Add
RUFF_OUTPUT_FILEenvironment variable support (#10992)
Bug fixes
- Avoid
non-augmented-assignmentfor reversed, non-commutative operators (PLR6104) (#10909) - Limit commutative non-augmented-assignments to primitive data types (
PLR6104) (#10912) - Respect
per-file-ignoresforRUF100on blanket# noqa(#10908) - Consider
ifexpression for parenthesized with items parsing (#11010) - Consider binary expr for parenthesized with items parsing (#11012)
- Reset
FOR_TARGETcontext for all kinds of parentheses (#11009)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.