- update to 0.12.10
* Preview features
* [flake8-simplify] Implement fix for maxsplit without separator (SIM905)
* [flake8-use-pathlib] Add fixes for PTH102 and PTH103
* Bug fixes
* [isort] Handle multiple continuation lines after module docstring (I002)
* [pyupgrade] Avoid reporting __future__ features as unnecessary when they are used (UP010)
* [pyupgrade] Handle nested Optionals (UP045)
* Rule changes
* [pycodestyle] Make E731 fix unsafe instead of display-only for class assignments
* [pyflakes] Add secondary annotation showing previous definition (F811)
* Documentation
* Fix description of global config file discovery strategy
* Update outdated links to https://typing.python.org/en/latest/source/stubs.html
* [flake8-annotations] Remove unused import in example (ANN401)
OBS-URL: https://build.opensuse.org/request/show/1300962
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=82
* Preview features
* [flake8-simplify] Implement fix for maxsplit without separator (SIM905)
* [flake8-use-pathlib] Add fixes for PTH102 and PTH103
* Bug fixes
* [isort] Handle multiple continuation lines after module docstring (I002)
* [pyupgrade] Avoid reporting __future__ features as unnecessary when they are used (UP010)
* [pyupgrade] Handle nested Optionals (UP045)
* Rule changes
* [pycodestyle] Make E731 fix unsafe instead of display-only for class assignments
* [pyflakes] Add secondary annotation showing previous definition (F811)
* Documentation
* Fix description of global config file discovery strategy
* Update outdated links to https://typing.python.org/en/latest/source/stubs.html
* [flake8-annotations] Remove unused import in example (ANN401)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=175
- update to 0.12.9:
* \[`airflow`\] Add check for
`airflow.secrets.cache.SecretCache` (`AIR301`)
* \[`ruff`\] Offer a safe fix for multi-digit zeros (`RUF064`)
* \[`flake8-blind-except`\] Fix `BLE001` false-positive on
`raise ... from None`
* \[`flake8-comprehensions`\] Fix false positive for `C420`
with attribute, subscript, or slice assignment targets
* \[`flake8-simplify`\] Fix handling of U+001C..U+001F
whitespace (`SIM905`)
* \[`pylint`\] Use lowercase hex characters to match the
formatter (`PLE2513`)
* [flake8-use-pathlib] Expand PTH201 to check all PurePath subclasses
* [flake8-blind-except] Change BLE001 to correctly parse exception tuples
* [flake8-errmsg] Exclude typing.cast from EM101
* [flake8-simplify] Fix raw string handling in SIM905 for embedded quotes
* [flake8-import-conventions] Avoid false positives for NFKC-normalized __debug__ import aliases in ICN001
* [isort] Fix syntax error after docstring ending with backslash (I002)
* [pylint] Mark PLC0207 fixes as unsafe when *args unpacking is present
* [pyupgrade] Prevent infinite loop with I002 (UP010, UP035)
* [ruff] Parenthesize generator expressions in f-strings (RUF010)
* [eradicate] Don't flag pyrefly pragmas as unused code (ERA001)
* Replace "associative" with "commutative" in docs for RUF036
* Fix copy and line separator colors in dark mode
* Fix link to typing documentation
* Include column numbers in GitLab output format
* Always expand tabs to four spaces in diagnostics
* Update pre-commit's ruff id
OBS-URL: https://build.opensuse.org/request/show/1299828
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=81
* \[`airflow`\] Add check for
`airflow.secrets.cache.SecretCache` (`AIR301`)
* \[`ruff`\] Offer a safe fix for multi-digit zeros (`RUF064`)
* \[`flake8-blind-except`\] Fix `BLE001` false-positive on
`raise ... from None`
* \[`flake8-comprehensions`\] Fix false positive for `C420`
with attribute, subscript, or slice assignment targets
* \[`flake8-simplify`\] Fix handling of U+001C..U+001F
whitespace (`SIM905`)
* \[`pylint`\] Use lowercase hex characters to match the
formatter (`PLE2513`)
* [flake8-use-pathlib] Expand PTH201 to check all PurePath subclasses
* Bug fixes
* [flake8-blind-except] Change BLE001 to correctly parse exception tuples
* [flake8-errmsg] Exclude typing.cast from EM101
* [flake8-simplify] Fix raw string handling in SIM905 for embedded quotes
* [flake8-import-conventions] Avoid false positives for NFKC-normalized __debug__ import aliases in ICN001
* [isort] Fix syntax error after docstring ending with backslash (I002)
* [pylint] Mark PLC0207 fixes as unsafe when *args unpacking is present
* [pyupgrade] Prevent infinite loop with I002 (UP010, UP035)
* [ruff] Parenthesize generator expressions in f-strings (RUF010)
* Rule changes
* [eradicate] Don't flag pyrefly pragmas as unused code (ERA001)
* Documentation
* Replace "associative" with "commutative" in docs for RUF036
* Fix copy and line separator colors in dark mode
* Fix link to typing documentation
* Include column numbers in GitLab output format
* Always expand tabs to four spaces in diagnostics
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=173
- update to 0.12.8
* Preview features
* [flake8-use-pathlib] Expand PTH201 to check all PurePath subclasses
* Bug fixes
* [flake8-blind-except] Change BLE001 to correctly parse exception tuples
* [flake8-errmsg] Exclude typing.cast from EM101
* [flake8-simplify] Fix raw string handling in SIM905 for embedded quotes
* [flake8-import-conventions] Avoid false positives for NFKC-normalized __debug__ import aliases in ICN001
* [isort] Fix syntax error after docstring ending with backslash (I002)
* [pylint] Mark PLC0207 fixes as unsafe when *args unpacking is present
* [pyupgrade] Prevent infinite loop with I002 (UP010, UP035)
* [ruff] Parenthesize generator expressions in f-strings (RUF010)
* Rule changes
* [eradicate] Don't flag pyrefly pragmas as unused code (ERA001)
* Documentation
* Replace "associative" with "commutative" in docs for RUF036
* Fix copy and line separator colors in dark mode
* Fix link to typing documentation
* [refurb] Make more examples error out-of-the-box
* Other changes
* Include column numbers in GitLab output format
* Always expand tabs to four spaces in diagnostics
* Update pre-commit's ruff id
OBS-URL: https://build.opensuse.org/request/show/1298595
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=80
* Preview features
* [flake8-use-pathlib] Expand PTH201 to check all PurePath subclasses
* Bug fixes
* [flake8-blind-except] Change BLE001 to correctly parse exception tuples
* [flake8-errmsg] Exclude typing.cast from EM101
* [flake8-simplify] Fix raw string handling in SIM905 for embedded quotes
* [flake8-import-conventions] Avoid false positives for NFKC-normalized __debug__ import aliases in ICN001
* [isort] Fix syntax error after docstring ending with backslash (I002)
* [pylint] Mark PLC0207 fixes as unsafe when *args unpacking is present
* [pyupgrade] Prevent infinite loop with I002 (UP010, UP035)
* [ruff] Parenthesize generator expressions in f-strings (RUF010)
* Rule changes
* [eradicate] Don't flag pyrefly pragmas as unused code (ERA001)
* Documentation
* Replace "associative" with "commutative" in docs for RUF036
* Fix copy and line separator colors in dark mode
* Fix link to typing documentation
* [refurb] Make more examples error out-of-the-box
* Other changes
* Include column numbers in GitLab output format
* Always expand tabs to four spaces in diagnostics
* Update pre-commit's ruff id
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=171
- update to 0.12.7:
* \[`flake8-commas`\] Add support for trailing comma checks in
type parameter lists (`COM812`, `COM819`)
* \[`pylint`\] Implement auto-fix for `missing-maxsplit-arg`
(`PLC0207`)
* \[`ruff`\] Offer fixes for `RUF039` in more cases
* Support `.pyi` files in ruff analyze graph
* \[`flake8-pyi`\] Preserve inline comment in ellipsis removal
(`PYI013`)
* \[`perflint`\] Ignore rule if target is `global` or
`nonlocal` (`PERF401`)
* \[`pyupgrade`\] Fix `UP030` to avoid modifying double curly
braces in format strings
* \[`refurb`\] Ignore decorated functions for `FURB118`
* \[`refurb`\] Mark `int` and `bool` cases for
`Decimal.from_float` as safe fixes (`FURB164`)
* \[`ruff`\] Fix `RUF033` for named default expressions
OBS-URL: https://build.opensuse.org/request/show/1296552
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=79
* \[`flake8-commas`\] Add support for trailing comma checks in
type parameter lists (`COM812`, `COM819`)
* \[`pylint`\] Implement auto-fix for `missing-maxsplit-arg`
(`PLC0207`)
* \[`ruff`\] Offer fixes for `RUF039` in more cases
* Support `.pyi` files in ruff analyze graph
* \[`flake8-pyi`\] Preserve inline comment in ellipsis removal
(`PYI013`)
* \[`perflint`\] Ignore rule if target is `global` or
`nonlocal` (`PERF401`)
* \[`pyupgrade`\] Fix `UP030` to avoid modifying double curly
braces in format strings
* \[`refurb`\] Ignore decorated functions for `FURB118`
* \[`refurb`\] Mark `int` and `bool` cases for
`Decimal.from_float` as safe fixes (`FURB164`)
* \[`ruff`\] Fix `RUF033` for named default expressions
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=169
- update to 0.12.5:
* \[`flake8-use-pathlib`\] Add autofix for `PTH101`, `PTH104`,
`PTH105`, `PTH121`
* \[`ruff`\] Support byte strings (`RUF055`)
* Fix `unreachable` panic in parser
* \[`flake8-pyi`\] Skip fix if all `Union` members are `None`
(`PYI016`)
* \[`perflint`\] Parenthesize generator expressions (`PERF401`)
* \[`pylint`\] Handle empty comments after line continuation
(`PLR2044`)
allow new fixes (TC001, TC002, TC003, UP037, RUF013)
* [flake8-use-pathlib] Add autofix for PTH109
* [pylint] Detect indirect pathlib.Path usages for unspecified-encoding (PLW1514)
* [flake8-bugbear] Fix B017 false negatives for keyword exception arguments
* [flake8-use-pathlib] Fix false negative on direct Path() instantiation (PTH210)
* [flake8-django] Fix DJ008 false positive for abstract models with type-annotated abstract field
* [isort] Fix I002 import insertion after docstring with multiple string statements
* [isort] Treat form feed as valid whitespace before a semicolon
* [pydoclint] Fix SyntaxError from fixes with line continuations (D201, D202)
* [refurb] FURB164 fix should validate arguments and should usually be marked unsafe
* [flake8-use-pathlib] Skip single dots for invalid-pathlib-with-suffix (PTH210) on versions >= 3.14
* [pep8_naming] Avoid false positives on standard library functions with uppercase names (N802)
* [pycodestyle] Handle brace escapes for t-strings in logical lines
* [pylint] Extend invalid string character rules to include t-strings
* [ruff] Allow strict kwarg when checking for starmap-zip (RUF058) in Python 3.14+
* [flake8-type-checking] Make TC010 docs example more realistic
* [flake8-bugbear] Support non-context-manager calls in B017
* [flake8-use-pathlib] Add autofixes for PTH100, PTH106, PTH107, PTH108, PTH110, PTH111, PTH112, PTH113, PTH114, PTH115, PTH117, PTH119, PTH120
* [flake8-use-pathlib] Add autofixes for PTH203, PTH204, PTH205
OBS-URL: https://build.opensuse.org/request/show/1295811
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=78
* \[`flake8-use-pathlib`\] Add autofix for `PTH101`, `PTH104`,
`PTH105`, `PTH121`
* \[`ruff`\] Support byte strings (`RUF055`)
* Fix `unreachable` panic in parser
* \[`flake8-pyi`\] Skip fix if all `Union` members are `None`
(`PYI016`)
* \[`perflint`\] Parenthesize generator expressions (`PERF401`)
* \[`pylint`\] Handle empty comments after line continuation
(`PLR2044`)
allow new fixes (TC001, TC002, TC003, UP037, RUF013)
* [flake8-use-pathlib] Add autofix for PTH109
* [pylint] Detect indirect pathlib.Path usages for unspecified-encoding (PLW1514)
* Bug fixes
* [flake8-bugbear] Fix B017 false negatives for keyword exception arguments
* [flake8-use-pathlib] Fix false negative on direct Path() instantiation (PTH210)
* [flake8-django] Fix DJ008 false positive for abstract models with type-annotated abstract field
* [isort] Fix I002 import insertion after docstring with multiple string statements
* [isort] Treat form feed as valid whitespace before a semicolon
* [pydoclint] Fix SyntaxError from fixes with line continuations (D201, D202)
* [refurb] FURB164 fix should validate arguments and should usually be marked unsafe
* Rule changes
* [flake8-use-pathlib] Skip single dots for invalid-pathlib-with-suffix (PTH210) on versions >= 3.14
* [pep8_naming] Avoid false positives on standard library functions with uppercase names (N802)
* [pycodestyle] Handle brace escapes for t-strings in logical lines
* [pylint] Extend invalid string character rules to include t-strings
* [ruff] Allow strict kwarg when checking for starmap-zip (RUF058) in Python 3.14+
* Documentation
* [flake8-type-checking] Make TC010 docs example more realistic
* [flake8-bugbear] Support non-context-manager calls in B017
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=167
- update to 0.12.4
* Preview features
* [flake8-type-checking, pyupgrade, ruff] Add from __future__ import annotations when it would
allow new fixes (TC001, TC002, TC003, UP037, RUF013)
* [flake8-use-pathlib] Add autofix for PTH109
* [pylint] Detect indirect pathlib.Path usages for unspecified-encoding (PLW1514)
* Bug fixes
* [flake8-bugbear] Fix B017 false negatives for keyword exception arguments
* [flake8-use-pathlib] Fix false negative on direct Path() instantiation (PTH210)
* [flake8-django] Fix DJ008 false positive for abstract models with type-annotated abstract field
* [isort] Fix I002 import insertion after docstring with multiple string statements
* [isort] Treat form feed as valid whitespace before a semicolon
* [pydoclint] Fix SyntaxError from fixes with line continuations (D201, D202)
* [refurb] FURB164 fix should validate arguments and should usually be marked unsafe
* Rule changes
* [flake8-use-pathlib] Skip single dots for invalid-pathlib-with-suffix (PTH210) on versions >= 3.14
* [pep8_naming] Avoid false positives on standard library functions with uppercase names (N802)
* [pycodestyle] Handle brace escapes for t-strings in logical lines
* [pylint] Extend invalid string character rules to include t-strings
* [ruff] Allow strict kwarg when checking for starmap-zip (RUF058) in Python 3.14+
* Documentation
* [flake8-type-checking] Make TC010 docs example more realistic
* Make more documentation examples error out-of-the-box
OBS-URL: https://build.opensuse.org/request/show/1294441
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=77
* Preview features
* [flake8-type-checking, pyupgrade, ruff] Add from __future__ import annotations when it would
allow new fixes (TC001, TC002, TC003, UP037, RUF013)
* [flake8-use-pathlib] Add autofix for PTH109
* [pylint] Detect indirect pathlib.Path usages for unspecified-encoding (PLW1514)
* Bug fixes
* [flake8-bugbear] Fix B017 false negatives for keyword exception arguments
* [flake8-use-pathlib] Fix false negative on direct Path() instantiation (PTH210)
* [flake8-django] Fix DJ008 false positive for abstract models with type-annotated abstract field
* [isort] Fix I002 import insertion after docstring with multiple string statements
* [isort] Treat form feed as valid whitespace before a semicolon
* [pydoclint] Fix SyntaxError from fixes with line continuations (D201, D202)
* [refurb] FURB164 fix should validate arguments and should usually be marked unsafe
* Rule changes
* [flake8-use-pathlib] Skip single dots for invalid-pathlib-with-suffix (PTH210) on versions >= 3.14
* [pep8_naming] Avoid false positives on standard library functions with uppercase names (N802)
* [pycodestyle] Handle brace escapes for t-strings in logical lines
* [pylint] Extend invalid string character rules to include t-strings
* [ruff] Allow strict kwarg when checking for starmap-zip (RUF058) in Python 3.14+
* Documentation
* [flake8-type-checking] Make TC010 docs example more realistic
* Make more documentation examples error out-of-the-box
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=165
- update to 0.12.3:
* Preview features
* [flake8-bugbear] Support non-context-manager calls in B017
* [flake8-use-pathlib] Add autofixes for PTH100, PTH106, PTH107, PTH108, PTH110, PTH111, PTH112, PTH113, PTH114, PTH115, PTH117, PTH119, PTH120
* [flake8-use-pathlib] Add autofixes for PTH203, PTH204, PTH205
* Bug fixes
* [flake8-return] Fix false-positive for variables used inside nested functions in RET504
* Treat form feed as valid whitespace before a line continuation
* [flake8-type-checking] Fix syntax error introduced by fix (TC008)
* [pyupgrade] Keyword arguments in super should suppress the UP008 fix
* Documentation
* [flake8-pyi] Make example error out-of-the-box (PYI007, PYI008)
* [flake8-simplify] Make example error out-of-the-box (SIM116)
* [flake8-type-checking] Make example error out-of-the-box (TC001)
* [flake8-use-pathlib] Make example error out-of-the-box (PTH210)
* [pycodestyle] Make example error out-of-the-box (E272)
* [pycodestyle] Make example not raise unnecessary SyntaxError (E114)
* [pydoclint] Make example error out-of-the-box (DOC501)
* [pylint, pyupgrade] Fix syntax errors in examples (PLW1501, UP028)
* [pylint] Update missing-maxsplit-arg docs and error to suggest proper usage (PLC0207)
* [flake8-bandit] Make example error out-of-the-box (S412)
OBS-URL: https://build.opensuse.org/request/show/1292499
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=76
* Preview features
* [flake8-bugbear] Support non-context-manager calls in B017
* [flake8-use-pathlib] Add autofixes for PTH100, PTH106, PTH107, PTH108, PTH110, PTH111, PTH112, PTH113, PTH114, PTH115, PTH117, PTH119, PTH120
* [flake8-use-pathlib] Add autofixes for PTH203, PTH204, PTH205
* Bug fixes
* [flake8-return] Fix false-positive for variables used inside nested functions in RET504
* Treat form feed as valid whitespace before a line continuation
* [flake8-type-checking] Fix syntax error introduced by fix (TC008)
* [pyupgrade] Keyword arguments in super should suppress the UP008 fix
* Documentation
* [flake8-pyi] Make example error out-of-the-box (PYI007, PYI008)
* [flake8-simplify] Make example error out-of-the-box (SIM116)
* [flake8-type-checking] Make example error out-of-the-box (TC001)
* [flake8-use-pathlib] Make example error out-of-the-box (PTH210)
* [pycodestyle] Make example error out-of-the-box (E272)
* [pycodestyle] Make example not raise unnecessary SyntaxError (E114)
* [pydoclint] Make example error out-of-the-box (DOC501)
* [pylint, pyupgrade] Fix syntax errors in examples (PLW1501, UP028)
* [pylint] Update missing-maxsplit-arg docs and error to suggest proper usage (PLC0207)
* [flake8-bandit] Make example error out-of-the-box (S412)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=163
- update to 0.12.2:
* [`flake8-pyi`] Expand `Optional[A]` to `A | None`
(`PYI016`)
* [`pyupgrade`] Mark `UP008` fix safe if no comments are in
range
* [`flake8-comprehensions`] Fix `C420` to prepend whitespace
when needed
* [`perflint`] Fix `PERF403` panic on attribute or
subscription loop variable
* [`pydocstyle`] Fix `D413` infinite loop for parenthesized
docstring
* [`pylint`] Fix `PLW0108` autofix introducing a syntax error
when the lambda's body contains an assignment expression
* [`refurb`] Fix false positive on empty tuples (`FURB168`)
* [`ruff`] Allow more `field` calls from `attrs` (`RUF009`)
* [`ruff`] Fix syntax error introduced for an empty string
followed by a u-prefixed string (`UP025`)
* [flake8-errmsg] Extend EM101 to support byte strings
* [flake8-use-pathlib] Add autofix for PTH202
* [pygrep-hooks] Add AsyncMock methods to invalid-mock-access (PGH005)
* [pylint] Ignore __init__.py files in (PLC0414)
* [ruff] Trigger RUF037 for empty string and byte strings
* [formatter] Fix missing blank lines before decorated classes in .pyi files
* Avoid generating diagnostics with per-file ignores
* Handle parenthesized arguments in remove_argument
* [flake8-logging] Avoid false positive for exc_info=True outside logger.exception (LOG014)
* [flake8-pytest-style] Enforce pytest import for decorators
* [flake8-pytest-style] Mark autofix for PT001 and PT023 as unsafe if there's comments in the decorator
* [flake8-pytest-style] PT001/PT023 fix makes syntax error on parenthesized decorator
OBS-URL: https://build.opensuse.org/request/show/1290670
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=75
* [`flake8-pyi`] Expand `Optional[A]` to `A | None`
(`PYI016`)
* [`pyupgrade`] Mark `UP008` fix safe if no comments are in
range
* [`flake8-comprehensions`] Fix `C420` to prepend whitespace
when needed
* [`perflint`] Fix `PERF403` panic on attribute or
subscription loop variable
* [`pydocstyle`] Fix `D413` infinite loop for parenthesized
docstring
* [`pylint`] Fix `PLW0108` autofix introducing a syntax error
when the lambda's body contains an assignment expression
* [`refurb`] Fix false positive on empty tuples (`FURB168`)
* [`ruff`] Allow more `field` calls from `attrs` (`RUF009`)
* [`ruff`] Fix syntax error introduced for an empty string
followed by a u-prefixed string (`UP025`)
* [flake8-errmsg] Extend EM101 to support byte strings
* [flake8-use-pathlib] Add autofix for PTH202
* [pygrep-hooks] Add AsyncMock methods to invalid-mock-access (PGH005)
* [pylint] Ignore __init__.py files in (PLC0414)
* [ruff] Trigger RUF037 for empty string and byte strings
* [formatter] Fix missing blank lines before decorated classes in .pyi files
* Bug fixes
* Avoid generating diagnostics with per-file ignores
* Handle parenthesized arguments in remove_argument
* [flake8-logging] Avoid false positive for exc_info=True outside logger.exception (LOG014)
* [flake8-pytest-style] Enforce pytest import for decorators
* [flake8-pytest-style] Mark autofix for PT001 and PT023 as unsafe if there's comments in the decorator
* [flake8-pytest-style] PT001/PT023 fix makes syntax error on parenthesized decorator
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=161
- update to 0.12.1
* Preview features
* [flake8-errmsg] Extend EM101 to support byte strings
* [flake8-use-pathlib] Add autofix for PTH202
* [pygrep-hooks] Add AsyncMock methods to invalid-mock-access (PGH005)
* [pylint] Ignore __init__.py files in (PLC0414)
* [ruff] Trigger RUF037 for empty string and byte strings
* [formatter] Fix missing blank lines before decorated classes in .pyi files
* Bug fixes
* Avoid generating diagnostics with per-file ignores
* Handle parenthesized arguments in remove_argument
* [flake8-logging] Avoid false positive for exc_info=True outside logger.exception (LOG014)
* [flake8-pytest-style] Enforce pytest import for decorators
* [flake8-pytest-style] Mark autofix for PT001 and PT023 as unsafe if there's comments in the decorator
* [flake8-pytest-style] PT001/PT023 fix makes syntax error on parenthesized decorator
* [flake8-raise] Make fix unsafe if it deletes comments (RSE102)
* [flake8-simplify] Fix SIM911 autofix creating a syntax error
* [flake8-simplify] Fix false negatives for shadowed bindings (SIM910, SIM911)
* [flake8-simplify] Preserve original behavior for except () and bare except (SIM105)
* [flake8-pyi] Fix PYI041's fix causing TypeError with None | None | ...
* [perflint] Fix PERF101 autofix creating a syntax error and mark autofix as unsafe if there are comments in the list call expr
* [perflint] Fix false negative in PERF401
* [pylint] Avoid flattening nested min/max when outer call has single argument (PLW3301)
* [pylint] Fix PLC2801 autofix creating a syntax error
* [pylint] Mark PLE0241 autofix as unsafe if there's comments in the base classes
* [pylint] Suppress PLE2510/PLE2512/PLE2513/PLE2514/PLE2515 autofix if the text contains an odd number of backslashes
* [refurb] Detect more exotic float literals in FURB164
* [refurb] Fix FURB163 autofix creating a syntax error for yield expressions
* [refurb] Mark FURB129 autofix as unsafe if there's comments in the readlines call
* [ruff] Fix false positives and negatives in RUF010
OBS-URL: https://build.opensuse.org/request/show/1288970
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=74
* Preview features
* [flake8-errmsg] Extend EM101 to support byte strings
* [flake8-use-pathlib] Add autofix for PTH202
* [pygrep-hooks] Add AsyncMock methods to invalid-mock-access (PGH005)
* [pylint] Ignore __init__.py files in (PLC0414)
* [ruff] Trigger RUF037 for empty string and byte strings
* [formatter] Fix missing blank lines before decorated classes in .pyi files
* Bug fixes
* Avoid generating diagnostics with per-file ignores
* Handle parenthesized arguments in remove_argument
* [flake8-logging] Avoid false positive for exc_info=True outside logger.exception (LOG014)
* [flake8-pytest-style] Enforce pytest import for decorators
* [flake8-pytest-style] Mark autofix for PT001 and PT023 as unsafe if there's comments in the decorator
* [flake8-pytest-style] PT001/PT023 fix makes syntax error on parenthesized decorator
* [flake8-raise] Make fix unsafe if it deletes comments (RSE102)
* [flake8-simplify] Fix SIM911 autofix creating a syntax error
* [flake8-simplify] Fix false negatives for shadowed bindings (SIM910, SIM911)
* [flake8-simplify] Preserve original behavior for except () and bare except (SIM105)
* [flake8-pyi] Fix PYI041's fix causing TypeError with None | None | ...
* [perflint] Fix PERF101 autofix creating a syntax error and mark autofix as unsafe if there are comments in the list call expr
* [perflint] Fix false negative in PERF401
* [pylint] Avoid flattening nested min/max when outer call has single argument (PLW3301)
* [pylint] Fix PLC2801 autofix creating a syntax error
* [pylint] Mark PLE0241 autofix as unsafe if there's comments in the base classes
* [pylint] Suppress PLE2510/PLE2512/PLE2513/PLE2514/PLE2515 autofix if the text contains an odd number of backslashes
* [refurb] Detect more exotic float literals in FURB164
* [refurb] Fix FURB163 autofix creating a syntax error for yield expressions
* [refurb] Mark FURB129 autofix as unsafe if there's comments in the readlines call
* [ruff] Fix false positives and negatives in RUF010
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=159
- update to 0.11.11:
* Preview features
* [airflow] Add autofixes for AIR302 and AIR312
* [airflow] Move rules from AIR312 to AIR302
* [airflow] Update AIR301 and AIR311 with the latest Airflow implementations
* [flake8-simplify] Enable fix in preview mode (SIM117)
* Bug fixes
* Fix inconsistent formatting of match-case on [] and _
* [pylint] Fix PLW1514 not recognizing the encoding positional argument of codecs.open
* CLI
* Add full option name in formatter warning
* Documentation
* Fix rendering of admonition in docs
* [flake8-print] Improve print/pprint docs for T201 and T203
* [flake8-simplify] Add fix safety section (SIM110,SIM210)
* [pylint] Fix docs example that produced different output (PLW0603)
OBS-URL: https://build.opensuse.org/request/show/1279586
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=70
* Preview features
* [airflow] Add autofixes for AIR302 and AIR312
* [airflow] Move rules from AIR312 to AIR302
* [airflow] Update AIR301 and AIR311 with the latest Airflow implementations
* [flake8-simplify] Enable fix in preview mode (SIM117)
* Bug fixes
* Fix inconsistent formatting of match-case on [] and _
* [pylint] Fix PLW1514 not recognizing the encoding positional argument of codecs.open
* CLI
* Add full option name in formatter warning
* Documentation
* Fix rendering of admonition in docs
* [flake8-print] Improve print/pprint docs for T201 and T203
* [flake8-simplify] Add fix safety section (SIM110,SIM210)
* [pylint] Fix docs example that produced different output (PLW0603)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=151
* Preview features
* Default to latest supported Python version for version-related syntax errors
* Implement deferred annotations for Python 3.14
* [airflow] Fix SQLTableCheckOperator typo (AIR302)
* [airflow] Remove airflow.utils.dag_parsing_context.get_parsing_context (AIR301)
* [airflow] Skip attribute check in try catch block (AIR301)
* [flake8-bandit] Mark tuples of string literals as trusted input in S603
* [isort] Check full module path against project root(s) when categorizing first-party imports
* [ruff] Add new rule in-empty-collection (RUF060)
* Bug fixes
* Fix missing combine call for lint.typing-extensions setting
* [flake8-async] Fix module name in ASYNC110, ASYNC115, and ASYNC116 fixes
* [pyupgrade] Add spaces between tokens as necessary to avoid syntax errors in UP018 autofix
* [refurb] Fix false positive for float and complex numbers in FURB116
* [parser] Flag single unparenthesized generator expr with trailing comma in arguments.
* Documentation
* Add instructions on how to upgrade to a newer Rust version
* Update code of conduct email address
* Add fix safety sections to PLC2801, PLR1722, and RUF013
* Add link to check-typed-exception from S110 and S112
* Other changes
* Allow passing a virtual environment to ruff analyze graph
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=148
- update to 0.11.8
* Preview features
* \[`airflow`\] Apply auto fixes to cases where the names have changed in Airflow 3 (`AIR302`, `AIR311`)
* \[`airflow`\] Extend `AIR301` rule
* \[`airflow`\] Update existing `AIR302` rules with better suggestions
* \[`refurb`\] Mark fix as safe for `readlines-in-for` (`FURB129`)
* [syntax-errors] `nonlocal` declaration at module level
* [syntax-errors] Detect single starred expression assignment `x = *y`
* Bug fixes
* \[`flake8-pyi`\] Ensure `Literal[None,] | Literal[None,]` is not autofixed to `None | None` (`PYI061`)
* \[`flake8-use-pathlib`\] Avoid suggesting `Path.iterdir()` for `os.listdir` with file descriptor (`PTH208`)
* \[`flake8-use-pathlib`\] Fix `PTH104` false positive when `rename` is passed a file descriptor
* \[`flake8-use-pathlib`\] Fix `PTH116` false positive when `stat` is passed a file descriptor
* \[`flake8-use-pathlib`\] Fix `PTH123` false positive when `open` is passed a file descriptor from a function call
* \[`pycodestyle`\] Fix duplicated diagnostic in `E712`
* \[`pylint`\] Detect `global` declarations in module scope (`PLE0118`)
* [syntax-errors] Make `async-comprehension-in-sync-comprehension` more specific
* Configuration
* Add option to disable `typing_extensions` imports
* Documentation
* Fix example syntax for the `lint.pydocstyle.ignore-var-parameters` option
* Add fix safety sections (`ASYNC116`, `FLY002`, `D200`, `RUF005`, `RUF017`, `RUF027`, `RUF028`, `RUF057`)
* Other changes
* Add Python 3.14 to configuration options
* Make syntax error for unparenthesized except tuples version specific to before 3.14
OBS-URL: https://build.opensuse.org/request/show/1274047
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=68
* Preview features
* \[`airflow`\] Apply auto fixes to cases where the names have changed in Airflow 3 (`AIR302`, `AIR311`)
* \[`airflow`\] Extend `AIR301` rule
* \[`airflow`\] Update existing `AIR302` rules with better suggestions
* \[`refurb`\] Mark fix as safe for `readlines-in-for` (`FURB129`)
* [syntax-errors] `nonlocal` declaration at module level
* [syntax-errors] Detect single starred expression assignment `x = *y`
* Bug fixes
* \[`flake8-pyi`\] Ensure `Literal[None,] | Literal[None,]` is not autofixed to `None | None` (`PYI061`)
* \[`flake8-use-pathlib`\] Avoid suggesting `Path.iterdir()` for `os.listdir` with file descriptor (`PTH208`)
* \[`flake8-use-pathlib`\] Fix `PTH104` false positive when `rename` is passed a file descriptor
* \[`flake8-use-pathlib`\] Fix `PTH116` false positive when `stat` is passed a file descriptor
* \[`flake8-use-pathlib`\] Fix `PTH123` false positive when `open` is passed a file descriptor from a function call
* \[`pycodestyle`\] Fix duplicated diagnostic in `E712`
* \[`pylint`\] Detect `global` declarations in module scope (`PLE0118`)
* [syntax-errors] Make `async-comprehension-in-sync-comprehension` more specific
* Configuration
* Add option to disable `typing_extensions` imports
* Documentation
* Fix example syntax for the `lint.pydocstyle.ignore-var-parameters` option
* Add fix safety sections (`ASYNC116`, `FLY002`, `D200`, `RUF005`, `RUF017`, `RUF027`, `RUF028`, `RUF057`)
* Other changes
* Add Python 3.14 to configuration options
* Make syntax error for unparenthesized except tuples version specific to before 3.14
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=146
- update to 0.11.7:
* \[`airflow`\] Apply auto fixes to cases where the names have
changed in Airflow 3 (`AIR301`)
* \[`perflint`\] Implement fix for `manual-dict-comprehension`
(`PERF403`)
* [syntax-errors] Make duplicate parameter names a semantic
error
* \[`flake8-type-checking`\] Visit keyword arguments in checks
involving `typing.cast`/`typing.NewType` arguments
* \[`pyupgrade`\] Preserve parenthesis when fixing native
literals containing newlines (`UP018`)
* \[`refurb`\] Mark the `FURB161` fix unsafe except for
integers and booleans
* Avoid adding whitespace to the end of a docstring after an escaped quote
* Raise syntax error when \ is at end of file
* [airflow] Add missing AIR302 attribute check
* [airflow] Expand module path check to individual symbols (AIR302)
* [airflow] Extract AIR312 from AIR302 rules (AIR302, AIR312)
* [airflow] Update oudated AIR301, AIR302 rules
* [syntax-errors] Async comprehension in sync comprehension
* [syntax-errors] Check annotations in annotated assignments
* [syntax-errors] Extend annotation checks to await
* [flake8-pie] Avoid false positive for multiple assignment with auto() (PIE796)
* [ruff] Fix RUF100 to detect unused file-level noqa directives with specific codes
* [flake8-pytest-style] Avoid false positive for legacy form of pytest.raises (PT011)
* Fix formatting of "See Style Guide" link
* [ruff] Implement invalid-rule-code as RUF102
* [syntax-errors] Detect duplicate keys in match mapping patterns
* [syntax-errors] Detect duplicate attributes in match class patterns
OBS-URL: https://build.opensuse.org/request/show/1272955
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=67
* \[`airflow`\] Apply auto fixes to cases where the names have
changed in Airflow 3 (`AIR301`)
* \[`perflint`\] Implement fix for `manual-dict-comprehension`
(`PERF403`)
* [syntax-errors] Make duplicate parameter names a semantic
error
* \[`flake8-type-checking`\] Visit keyword arguments in checks
involving `typing.cast`/`typing.NewType` arguments
* \[`pyupgrade`\] Preserve parenthesis when fixing native
literals containing newlines (`UP018`)
* \[`refurb`\] Mark the `FURB161` fix unsafe except for
integers and booleans
* Avoid adding whitespace to the end of a docstring after an escaped quote
* Raise syntax error when \ is at end of file
* [airflow] Add missing AIR302 attribute check
* [airflow] Expand module path check to individual symbols (AIR302)
* [airflow] Extract AIR312 from AIR302 rules (AIR302, AIR312)
* [airflow] Update oudated AIR301, AIR302 rules
* [syntax-errors] Async comprehension in sync comprehension
* [syntax-errors] Check annotations in annotated assignments
* [syntax-errors] Extend annotation checks to await
* Bug fixes
* [flake8-pie] Avoid false positive for multiple assignment with auto() (PIE796)
* Rule changes
* [ruff] Fix RUF100 to detect unused file-level noqa directives with specific codes
* [flake8-pytest-style] Avoid false positive for legacy form of pytest.raises (PT011)
* Documentation
* Fix formatting of "See Style Guide" link
* [ruff] Implement invalid-rule-code as RUF102
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=144
- update to 0.11.4
* Preview features
* [ruff] Implement invalid-rule-code as RUF102
* [syntax-errors] Detect duplicate keys in match mapping patterns
* [syntax-errors] Detect duplicate attributes in match class patterns
* [syntax-errors] Detect invalid syntax in annotations
* [airflow] Add more autofixes for AIR302
* [airflow] Move AIR301 to AIR002
* [airflow] Move AIR302 to AIR301 and AIR303 to AIR302
* [flake8-bandit] Mark str and list[str] literals as trusted input (S603)
* [ruff] Support slices in RUF005
* [syntax-errors] Start detecting compile-time syntax errors
* [syntax-errors] Duplicate type parameter names
* [syntax-errors] Irrefutable case pattern before final case
* [syntax-errors] Multiple assignments in case pattern
* [syntax-errors] Single starred assignment target
* [syntax-errors] Starred expressions in return, yield, and for
* [syntax-errors] Store to or delete __debug__
* Bug fixes
* [syntax-errors] Fix multiple assignment error for class fields in match patterns
* Don't skip visiting non-tuple slice in typing.Annotated subscripts
* Error instead of panic! when running Ruff from a deleted directory
* [syntax-errors] Fix false positive for parenthesized tuple index
* CLI
* Check pyproject.toml correctly when it is passed via stdin
* Configuration
* [flake8-import-conventions] Add import numpy.typing as npt to default flake8-import-conventions.aliases
* Documentation
* [refurb] Document why UserDict, UserList, and UserString are preferred over dict, list, and str (FURB189)
OBS-URL: https://build.opensuse.org/request/show/1267438
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=64
* Preview features
* [ruff] Implement invalid-rule-code as RUF102
* [syntax-errors] Detect duplicate keys in match mapping patterns
* [syntax-errors] Detect duplicate attributes in match class patterns
* [syntax-errors] Detect invalid syntax in annotations
* [airflow] Add more autofixes for AIR302
* [airflow] Move AIR301 to AIR002
* [airflow] Move AIR302 to AIR301 and AIR303 to AIR302
* [flake8-bandit] Mark str and list[str] literals as trusted input (S603)
* [ruff] Support slices in RUF005
* [syntax-errors] Start detecting compile-time syntax errors
* [syntax-errors] Duplicate type parameter names
* [syntax-errors] Irrefutable case pattern before final case
* [syntax-errors] Multiple assignments in case pattern
* [syntax-errors] Single starred assignment target
* [syntax-errors] Starred expressions in return, yield, and for
* [syntax-errors] Store to or delete __debug__
* Bug fixes
* [syntax-errors] Fix multiple assignment error for class fields in match patterns
* Don't skip visiting non-tuple slice in typing.Annotated subscripts
* Error instead of panic! when running Ruff from a deleted directory
* [syntax-errors] Fix false positive for parenthesized tuple index
* CLI
* Check pyproject.toml correctly when it is passed via stdin
* Configuration
* [flake8-import-conventions] Add import numpy.typing as npt to default flake8-import-conventions.aliases
* Documentation
* [refurb] Document why UserDict, UserList, and UserString are preferred over dict, list, and str (FURB189)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=138
- update to 0.9.10
* Preview features
* [ruff] Add new rule RUF059: Unused unpacked assignment
* [syntax-errors] Detect assignment expressions before Python 3.8
* [syntax-errors] Named expressions in decorators before Python 3.9
* [syntax-errors] Parenthesized keyword argument names after Python 3.8
* [syntax-errors] Positional-only parameters before Python 3.8
* [syntax-errors] Tuple unpacking in return and yield before Python 3.8
* [syntax-errors] Type parameter defaults before Python 3.13
* [syntax-errors] Type parameter lists before Python 3.12
* [syntax-errors] except* before Python 3.11
* [syntax-errors] type statements before Python 3.12
* Bug fixes
* Escape template filenames in glob patterns in configuration
* [flake8-simplify] Exempt unittest context methods for SIM115 rule
* Formatter: Fix syntax error location in notebooks
* [pyupgrade] Do not offer fix when at least one target is global/nonlocal (UP028)
* [flake8-builtins] Ignore variables matching module attribute names (A001)
* [pylint] Convert code keyword argument to a positional argument in fix for (PLR1722)
* CLI
* Move rule code from description to check_name in GitLab output serializer
* Documentation
* [pydocstyle] Clarify that D417 only checks docstrings with an arguments section
- update to 0.9.9
* Preview features
* Fix caching of unsupported-syntax errors
* Start detecting version-related syntax errors in the parser
* Rule changes
* [pylint] Mark fix unsafe (PLW1507)
OBS-URL: https://build.opensuse.org/request/show/1251746
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=60