Path to this page:
Subject: CVS commit: pkgsrc/devel/py-ruff
From: Thomas Klausner
Date: 2025-01-12 11:30:06
Message id: 20250112103006.7D9BAFC1D@cvs.NetBSD.org
Log Message:
py-ruff: update to 0.9.1.
0.9.1
Preview features
[pycodestyle] Run too-many-newlines-at-end-of-file on each cell in notebooks \
(W391) (#15308)
[ruff] Omit diagnostic for shadowed private function parameters in \
used-dummy-variable (RUF052) (#15376)
Rule changes
[flake8-bugbear] Improve assert-raises-exception message (B017) (#15389)
Formatter
Preserve trailing end-of line comments for the last string literal in \
implicitly concatenated strings (#15378)
Server
Fix a bug where the server and client notebooks were out of sync after \
reordering cells (#15398)
Bug fixes
[flake8-pie] Correctly remove wrapping parentheses (PIE800) (#15394)
[pyupgrade] Handle comments and multiline expressions correctly (UP037) (#15337)
0.9.0
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): Detect pytest.parametrize calls \
outside decorators and calls with keyword arguments.
module-import-not-at-top-of-file (E402): Ignore pytest.importorskip calls \
between import statements.
mutable-dataclass-default (RUF008) and \
function-call-in-dataclass-default-argument (RUF009): Add support for attrs.
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:
Format expressions in f-string elements (#7594)
Alternate quotes for strings inside f-strings (#13860)
Preserve the casing of hex codes in f-string debug expressions (#14766)
Choose the quote style for each string literal in an implicitly concatenated \
f-string rather than for the entire string (#13539)
Automatically join an implicitly concatenated string into a single string \
literal if it fits on a single line (#9457)
Remove the ISC001 incompatibility warning (#15123)
Prefer parenthesizing the assert message over breaking the assertion \
expression (#9457)
Automatically parenthesize over-long if guards in match case clauses (#13513)
More consistent formatting for match case patterns (#6933)
Avoid unnecessary parentheses around return type annotations (#13381)
Keep the opening parentheses on the same line as the if keyword for \
comprehensions where the condition has a leading comment (#12282)
More consistent formatting for with statements with a single context manager \
for Python 3.8 or older (#10276)
Correctly calculate the line-width for code blocks in docstrings when using \
max-doc-code-line-length = "dynamic" (#13523)
Preview features
[flake8-bugbear] Implement class-as-data-structure (B903) (#9601)
[flake8-type-checking] Apply quoted-type-alias more eagerly in TYPE_CHECKING \
blocks and ignore it in stubs (TC008) (#15180)
[pylint] Ignore eq-without-hash in stub files (PLW1641) (#15310)
[pyupgrade] Split UP007 into two individual rules: UP007 for Union and UP045 \
for Optional (UP007, UP045) (#15313)
[ruff] New rule that detects classes that are both an enum and a dataclass \
(RUF049) (#15299)
[ruff] Recode RUF025 to RUF037 (RUF037) (#15258)
Rule changes
[flake8-builtins] Ignore stdlib-module-shadowing in stub files(A005) (#15350)
[flake8-return] Add support for functions returning typing.Never (RET503) \
(#15298)
Server
Improve the observability by removing the need for the "trace" \
value to turn on or off logging. The server logging is solely controlled using \
the logLevel server setting
which 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)
Ignore diagnostics from other sources for code action requests (#15373)
CLI
Improve the error message for --config key=value when the key is for a table \
and it’s a simple value
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 from format (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 the int-call argument when removing the int call would \
change semantics (RUF046) (#15277)
Files: