-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(deps): update dependency ruff to v0.9.1 #1074
Conversation
490b350
to
b028388
Compare
Fixing... |
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
37f0c0d
to
ddac207
Compare
chore(deps): update dependency ruff to v0.9.1
substantial changes accec
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have a bunch of modules inside the `unblob` package with names colliding with standard library modules: unblob/handlers/compression/gzip.py:1:1: A005 Module `gzip` shadows a Python standard-library module unblob/handlers/compression/lzma.py:1:1: A005 Module `lzma` shadows a Python standard-library module unblob/handlers/compression/zlib.py:1:1: A005 Module `zlib` shadows a Python standard-library module unblob/logging.py:1:1: A005 Module `logging` shadows a Python standard-library module As we never import them directly into scope (e.g. `from unblob import logging`), due to A004 (builtin-import-shadowning), it poses low risk.
…gument lints The following lints are false positive, but highlight a problem: 178 | @attrs.define 179 | class MultiFile(Blob): 180 | name: str = attr.field(kw_only=True) | ^^^^^^^^^^^^^^^^^^^^^^^^ RUF009 181 | paths: list[Path] = attr.field(kw_only=True) | unblob/models.py:181:25: RUF009 Do not perform function call `attr.field` in dataclass defaults | 179 | class MultiFile(Blob): 180 | name: str = attr.field(kw_only=True) 181 | paths: list[Path] = attr.field(kw_only=True) | ^^^^^^^^^^^^^^^^^^^^^^^^ RUF009 182 | 183 | handler: "DirectoryHandler" = attr.ib(init=False, eq=False) | The issue is that we are using both `attrs` and legacy `attr` module imports in the same scope. Fixing these also introduce invalid `attrs.ib` calls as well, which also has to be fixed
ddac207
to
f0482a5
Compare
`attr` is the legacy module name, containing `s` and `ib`, which are not exposed through `attrs` which also matches the package name. For reasoing, see the previous commit.
See https://astral.sh/blog/ruff-v0.9.0 for the list of changes
f0482a5
to
d282e4f
Compare
This PR contains the following updates:
0.8.6
->0.9.1
Release Notes
astral-sh/ruff (ruff)
v0.9.1
Compare Source
Preview features
pycodestyle
] Runtoo-many-newlines-at-end-of-file
on each cell in notebooks (W391
) (#15308)ruff
] Omit diagnostic for shadowed private function parameters inused-dummy-variable
(RUF052
) (#15376)Rule changes
flake8-bugbear
] Improveassert-raises-exception
message (B017
) (#15389)Formatter
Server
Bug fixes
flake8-pie
] Correctly remove wrapping parentheses (PIE800
) (#15394)pyupgrade
] Handle comments and multiline expressions correctly (UP037
) (#15337)v0.9.0
Compare Source
Check out the blog post for a migration guide and overview of the changes!
Breaking changes
Ruff now formats your code according to the 2025 style guide. As a result, your code might now get formatted differently. See the formatter section for a detailed list of changes.
This release doesn’t remove or remap any existing stable rules.
Stabilization
The following rules have been stabilized and are no longer in preview:
stdlib-module-shadowing
(A005
).This rule has also been renamed: previously, it was called
builtin-module-shadowing
.builtin-lambda-argument-shadowing
(A006
)slice-to-remove-prefix-or-suffix
(FURB188
)boolean-chained-comparison
(PLR1716
)decimal-from-float-literal
(RUF032
)post-init-default
(RUF033
)useless-if-else
(RUF034
)The following behaviors have been stabilized:
pytest-parametrize-names-wrong-type
(PT006
): Detectpytest.parametrize
calls outside decorators and calls with keyword arguments.module-import-not-at-top-of-file
(E402
): Ignorepytest.importorskip
calls between import statements.mutable-dataclass-default
(RUF008
) andfunction-call-in-dataclass-default-argument
(RUF009
): Add support forattrs
.bad-version-info-comparison
(PYI006
): Extend the rule to check non-stub files.The following fixes or improvements to fixes have been stabilized:
redundant-numeric-union
(PYI041
)duplicate-union-members
(PYI016
)Formatter
This release introduces the new 2025 stable style (#13371), stabilizing the following changes:
ISC001
incompatibility warning (#15123)assert
message over breaking the assertion expression (#9457)if
guards inmatch
case
clauses (#13513)match
case
patterns (#6933)if
keyword for comprehensions where the condition has a leading comment (#12282)with
statements with a single context manager for Python 3.8 or older (#10276)max-doc-code-line-length = "dynamic"
(#13523)Preview features
flake8-bugbear
] Implementclass-as-data-structure
(B903
) (#9601)flake8-type-checking
] Applyquoted-type-alias
more eagerly inTYPE_CHECKING
blocks and ignore it in stubs (TC008
) (#15180)pylint
] Ignoreeq-without-hash
in stub files (PLW1641
) (#15310)pyupgrade
] SplitUP007
into two individual rules:UP007
forUnion
andUP045
forOptional
(UP007
,UP045
) (#15313)ruff
] New rule that detects classes that are both an enum and adataclass
(RUF049
) (#15299)ruff
] RecodeRUF025
toRUF037
(RUF037
) (#15258)Rule changes
flake8-builtins
] Ignorestdlib-module-shadowing
in stub files(A005
) (#15350)flake8-return
] Add support for functions returningtyping.Never
(RET503
) (#15298)Server
logLevel
server settingwhich defaults to
info
. This addresses the issue where users were notified about an error and told to consult the log, but it didn’t contain any messages. (#15232)CLI
--config key=value
when thekey
is for a table and it’s a simplevalue
Bug fixes
eradicate
] Ignore metadata blocks directly followed by normal blocks (ERA001
) (#15330)flake8-django
] Recognize other magic methods (DJ012
) (#15365)pycodestyle
] Avoid false positives related to type aliases (E252
) (#15356)pydocstyle
] Avoid treating newline-separated sections as sub-sections (D405
) (#15311)pyflakes
] Remove call when removing final argument fromformat
(F523
) (#15309)refurb
] Mark fix as unsafe when the right-hand side is a string (FURB171
) (#15273)ruff
] Treat)
as a regex metacharacter (RUF043
,RUF055
) (#15318)ruff
] Parenthesize theint
-call argument when removing theint
call would change semantics (RUF046
) (#15277)Configuration
📅 Schedule: Branch creation - "* 0-3 * * 1" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.