- 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
* 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
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=129
* Preview features
* Consider __new__ methods as special function type for enforcing class method or static method rules
* [airflow] Improve the internal logic to differentiate deprecated symbols (AIR303)
* [refurb] Manual timezone monkeypatching (FURB162)
* [ruff] Implicit class variable in dataclass (RUF045)
* [ruff] Skip singleton starred expressions for incorrectly-parenthesized-tuple-in-subscript (RUF031)
* [refurb] Check for subclasses includes subscript expressions (FURB189)
* Rule changes
* [flake8-debugger] Also flag sys.breakpointhook and sys.__breakpointhook__ (T100)
* [pycodestyle] Exempt site.addsitedir(...) calls (E402)
* Formatter
* Fix unstable formatting of trailing end-of-line comments of parenthesized attribute values
* Server
* Fix handling of requests received after shutdown message
* Ignore source.organizeImports.ruff and source.fixAll.ruff code actions for a notebook cell
* Include document specific debug info for ruff.printDebugInformation
* Update server to return the debug info as string with ruff.printDebugInformation
* CLI
* Warn on invalid noqa even when there are no diagnostics
* Better error messages while loading configuration extends
* Bug fixes
* [flake8-comprehensions] Handle trailing comma in C403 fix
* [flake8-pyi] Avoid flagging custom-typevar-for-self on metaclass methods (PYI019)
* [pydocstyle] Handle arguments with the same names as sections (D417)
* [pylint] Correct ordering of arguments in fix for if-stmt-min-max (PLR1730)
* [pylint] Do not offer fix for raw strings (PLE251)
* [pyupgrade] Do not upgrade functional TypedDicts with private field names to the class-based syntax (UP013)
* [pyupgrade] Handle micro version numbers correctly (UP036)
* [pyupgrade] Unwrap unary expressions correctly (UP018)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=128
* Consider __new__ methods as special function type for enforcing
class method or static method rules (#13305)
* [airflow] Improve the internal logic to differentiate deprecated
symbols (AIR303) (#16013)
* [refurb] Manual timezone monkeypatching (FURB162) (#16113)
* [ruff] Implicit class variable in dataclass (RUF045) (#14349)
* [ruff] Skip singleton starred expressions for incorrectly-\
parenthesized-tuple-in-subscript (RUF031) (#16083)
* [refurb] Check for subclasses includes subscript expressions (FURB189) (#16155)
* [flake8-debugger] Also flag sys.breakpointhook and
sys.__breakpointhook__ (T100) (#16191)
* [pycodestyle] Exempt site.addsitedir(...) calls (E402) (#16251)
* Fix unstable formatting of trailing end-of-line comments of
parenthesized attribute values (#16187)
* Fix handling of requests received after shutdown message (#16262)
* Ignore source.organizeImports.ruff and source.fixAll.ruff code
actions for a notebook cell (#16154)
* Include document specific debug info for ruff.printDebugInformation (#16215)
* Update server to return the debug info as string with
ruff.printDebugInformation (#16214)
* Warn on invalid noqa even when there are no diagnostics (#16178)
* Better error messages while loading configuration extends (#15658)
* [flake8-comprehensions] Handle trailing comma in C403 fix (#16110)
* [flake8-pyi] Avoid flagging custom-typevar-for-self on metaclass
methods (PYI019) (#16141)
* [pydocstyle] Handle arguments with the same names as sections (D417) (#16011)
* [pylint] Correct ordering of arguments in fix for if-stmt-min-max (PLR1730) (#16080)
* [pylint] Do not offer fix for raw strings (PLE251) (#16132)
* [pyupgrade] Do not upgrade functional TypedDicts with private field
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=126
- update to 0.9.6
* Preview features
* [airflow] Add external_task.{ExternalTaskMarker, ExternalTaskSensor} for AIR302
* [flake8-builtins] Make strict module name comparison optional (A005)
* [flake8-pyi] Extend fix to Python <= 3.9 for redundant-none-literal (PYI061)
* [pylint] Also report when the object isn't a literal (PLE1310)
* [ruff] Implement indented-form-feed (RUF054)
* [ruff] Skip type definitions for missing-f-string-syntax (RUF027)
* Rule changes
* [flake8-annotations] Correct syntax for typing.Union in suggested return type fixes for ANN20x rules
* [flake8-builtins] Match upstream module name comparison (A005)
* [flake8-comprehensions] Detect overshadowed list/set/dict, ignore variadics and named expressions (C417)
* [flake8-pie] Remove following comma correctly when the unpacked dictionary is empty (PIE800)
* [flake8-simplify] Only trigger SIM401 on known dictionaries
* [pylint] Do not report calls when object type and argument type mismatch, remove custom escape handling logic (PLE1310)
* [pyupgrade] Comments within parenthesized value ranges should not affect applicability (UP040)
* [pyupgrade] Don't introduce invalid syntax when upgrading old-style type aliases with parenthesized multiline values (UP040)
* [pyupgrade] Ensure we do not rename two type parameters to the same name (UP049)
* [pyupgrade] [ruff] Don't apply renamings if the new name is shadowed in a scope of one of the references to the binding (UP049, RUF052)
* [ruff] Update RUF009 to behave similar to B008 and ignore attributes with immutable types
* Server
* Root exclusions in the server to project root
* Bug fixes
* [flake8-datetime] Ignore .replace() calls while looking for .astimezone
* [flake8-type-checking] Avoid TC004 false positive where the runtime definition is provided by __getattr__
* Documentation
* Improve ruff-lsp migration document
* Undeprecate ruff.nativeServer
OBS-URL: https://build.opensuse.org/request/show/1244821
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=58
* Preview features
* [airflow] Add external_task.{ExternalTaskMarker, ExternalTaskSensor} for AIR302
* [flake8-builtins] Make strict module name comparison optional (A005)
* [flake8-pyi] Extend fix to Python <= 3.9 for redundant-none-literal (PYI061)
* [pylint] Also report when the object isn't a literal (PLE1310)
* [ruff] Implement indented-form-feed (RUF054)
* [ruff] Skip type definitions for missing-f-string-syntax (RUF027)
* Rule changes
* [flake8-annotations] Correct syntax for typing.Union in suggested return type fixes for ANN20x rules
* [flake8-builtins] Match upstream module name comparison (A005)
* [flake8-comprehensions] Detect overshadowed list/set/dict, ignore variadics and named expressions (C417)
* [flake8-pie] Remove following comma correctly when the unpacked dictionary is empty (PIE800)
* [flake8-simplify] Only trigger SIM401 on known dictionaries
* [pylint] Do not report calls when object type and argument type mismatch, remove custom escape handling logic (PLE1310)
* [pyupgrade] Comments within parenthesized value ranges should not affect applicability (UP040)
* [pyupgrade] Don't introduce invalid syntax when upgrading old-style type aliases with parenthesized multiline values (UP040)
* [pyupgrade] Ensure we do not rename two type parameters to the same name (UP049)
* [pyupgrade] [ruff] Don't apply renamings if the new name is shadowed in a scope of one of the references to the binding (UP049, RUF052)
* [ruff] Update RUF009 to behave similar to B008 and ignore attributes with immutable types
* Server
* Root exclusions in the server to project root
* Bug fixes
* [flake8-datetime] Ignore .replace() calls while looking for .astimezone
* [flake8-type-checking] Avoid TC004 false positive where the runtime definition is provided by __getattr__
* Documentation
* Improve ruff-lsp migration document
* Undeprecate ruff.nativeServer
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=124
- update to 0.9.5
* Preview features
* Recognize all symbols named TYPE_CHECKING for in_type_checking_block
* [flake8-comprehensions] Handle builtins at top of file correctly for unnecessary-dict-comprehension-for-iterable (C420)
* [flake8-logging] .exception() and exc_info= outside exception handlers (LOG004, LOG014)
* [flake8-pyi] Fix incorrect behaviour of custom-typevar-return-type preview-mode autofix if typing was already imported (PYI019)
* [flake8-pyi] Fix more complex cases (PYI019)
* [flake8-pyi] Make PYI019 autofixable for .py files in preview mode as well as stubs
* [flake8-pyi] Remove type parameter correctly when it is the last (PYI019)
* [pylint] Fix missing parens in unsafe fix for unnecessary-dunder-call (PLC2801)
* [pyupgrade] Better messages and diagnostic range (UP015)
* [pyupgrade] Rename private type parameters in PEP 695 generics (UP049)
* [refurb] Also report non-name expressions (FURB169)
* [refurb] Mark fix as unsafe if there are comments (FURB171)
* [ruff] Classes with mixed type variable style (RUF053)
* [airflow] BashOperator has been moved to airflow.providers.standard.operators.bash.BashOperator (AIR302)
* [flake8-pyi] Add autofix for unused-private-type-var (PYI018)
* [flake8-pyi] Significantly improve accuracy of PYI019 if preview mode is enabled
* Rule changes
* Preserve triple quotes and prefixes for strings
* [flake8-comprehensions] Skip when TypeError present from too many (kw)args for C410,C411, and C418
* [flake8-pyi] Rename PYI019 and improve its diagnostic message
* [pep8-naming] Ignore @override methods (N803)
* [pyupgrade] Reuse replacement logic from UP046 and UP047 to preserve more comments (UP040)
* [ruff] Analyze deferred annotations before enforcing mutable-(data)class-default and function-call-in-dataclass-default-argument (RUF008,RUF009,RUF012)
* [pycodestyle] Exempt sys.path += ... calls (E402)
* Configuration
* Config error only when flake8-import-conventions alias conflicts with isort.required-imports bound name
* Workaround Even Better TOML crash related to allOf
* Bug fixes
OBS-URL: https://build.opensuse.org/request/show/1244445
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=57
* Preview features
* Recognize all symbols named TYPE_CHECKING for in_type_checking_block
* [flake8-comprehensions] Handle builtins at top of file correctly for unnecessary-dict-comprehension-for-iterable (C420)
* [flake8-logging] .exception() and exc_info= outside exception handlers (LOG004, LOG014)
* [flake8-pyi] Fix incorrect behaviour of custom-typevar-return-type preview-mode autofix if typing was already imported (PYI019)
* [flake8-pyi] Fix more complex cases (PYI019)
* [flake8-pyi] Make PYI019 autofixable for .py files in preview mode as well as stubs
* [flake8-pyi] Remove type parameter correctly when it is the last (PYI019)
* [pylint] Fix missing parens in unsafe fix for unnecessary-dunder-call (PLC2801)
* [pyupgrade] Better messages and diagnostic range (UP015)
* [pyupgrade] Rename private type parameters in PEP 695 generics (UP049)
* [refurb] Also report non-name expressions (FURB169)
* [refurb] Mark fix as unsafe if there are comments (FURB171)
* [ruff] Classes with mixed type variable style (RUF053)
* [airflow] BashOperator has been moved to airflow.providers.standard.operators.bash.BashOperator (AIR302)
* [flake8-pyi] Add autofix for unused-private-type-var (PYI018)
* [flake8-pyi] Significantly improve accuracy of PYI019 if preview mode is enabled
* Rule changes
* Preserve triple quotes and prefixes for strings
* [flake8-comprehensions] Skip when TypeError present from too many (kw)args for C410,C411, and C418
* [flake8-pyi] Rename PYI019 and improve its diagnostic message
* [pep8-naming] Ignore @override methods (N803)
* [pyupgrade] Reuse replacement logic from UP046 and UP047 to preserve more comments (UP040)
* [ruff] Analyze deferred annotations before enforcing mutable-(data)class-default and function-call-in-dataclass-default-argument (RUF008,RUF009,RUF012)
* [pycodestyle] Exempt sys.path += ... calls (E402)
* Configuration
* Config error only when flake8-import-conventions alias conflicts with isort.required-imports bound name
* Workaround Even Better TOML crash related to allOf
* Bug fixes
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=122
* Preview features
- [airflow] Extend airflow context parameter check for BaseOperator.execute (AIR302) (#15713)
- [airflow] Update AIR302 to check for deprecated context keys (#15144)
- [flake8-bandit] Permit suspicious imports within stub files (S4) (#15822)
- [pylint] Do not trigger PLR6201 on empty collections (#15732)
- [refurb] Do not emit diagnostic when loop variables are used outside loop body (FURB122) (#15757)
- [ruff] Add support for more re patterns (RUF055) (#15764)
- [ruff] Check for shadowed map before suggesting fix (RUF058) (#15790)
- [ruff] Do not emit diagnostic when all arguments to zip() are variadic (RUF058) (#15744)
- [ruff] Parenthesize fix when argument spans multiple lines for unnecessary-round (RUF057) (#15703)
* Rule changes
- Preserve quote style in generated code (#15726, #15778, #15794)
- [flake8-bugbear] Exempt NewType calls where the original type is immutable (B008) (#15765)
- [pylint] Honor banned top-level imports by TID253 in PLC0415. (#15628)
- [pyupgrade] Ignore is_typeddict and TypedDict for deprecated-import (UP035) (#15800)
* CLI
- Fix formatter warning message for flake8-quotes option (#15788)
- Implement tab autocomplete for ruff config (#15603)
* Bug fixes
- [flake8-comprehensions] Do not emit unnecessary-map diagnostic when lambda has different arity (C417) (#15802)
- [flake8-comprehensions] Parenthesize sorted when needed for unnecessary-call-around-sorted (C413) (#15825)
- [pyupgrade] Handle end-of-line comments for quoted-annotation (UP037) (#15824)
* Documentation
- Add missing config docstrings (#15803)
- Add references to trio.run_process and anyio.run_process (#15761)
- Use uv init --lib in tutorial (#15718)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=120
- Upade to 0.9.3
* Preview features
* [airflow] Argument fail_stop in DAG has been renamed as fail_fast (AIR302)
* [airflow] Extend AIR303 with more symbols
* [flake8-bandit] Report all references to suspicious functions (S3)
* [flake8-pytest-style] Do not emit diagnostics for empty for loops (PT012, PT031)
* [flake8-simplify] Avoid double negations (SIM103)
* [pyflakes] Fix infinite loop with unused local import in __init__.py (F401)
* [pylint] Do not report methods with only one EM101-compatible raise (PLR6301)
* [pylint] Implement redefined-slots-in-subclass (W0244)
* [pyupgrade] Add rules to use PEP 695 generics in classes and functions (UP046, UP047)
* [refurb] Implement for-loop-writes (FURB122)
* [ruff] Implement needless-else clause (RUF047)
* [ruff] Implement starmap-zip (RUF058)
* Rule changes
* [flake8-bugbear] Do not raise error if keyword argument is present and target-python version is less or equals than 3.9 (B903)
* [flake8-comprehensions] strip parentheses around generators in unnecessary-generator-set (C401)
* [flake8-pytest-style] Rewrite references to .exception (PT027)
* [flake8-simplify] Mark fixes as unsafe (SIM201, SIM202)
* [flake8-type-checking] Fix some safe fixes being labeled unsafe (TC006,TC008)
* [isort] Omit trailing whitespace in unsorted-imports (I001)
* [pydoclint] Allow ignoring one line docstrings for DOC rules
* [pyflakes] Apply redefinition fixes by source code order (F811)
* [pyflakes] Avoid removing too many imports in redefined-while-unused (F811)
* [pyflakes] Group redefinition fixes by source statement (F811)
* [pylint] Include name of base class in message for redefined-slots-in-subclass (W0244)
* [ruff] Update fix for RUF055 to use var == value
* Formatter
* Fix bracket spacing for single-element tuples in f-string expressions
* Fix unstable f-string formatting for expressions containing a trailing comma
OBS-URL: https://build.opensuse.org/request/show/1240140
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=55
* Preview features
* [airflow] Argument fail_stop in DAG has been renamed as fail_fast (AIR302)
* [airflow] Extend AIR303 with more symbols
* [flake8-bandit] Report all references to suspicious functions (S3)
* [flake8-pytest-style] Do not emit diagnostics for empty for loops (PT012, PT031)
* [flake8-simplify] Avoid double negations (SIM103)
* [pyflakes] Fix infinite loop with unused local import in __init__.py (F401)
* [pylint] Do not report methods with only one EM101-compatible raise (PLR6301)
* [pylint] Implement redefined-slots-in-subclass (W0244)
* [pyupgrade] Add rules to use PEP 695 generics in classes and functions (UP046, UP047)
* [refurb] Implement for-loop-writes (FURB122)
* [ruff] Implement needless-else clause (RUF047)
* [ruff] Implement starmap-zip (RUF058)
* Rule changes
* [flake8-bugbear] Do not raise error if keyword argument is present and target-python version is less or equals than 3.9 (B903)
* [flake8-comprehensions] strip parentheses around generators in unnecessary-generator-set (C401)
* [flake8-pytest-style] Rewrite references to .exception (PT027)
* [flake8-simplify] Mark fixes as unsafe (SIM201, SIM202)
* [flake8-type-checking] Fix some safe fixes being labeled unsafe (TC006,TC008)
* [isort] Omit trailing whitespace in unsorted-imports (I001)
* [pydoclint] Allow ignoring one line docstrings for DOC rules
* [pyflakes] Apply redefinition fixes by source code order (F811)
* [pyflakes] Avoid removing too many imports in redefined-while-unused (F811)
* [pyflakes] Group redefinition fixes by source statement (F811)
* [pylint] Include name of base class in message for redefined-slots-in-subclass (W0244)
* [ruff] Update fix for RUF055 to use var == value
* Formatter
* Fix bracket spacing for single-element tuples in f-string expressions
* Fix unstable f-string formatting for expressions containing a trailing comma
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=118
- update to 0.9.1
* Preview features
* [pycodestyle] Run too-many-newlines-at-end-of-file on each cell in notebooks (W391)
* [ruff] Omit diagnostic for shadowed private function parameters in used-dummy-variable (RUF052)
* Rule changes
* [flake8-bugbear] Improve assert-raises-exception message (B017)
* Formatter
* Preserve trailing end-of line comments for the last string literal in implicitly concatenated strings
* Server
* Fix a bug where the server and client notebooks were out of sync after reordering cells
* Bug fixes
* [flake8-pie] Correctly remove wrapping parentheses (PIE800)
* [pyupgrade] Handle comments and multiline expressions correctly (UP037)
OBS-URL: https://build.opensuse.org/request/show/1237200
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=53
* Preview features
* [pycodestyle] Run too-many-newlines-at-end-of-file on each cell in notebooks (W391)
* [ruff] Omit diagnostic for shadowed private function parameters in used-dummy-variable (RUF052)
* Rule changes
* [flake8-bugbear] Improve assert-raises-exception message (B017)
* Formatter
* Preserve trailing end-of line comments for the last string literal in implicitly concatenated strings
* Server
* Fix a bug where the server and client notebooks were out of sync after reordering cells
* Bug fixes
* [flake8-pie] Correctly remove wrapping parentheses (PIE800)
* [pyupgrade] Handle comments and multiline expressions correctly (UP037)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=114
- update to 0.9.0:
* This release introduces the new 2025 stable style (#13371),
stabilizing the following changes:
* Format expressions in f-string elements
* Alternate quotes for strings inside f-strings
* Preserve the casing of hex codes in f-string debug
expressions
* Choose the quote style for each string literal in an
implicitly concatenated f-string rather than for the entire
string
* Automatically join an implicitly concatenated string into a
single string literal if it fits on a single line
* Remove the `ISC001` incompatibility warning
* Prefer parenthesizing the `assert` message over breaking the
assertion expression
* Automatically parenthesize over-long `if` guards in `match`
`case` clauses
* More consistent formatting for `match` `case` patterns
* Avoid unnecessary parentheses around return type annotations
* Keep the opening parentheses on the same line as the `if`
keyword for comprehensions where the condition has a leading
comment
* More consistent formatting for `with` statements with a
single context manager for Python 3.8 or older
* Correctly calculate the line-width for code blocks in
docstrings when using `max-doc-code-line-length = "dynamic"`
- update to 0.8.6
* [format]: Preserve multiline implicit concatenated strings in docstring positions
* [ruff] Add rule to detect empty literal in deque call (RUF025)
OBS-URL: https://build.opensuse.org/request/show/1236832
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=52
* This release introduces the new 2025 stable style (#13371),
stabilizing the following changes:
* Format expressions in f-string elements
* Alternate quotes for strings inside f-strings
* Preserve the casing of hex codes in f-string debug
expressions
* Choose the quote style for each string literal in an
implicitly concatenated f-string rather than for the entire
string
* Automatically join an implicitly concatenated string into a
single string literal if it fits on a single line
* Remove the `ISC001` incompatibility warning
* Prefer parenthesizing the `assert` message over breaking the
assertion expression
* Automatically parenthesize over-long `if` guards in `match`
`case` clauses
* More consistent formatting for `match` `case` patterns
* Avoid unnecessary parentheses around return type annotations
* Keep the opening parentheses on the same line as the `if`
keyword for comprehensions where the condition has a leading
comment
* More consistent formatting for `with` statements with a
single context manager for Python 3.8 or older
* Correctly calculate the line-width for code blocks in
docstrings when using `max-doc-code-line-length = "dynamic"`
- update to 0.8.6
* Preview features
* [format]: Preserve multiline implicit concatenated strings in docstring positions
* [ruff] Add rule to detect empty literal in deque call (RUF025)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=112
- update to 0.8.3
* Preview features
* Fix fstring formatting removing overlong implicit concatenated string in expression part
* [airflow] Add fix to remove deprecated keyword arguments (AIR302)
* [airflow]: Extend rule to include deprecated names for Airflow 3.0 (AIR302)
* [flake8-bugbear] Improve error messages for except* (B025, B029, B030, B904)
* [flake8-bugbear] itertools.batched() without explicit strict (B911)
* [flake8-use-pathlib] Dotless suffix passed to Path.with_suffix() (PTH210)
* [pylint] Include parentheses and multiple comparators in check for boolean-chained-comparison (PLR1716)
* [ruff] Do not simplify round() calls (RUF046)
* [ruff] Don't emit used-dummy-variable on function parameters (RUF052)
* [ruff] Implement if-key-in-dict-del (RUF051)
* [ruff] Mark autofix for RUF052 as always unsafe
* [ruff] Teach autofix for used-dummy-variable about TypeVars etc. (RUF052)
* Rule changes
* [flake8-bugbear] Offer unsafe autofix for no-explicit-stacklevel (B028)
* [flake8-pyi] Skip all type definitions in string-or-bytes-too-long (PYI053)
* [pyupgrade] Do not report when a UTF-8 comment is followed by a non-UTF-8 one (UP009)
* [pyupgrade] Mark fixes for convert-typed-dict-functional-to-class and convert-named-tuple-functional-to-class
as unsafe if they will remove comments (UP013, UP014)
* Bug fixes
* Raise syntax error for mixing except and except*
* [flake8-bugbear] Fix B028 to allow stacklevel to be explicitly assigned as a positional argument
* [flake8-bugbear] Skip B028 if warnings.warn is called with *args or **kwargs
* [flake8-comprehensions] Skip iterables with named expressions in unnecessary-map (C417)
* [flake8-pyi] Also remove self and cls's annotation (PYI034)
* [flake8-pytest-style] Fix pytest-parametrize-names-wrong-type (PT006) to edit both argnames and argvalues if both of them are single-element tuples/lists
* [perflint] Improve autofix for PERF401
* [pylint] Fix PLW1508 false positive for default string created via a mult operation
OBS-URL: https://build.opensuse.org/request/show/1231367
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=50
* Preview features
* Fix fstring formatting removing overlong implicit concatenated string in expression part
* [airflow] Add fix to remove deprecated keyword arguments (AIR302)
* [airflow]: Extend rule to include deprecated names for Airflow 3.0 (AIR302)
* [flake8-bugbear] Improve error messages for except* (B025, B029, B030, B904)
* [flake8-bugbear] itertools.batched() without explicit strict (B911)
* [flake8-use-pathlib] Dotless suffix passed to Path.with_suffix() (PTH210)
* [pylint] Include parentheses and multiple comparators in check for boolean-chained-comparison (PLR1716)
* [ruff] Do not simplify round() calls (RUF046)
* [ruff] Don't emit used-dummy-variable on function parameters (RUF052)
* [ruff] Implement if-key-in-dict-del (RUF051)
* [ruff] Mark autofix for RUF052 as always unsafe
* [ruff] Teach autofix for used-dummy-variable about TypeVars etc. (RUF052)
* Rule changes
* [flake8-bugbear] Offer unsafe autofix for no-explicit-stacklevel (B028)
* [flake8-pyi] Skip all type definitions in string-or-bytes-too-long (PYI053)
* [pyupgrade] Do not report when a UTF-8 comment is followed by a non-UTF-8 one (UP009)
* [pyupgrade] Mark fixes for convert-typed-dict-functional-to-class and convert-named-tuple-functional-to-class
as unsafe if they will remove comments (UP013, UP014)
* Bug fixes
* Raise syntax error for mixing except and except*
* [flake8-bugbear] Fix B028 to allow stacklevel to be explicitly assigned as a positional argument
* [flake8-bugbear] Skip B028 if warnings.warn is called with *args or **kwargs
* [flake8-comprehensions] Skip iterables with named expressions in unnecessary-map (C417)
* [flake8-pyi] Also remove self and cls's annotation (PYI034)
* [flake8-pytest-style] Fix pytest-parametrize-names-wrong-type (PT006) to edit both argnames and argvalues if both of them are single-element tuples/lists
* [perflint] Improve autofix for PERF401
* [pylint] Fix PLW1508 false positive for default string created via a mult operation
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=108
- update to 0.8.1
* Preview features
* Formatter: Avoid invalid syntax for format-spec with quotes for all Python versions
* Formatter: Consider quotes inside format-specs when choosing the quotes for an f-string
* Formatter: Do not consider f-strings with escaped newlines as multiline
* Formatter: Fix f-string formatting in assignment statement
* Formatter: Fix unnecessary space around power operator (**) in overlong f-string expressions
* [airflow] Avoid implicit schedule argument to DAG and @dag (AIR301)
* [flake8-builtins] Exempt private built-in modules (A005)
* [flake8-pytest-style] Fix pytest.mark.parametrize rules to check calls instead of decorators
* [flake8-type-checking] Implement runtime-cast-value (TC006)
* [flake8-type-checking] Implement unquoted-type-alias (TC007) and quoted-type-alias (TC008)
* [flake8-use-pathlib] Recommend Path.iterdir() over os.listdir() (PTH208)
* [pylint] Extend invalid-envvar-default to detect os.environ.get (PLW1508)
* [pylint] Implement len-test (PLC1802)
* [refurb] Fix bug where methods defined using lambdas were flagged by FURB118
* [ruff] Auto-add r prefix when string has no backslashes for unraw-re-pattern (RUF039)
* [ruff] Implement invalid-assert-message-literal-argument (RUF040)
* [ruff] Implement unnecessary-nested-literal (RUF041)
* [ruff] Implement unnecessary-regular-expression (RUF055)
* Rule changes
* Ignore more rules for stub files
* [pep8-naming] Eliminate false positives for single-letter names (N811, N814)
* [pyflakes] Avoid false positives in @no_type_check contexts (F821, F722)
* [ruff] Detect redirected-noqa in file-level comments (RUF101)
* [ruff] Mark fixes for unsorted-dunder-all and unsorted-dunder-slots as unsafe when there are complex comments in the sequence (RUF022, RUF023)
* Bug fixes
* Avoid fixing code to None | None for redundant-none-literal (PYI061) and never-union (RUF020) (#14583, #14589)
* [flake8-bugbear] Fix mutable-contextvar-default to resolve annotated function calls properly (B039)
* [flake8-pyi, ruff] Fix traversal of nested literals and unions (PYI016, PYI051, PYI055, PYI062, RUF041)
OBS-URL: https://build.opensuse.org/request/show/1227743
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=48
* Preview features
* Formatter: Avoid invalid syntax for format-spec with quotes for all Python versions
* Formatter: Consider quotes inside format-specs when choosing the quotes for an f-string
* Formatter: Do not consider f-strings with escaped newlines as multiline
* Formatter: Fix f-string formatting in assignment statement
* Formatter: Fix unnecessary space around power operator (**) in overlong f-string expressions
* [airflow] Avoid implicit schedule argument to DAG and @dag (AIR301)
* [flake8-builtins] Exempt private built-in modules (A005)
* [flake8-pytest-style] Fix pytest.mark.parametrize rules to check calls instead of decorators
* [flake8-type-checking] Implement runtime-cast-value (TC006)
* [flake8-type-checking] Implement unquoted-type-alias (TC007) and quoted-type-alias (TC008)
* [flake8-use-pathlib] Recommend Path.iterdir() over os.listdir() (PTH208)
* [pylint] Extend invalid-envvar-default to detect os.environ.get (PLW1508)
* [pylint] Implement len-test (PLC1802)
* [refurb] Fix bug where methods defined using lambdas were flagged by FURB118
* [ruff] Auto-add r prefix when string has no backslashes for unraw-re-pattern (RUF039)
* [ruff] Implement invalid-assert-message-literal-argument (RUF040)
* [ruff] Implement unnecessary-nested-literal (RUF041)
* [ruff] Implement unnecessary-regular-expression (RUF055)
* Rule changes
* Ignore more rules for stub files
* [pep8-naming] Eliminate false positives for single-letter names (N811, N814)
* [pyflakes] Avoid false positives in @no_type_check contexts (F821, F722)
* [ruff] Detect redirected-noqa in file-level comments (RUF101)
* [ruff] Mark fixes for unsorted-dunder-all and unsorted-dunder-slots as unsafe when there are complex comments in the sequence (RUF022, RUF023)
* Bug fixes
* Avoid fixing code to None | None for redundant-none-literal (PYI061) and never-union (RUF020) (#14583, #14589)
* [flake8-bugbear] Fix mutable-contextvar-default to resolve annotated function calls properly (B039)
* [flake8-pyi, ruff] Fix traversal of nested literals and unions (PYI016, PYI051, PYI055, PYI062, RUF041)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=104
- update to 0.7.3
* Preview features
* Formatter: Disallow single-line implicit concatenated strings
* [flake8-pyi] Include all Python file types for PYI006 and PYI066
* [flake8-simplify] Implement split-of-static-string (SIM905)
* [refurb] Implement subclass-builtin (FURB189)
* [ruff] Improve diagnostic messages and docs (RUF031, RUF032, RUF034)
* Rule changes
* Detect items that hash to same value in duplicate sets (B033, PLC0208)
* [eradicate] Better detection of IntelliJ language injection comments (ERA001)
* [flake8-pyi] Add autofix for docstring-in-stub (PYI021)
* [flake8-pyi] Update duplicate-literal-member (PYI062) to alawys provide an autofix
* [pyflakes] Detect items that hash to same value in duplicate dictionaries (F601)
* [ruff] Fix false positive for decorators (RUF028)
* Bug fixes
* Avoid parsing joint rule codes as distinct codes in # noqa
* [eradicate] ignore # language= in commented-out-code rule (ERA001)
* [flake8-bugbear] - do not run mutable-argument-default on stubs (B006)
* [flake8-builtins] Skip lambda expressions in builtin-argument-shadowing (A002)
* [flake8-comprehension] Also remove trailing comma while fixing C409 and C419
* [flake8-simplify] Allow open without context manager in return statement (SIM115)
* [pylint] Respect hash-equivalent literals in iteration-over-set (PLC0208)
* [pylint] Update known dunder methods for Python 3.13 (PLW3201)
* [pyupgrade] - ignore kwarg unpacking for UP044
* [refurb] Parse more exotic decimal strings in verbose-decimal-constructor (FURB157)
* Documentation
* Add links to missing related options within rule documentations
* Add rule short code to mkdocs tags to allow searching via rule codes
OBS-URL: https://build.opensuse.org/request/show/1223378
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=46
* Preview features
* Formatter: Disallow single-line implicit concatenated strings
* [flake8-pyi] Include all Python file types for PYI006 and PYI066
* [flake8-simplify] Implement split-of-static-string (SIM905)
* [refurb] Implement subclass-builtin (FURB189)
* [ruff] Improve diagnostic messages and docs (RUF031, RUF032, RUF034)
* Rule changes
* Detect items that hash to same value in duplicate sets (B033, PLC0208)
* [eradicate] Better detection of IntelliJ language injection comments (ERA001)
* [flake8-pyi] Add autofix for docstring-in-stub (PYI021)
* [flake8-pyi] Update duplicate-literal-member (PYI062) to alawys provide an autofix
* [pyflakes] Detect items that hash to same value in duplicate dictionaries (F601)
* [ruff] Fix false positive for decorators (RUF028)
* Bug fixes
* Avoid parsing joint rule codes as distinct codes in # noqa
* [eradicate] ignore # language= in commented-out-code rule (ERA001)
* [flake8-bugbear] - do not run mutable-argument-default on stubs (B006)
* [flake8-builtins] Skip lambda expressions in builtin-argument-shadowing (A002)
* [flake8-comprehension] Also remove trailing comma while fixing C409 and C419
* [flake8-simplify] Allow open without context manager in return statement (SIM115)
* [pylint] Respect hash-equivalent literals in iteration-over-set (PLC0208)
* [pylint] Update known dunder methods for Python 3.13 (PLW3201)
* [pyupgrade] - ignore kwarg unpacking for UP044
* [refurb] Parse more exotic decimal strings in verbose-decimal-constructor (FURB157)
* Documentation
* Add links to missing related options within rule documentations
* Add rule short code to mkdocs tags to allow searching via rule codes
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=100
- update to 0.7.2
* Preview features
* Fix formatting of single with-item with trailing comment
* [pyupgrade] Add PEP 646 Unpack conversion to * with fix (UP044)
* Rule changes
* Regenerate known_stdlibs.rs with stdlibs 2024.10.25
* [flake8-no-pep420] Skip namespace package enforcement for PEP 723 scripts (INP001)
* Server
* Fix server panic when undoing an edit
* Bug fixes
* Fix issues in discovering ruff in pip build environments
* [flake8-type-checking] Fix false positive for singledispatchmethod (TCH003)
* [flake8-type-checking] Treat return type of singledispatch as runtime-required (TCH003)
* Documentation
* [flake8-simplify] Include caveats of enabling if-else-block-instead-of-if-exp (SIM108)
OBS-URL: https://build.opensuse.org/request/show/1220121
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=45
* Preview features
* Fix formatting of single with-item with trailing comment
* [pyupgrade] Add PEP 646 Unpack conversion to * with fix (UP044)
* Rule changes
* Regenerate known_stdlibs.rs with stdlibs 2024.10.25
* [flake8-no-pep420] Skip namespace package enforcement for PEP 723 scripts (INP001)
* Server
* Fix server panic when undoing an edit
* Bug fixes
* Fix issues in discovering ruff in pip build environments
* [flake8-type-checking] Fix false positive for singledispatchmethod (TCH003)
* [flake8-type-checking] Treat return type of singledispatch as runtime-required (TCH003)
* Documentation
* [flake8-simplify] Include caveats of enabling if-else-block-instead-of-if-exp (SIM108)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=97
- update to 0.7.1
* Preview features
* Fix E221 and E222 to flag missing or extra whitespace around == operator
* Formatter: Alternate quotes for strings inside f-strings in preview
* Formatter: Join implicit concatenated strings when they fit on a line
* [pylint] Restrict iteration-over-set to only work on sets of literals (PLC0208)
* Rule changes
* [flake8-type-checking] Support auto-quoting when annotations contain quotes
* Server
* Avoid indexing the workspace for single-file mode
* Bug fixes
* Make ARG002 compatible with EM101 when raising NotImplementedError
OBS-URL: https://build.opensuse.org/request/show/1218438
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=44
* Preview features
* Fix E221 and E222 to flag missing or extra whitespace around == operator
* Formatter: Alternate quotes for strings inside f-strings in preview
* Formatter: Join implicit concatenated strings when they fit on a line
* [pylint] Restrict iteration-over-set to only work on sets of literals (PLC0208)
* Rule changes
* [flake8-type-checking] Support auto-quoting when annotations contain quotes
* Server
* Avoid indexing the workspace for single-file mode
* Bug fixes
* Make ARG002 compatible with EM101 when raising NotImplementedError
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=93
- update to 0.7.0
* Breaking changes
* The pytest rules PT001 and PT023 now default to omitting the decorator parentheses when there are no arguments. This was a change that we attempted to make in Ruff v0.6.0, but only partially made due to an error on our part. See the blog post for more details.
* The useless-try-except rule (in our tryceratops category) has been recoded from TRY302 to TRY203 . This ensures Ruff's code is consistent with the same rule in the tryceratops linter.
* The lint.allow-unused-imports setting has been removed . Use lint.pyflakes.allow-unused-imports instead.
* Formatter preview style
* Normalize implicit concatenated f-string quotes per part
* Preview linter features
* [refurb] implement hardcoded-string-charset (FURB156)
* [refurb] Count codepoints not bytes for slice-to-remove-prefix-or-suffix (FURB188)
* Rule changes
* [pylint] Mark PLE1141 fix as unsafe
* [flake8-async] Consider async generators to be "checkpoints" for cancel-scope-no-checkpoint (ASYNC100)
* [flake8-bugbear] Do not suggest setting parameter strict= to False in B905 diagnostic message
* [flake8-todos] Only flag the word "TODO", not words starting with "todo" (TD006)
* [pycodestyle] Fix whitespace-related false positives and false negatives inside type-parameter lists (E231, E251)
* [flake8-simplify] Stabilize preview behavior for SIM115 so that the rule can detect files being opened from a wider range of standard-library functions .
* CLI
* Add explanation of fixable in --statistics command
* Bug fixes
* [pyflakes] Allow ipytest cell magic (F401)
* [flake8-use-pathlib] Fix PTH123 false positive when open is passed a file descriptor
* [flake8-bandit] Detect patterns from multi line SQL statements (S608)
* [flake8-pyi] - Fix dropped expressions in PYI030 autofix
OBS-URL: https://build.opensuse.org/request/show/1208873
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=42
* Breaking changes
* The pytest rules PT001 and PT023 now default to omitting the decorator parentheses when there are no arguments. This was a change that we attempted to make in Ruff v0.6.0, but only partially made due to an error on our part. See the blog post for more details.
* The useless-try-except rule (in our tryceratops category) has been recoded from TRY302 to TRY203 . This ensures Ruff's code is consistent with the same rule in the tryceratops linter.
* The lint.allow-unused-imports setting has been removed . Use lint.pyflakes.allow-unused-imports instead.
* Formatter preview style
* Normalize implicit concatenated f-string quotes per part
* Preview linter features
* [refurb] implement hardcoded-string-charset (FURB156)
* [refurb] Count codepoints not bytes for slice-to-remove-prefix-or-suffix (FURB188)
* Rule changes
* [pylint] Mark PLE1141 fix as unsafe
* [flake8-async] Consider async generators to be "checkpoints" for cancel-scope-no-checkpoint (ASYNC100)
* [flake8-bugbear] Do not suggest setting parameter strict= to False in B905 diagnostic message
* [flake8-todos] Only flag the word "TODO", not words starting with "todo" (TD006)
* [pycodestyle] Fix whitespace-related false positives and false negatives inside type-parameter lists (E231, E251)
* [flake8-simplify] Stabilize preview behavior for SIM115 so that the rule can detect files being opened from a wider range of standard-library functions .
* CLI
* Add explanation of fixable in --statistics command
* Bug fixes
* [pyflakes] Allow ipytest cell magic (F401)
* [flake8-use-pathlib] Fix PTH123 false positive when open is passed a file descriptor
* [flake8-bandit] Detect patterns from multi line SQL statements (S608)
* [flake8-pyi] - Fix dropped expressions in PYI030 autofix
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=89
- update to 0.6.9
* Preview features
* Fix codeblock dynamic line length calculation for indented docstring examples
* [refurb] Mark FURB118 fix as unsafe
* Rule changes
* [pydocstyle] Don't raise D208 when last line is non-empty
* [pylint] Preserve trivia (i.e. comments) in PLR5501 autofix
* Configuration
* [pyflakes] Add allow-unused-imports setting for unused-import rule (F401)
* Bug fixes
* Support ruff discovery in pip build environments
* [flake8-bugbear] Avoid short circuiting B017 for multiple context managers
* [pylint] Do not offer an invalid fix for PLR1716 when the comparisons contain parenthesis
* [pyupgrade] Fix UP043 to apply to collections.abc.Generator and collections.abc.AsyncGenerator
* [refurb] Fix handling of slices in tuples for FURB118, e.g., x[:, 1]
OBS-URL: https://build.opensuse.org/request/show/1206146
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=41
* Preview features
* Fix codeblock dynamic line length calculation for indented docstring examples
* [refurb] Mark FURB118 fix as unsafe
* Rule changes
* [pydocstyle] Don't raise D208 when last line is non-empty
* [pylint] Preserve trivia (i.e. comments) in PLR5501 autofix
* Configuration
* [pyflakes] Add allow-unused-imports setting for unused-import rule (F401)
* Bug fixes
* Support ruff discovery in pip build environments
* [flake8-bugbear] Avoid short circuiting B017 for multiple context managers
* [pylint] Do not offer an invalid fix for PLR1716 when the comparisons contain parenthesis
* [pyupgrade] Fix UP043 to apply to collections.abc.Generator and collections.abc.AsyncGenerator
* [refurb] Fix handling of slices in tuples for FURB118, e.g., x[:, 1]
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=87
- update to 0.6.7:
* Add Python version support to ruff analyze CLI
* Add `exclude` support to `ruff analyze`
* Fix parentheses around return type annotations
* \[`pycodestyle`\] Fix: Don't autofix if the first line ends
in a question mark? (D400)
* Respect `lint.exclude` in ruff check `--add-noqa`
* Avoid tracking module resolver files in Salsa
- update to 0.6.6:
* \[`refurb`\] Skip `slice-to-remove-prefix-or-suffix`
(`FURB188`) when non-trivial slice steps are present
* Add a subcommand to generate dependency graphs
* Fix placement of inline parameter comments
* Fix off-by one error in the `LineIndex::offset` calculation
* \[`fastapi`\] Respect FastAPI aliases in route definitions
* \[`pydocstyle`\] Respect word boundaries when detecting
function signature in docs
* [pydoclint] Ignore DOC201 when function name is "new"
* [refurb] Implement slice-to-remove-prefix-or-suffix (FURB188)
* [eradicate] Ignore script-comments with multiple end-tags (ERA001)
was added in a newer version than specified in Ruff config (F821)
* Add support for extensionless Python files for server
* Fix configuration inheritance for configurations specified in the LSP settings
* [ruff] Handle unary operators in decimal-from-float-literal (RUF032)
* Only include rules with diagnostics in SARIF metadata
* Add "Copy as pyproject.toml/ruff.toml" and "Paste from TOML"
* Fix errors not shown for restored snippet on page load
OBS-URL: https://build.opensuse.org/request/show/1202630
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=39
* Add Python version support to ruff analyze CLI
* Add `exclude` support to `ruff analyze`
* Fix parentheses around return type annotations
* \[`pycodestyle`\] Fix: Don't autofix if the first line ends
in a question mark? (D400)
* Respect `lint.exclude` in ruff check `--add-noqa`
* Avoid tracking module resolver files in Salsa
- update to 0.6.6:
* \[`refurb`\] Skip `slice-to-remove-prefix-or-suffix`
(`FURB188`) when non-trivial slice steps are present
* Add a subcommand to generate dependency graphs
* Fix placement of inline parameter comments
* Fix off-by one error in the `LineIndex::offset` calculation
* \[`fastapi`\] Respect FastAPI aliases in route definitions
* \[`pydocstyle`\] Respect word boundaries when detecting
function signature in docs
* [pydoclint] Ignore DOC201 when function name is "new"
* [refurb] Implement slice-to-remove-prefix-or-suffix (FURB188)
* Rule changes
* [eradicate] Ignore script-comments with multiple end-tags (ERA001)
was added in a newer version than specified in Ruff config (F821)
* Add support for extensionless Python files for server
* Fix configuration inheritance for configurations specified in the LSP settings
* Bug fixes
* [ruff] Handle unary operators in decimal-from-float-literal (RUF032)
* CLI
* Only include rules with diagnostics in SARIF metadata
* Add "Copy as pyproject.toml/ruff.toml" and "Paste from TOML"
* Fix errors not shown for restored snippet on page load
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=83
- update to 0.6.5:
* Preview features
* [pydoclint] Ignore DOC201 when function name is "new"
* [refurb] Implement slice-to-remove-prefix-or-suffix (FURB188)
* Rule changes
* [eradicate] Ignore script-comments with multiple end-tags (ERA001)
* [pyflakes] Improve error message for UndefinedName when a builtin
was added in a newer version than specified in Ruff config (F821)
* Server
* Add support for extensionless Python files for server
* Fix configuration inheritance for configurations specified in the LSP settings
* Bug fixes
* [ruff] Handle unary operators in decimal-from-float-literal (RUF032)
* CLI
* Only include rules with diagnostics in SARIF metadata
* Playground
* Add "Copy as pyproject.toml/ruff.toml" and "Paste from TOML"
* Fix errors not shown for restored snippet on page load
OBS-URL: https://build.opensuse.org/request/show/1201802
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-ruff?expand=0&rev=38
* Preview features
* [pydoclint] Ignore DOC201 when function name is "new"
* [refurb] Implement slice-to-remove-prefix-or-suffix (FURB188)
* Rule changes
* [eradicate] Ignore script-comments with multiple end-tags (ERA001)
* [pyflakes] Improve error message for UndefinedName when a builtin
was added in a newer version than specified in Ruff config (F821)
* Server
* Add support for extensionless Python files for server
* Fix configuration inheritance for configurations specified in the LSP settings
* Bug fixes
* [ruff] Handle unary operators in decimal-from-float-literal (RUF032)
* CLI
* Only include rules with diagnostics in SARIF metadata
* Playground
* Add "Copy as pyproject.toml/ruff.toml" and "Paste from TOML"
* Fix errors not shown for restored snippet on page load
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ruff?expand=0&rev=81
2024-09-18 13:43:52 +00:00
5 changed files with 1346 additions and 7 deletions
oid sha256:a4dfad870e192380b8895bb4e581c91185e87c0dd59765179d8d78fe9e078cc4
size 27229027
oid sha256:1ad044fe428e3d11ccc66beee91c61853d8974669b792c2b873e47a621b0e528
size 29954033
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.