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:
RevisionActionfile
1.52modifypkgsrc/devel/py-ruff/Makefile
1.47modifypkgsrc/devel/py-ruff/cargo-depends.mk
1.49modifypkgsrc/devel/py-ruff/distinfo