Skip to content

Commit

Permalink
chore(deps): update dependency ruff to v0.9.5 (#1208)
Browse files Browse the repository at this point in the history
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://docs.astral.sh/ruff)
([source](https://redirect.github.com/astral-sh/ruff),
[changelog](https://redirect.github.com/astral-sh/ruff/blob/main/CHANGELOG.md))
| `0.8.2` -> `0.9.5` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.8.2/0.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.8.2/0.9.5?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>astral-sh/ruff (ruff)</summary>

###
[`v0.9.5`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#095)

[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.9.4...0.9.5)

##### Preview features

- Recognize all symbols named `TYPE_CHECKING` for
`in_type_checking_block`
([#&#8203;15719](https://redirect.github.com/astral-sh/ruff/pull/15719))
- \[`flake8-comprehensions`] Handle builtins at top of file correctly
for `unnecessary-dict-comprehension-for-iterable` (`C420`)
([#&#8203;15837](https://redirect.github.com/astral-sh/ruff/pull/15837))
- \[`flake8-logging`] `.exception()` and `exc_info=` outside exception
handlers (`LOG004`, `LOG014`)
([#&#8203;15799](https://redirect.github.com/astral-sh/ruff/pull/15799))
- \[`flake8-pyi`] Fix incorrect behaviour of
`custom-typevar-return-type` preview-mode autofix if `typing` was
already imported (`PYI019`)
([#&#8203;15853](https://redirect.github.com/astral-sh/ruff/pull/15853))
- \[`flake8-pyi`] Fix more complex cases (`PYI019`)
([#&#8203;15821](https://redirect.github.com/astral-sh/ruff/pull/15821))
- \[`flake8-pyi`] Make `PYI019` autofixable for `.py` files in preview
mode as well as stubs
([#&#8203;15889](https://redirect.github.com/astral-sh/ruff/pull/15889))
- \[`flake8-pyi`] Remove type parameter correctly when it is the last
(`PYI019`)
([#&#8203;15854](https://redirect.github.com/astral-sh/ruff/pull/15854))
- \[`pylint`] Fix missing parens in unsafe fix for
`unnecessary-dunder-call` (`PLC2801`)
([#&#8203;15762](https://redirect.github.com/astral-sh/ruff/pull/15762))
- \[`pyupgrade`] Better messages and diagnostic range (`UP015`)
([#&#8203;15872](https://redirect.github.com/astral-sh/ruff/pull/15872))
- \[`pyupgrade`] Rename private type parameters in PEP 695 generics
(`UP049`)
([#&#8203;15862](https://redirect.github.com/astral-sh/ruff/pull/15862))
- \[`refurb`] Also report non-name expressions (`FURB169`)
([#&#8203;15905](https://redirect.github.com/astral-sh/ruff/pull/15905))
- \[`refurb`] Mark fix as unsafe if there are comments (`FURB171`)
([#&#8203;15832](https://redirect.github.com/astral-sh/ruff/pull/15832))
- \[`ruff`] Classes with mixed type variable style (`RUF053`)
([#&#8203;15841](https://redirect.github.com/astral-sh/ruff/pull/15841))
- \[`airflow`] `BashOperator` has been moved to
`airflow.providers.standard.operators.bash.BashOperator` (`AIR302`)
([#&#8203;15922](https://redirect.github.com/astral-sh/ruff/pull/15922))
- \[`flake8-pyi`] Add autofix for unused-private-type-var (`PYI018`)
([#&#8203;15999](https://redirect.github.com/astral-sh/ruff/pull/15999))
- \[`flake8-pyi`] Significantly improve accuracy of `PYI019` if preview
mode is enabled
([#&#8203;15888](https://redirect.github.com/astral-sh/ruff/pull/15888))

##### Rule changes

- Preserve triple quotes and prefixes for strings
([#&#8203;15818](https://redirect.github.com/astral-sh/ruff/pull/15818))
- \[`flake8-comprehensions`] Skip when `TypeError` present from too many
(kw)args for `C410`,`C411`, and `C418`
([#&#8203;15838](https://redirect.github.com/astral-sh/ruff/pull/15838))
- \[`flake8-pyi`] Rename `PYI019` and improve its diagnostic message
([#&#8203;15885](https://redirect.github.com/astral-sh/ruff/pull/15885))
- \[`pep8-naming`] Ignore `@override` methods (`N803`)
([#&#8203;15954](https://redirect.github.com/astral-sh/ruff/pull/15954))
- \[`pyupgrade`] Reuse replacement logic from `UP046` and `UP047` to
preserve more comments (`UP040`)
([#&#8203;15840](https://redirect.github.com/astral-sh/ruff/pull/15840))
- \[`ruff`] Analyze deferred annotations before enforcing
`mutable-(data)class-default` and
`function-call-in-dataclass-default-argument`
(`RUF008`,`RUF009`,`RUF012`)
([#&#8203;15921](https://redirect.github.com/astral-sh/ruff/pull/15921))
- \[`pycodestyle`] Exempt `sys.path += ...` calls (`E402`)
([#&#8203;15980](https://redirect.github.com/astral-sh/ruff/pull/15980))

##### Configuration

- Config error only when `flake8-import-conventions` alias conflicts
with `isort.required-imports` bound name
([#&#8203;15918](https://redirect.github.com/astral-sh/ruff/pull/15918))
- Workaround Even Better TOML crash related to `allOf`
([#&#8203;15992](https://redirect.github.com/astral-sh/ruff/pull/15992))

##### Bug fixes

- \[`flake8-comprehensions`] Unnecessary `list` comprehension (rewrite
as a `set` comprehension) (`C403`) - Handle extraneous parentheses
around list comprehension
([#&#8203;15877](https://redirect.github.com/astral-sh/ruff/pull/15877))
- \[`flake8-comprehensions`] Handle trailing comma in fixes for
`unnecessary-generator-list/set` (`C400`,`C401`)
([#&#8203;15929](https://redirect.github.com/astral-sh/ruff/pull/15929))
- \[`flake8-pyi`] Fix several correctness issues with
`custom-type-var-return-type` (`PYI019`)
([#&#8203;15851](https://redirect.github.com/astral-sh/ruff/pull/15851))
- \[`pep8-naming`] Consider any number of leading underscore for `N801`
([#&#8203;15988](https://redirect.github.com/astral-sh/ruff/pull/15988))
- \[`pyflakes`] Visit forward annotations in `TypeAliasType` as types
(`F401`)
([#&#8203;15829](https://redirect.github.com/astral-sh/ruff/pull/15829))
- \[`pylint`] Correct min/max auto-fix and suggestion for (`PL1730`)
([#&#8203;15930](https://redirect.github.com/astral-sh/ruff/pull/15930))
- \[`refurb`] Handle unparenthesized tuples correctly (`FURB122`,
`FURB142`)
([#&#8203;15953](https://redirect.github.com/astral-sh/ruff/pull/15953))
- \[`refurb`] Avoid `None | None` as well as better detection and fix
(`FURB168`)
([#&#8203;15779](https://redirect.github.com/astral-sh/ruff/pull/15779))

##### Documentation

- Add deprecation warning for `ruff-lsp` related settings
([#&#8203;15850](https://redirect.github.com/astral-sh/ruff/pull/15850))
- Docs (`linter.md`): clarify that Python files are always searched for
in subdirectories
([#&#8203;15882](https://redirect.github.com/astral-sh/ruff/pull/15882))
- Fix a typo in `non_pep695_generic_class.rs`
([#&#8203;15946](https://redirect.github.com/astral-sh/ruff/pull/15946))
- Improve Docs: Pylint subcategories' codes
([#&#8203;15909](https://redirect.github.com/astral-sh/ruff/pull/15909))
- Remove non-existing `lint.extendIgnore` editor setting
([#&#8203;15844](https://redirect.github.com/astral-sh/ruff/pull/15844))
- Update black deviations
([#&#8203;15928](https://redirect.github.com/astral-sh/ruff/pull/15928))
- Mention `UP049` in `UP046` and `UP047`, add `See also` section to
`UP040`
([#&#8203;15956](https://redirect.github.com/astral-sh/ruff/pull/15956))
- Add instance variable examples to `RUF012`
([#&#8203;15982](https://redirect.github.com/astral-sh/ruff/pull/15982))
- Explain precedence for `ignore` and `select` config
([#&#8203;15883](https://redirect.github.com/astral-sh/ruff/pull/15883))

###
[`v0.9.4`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#094)

[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.9.3...0.9.4)

##### Preview features

- \[`airflow`] Extend airflow context parameter check for
`BaseOperator.execute` (`AIR302`)
([#&#8203;15713](https://redirect.github.com/astral-sh/ruff/pull/15713))
- \[`airflow`] Update `AIR302` to check for deprecated context keys
([#&#8203;15144](https://redirect.github.com/astral-sh/ruff/pull/15144))
- \[`flake8-bandit`] Permit suspicious imports within stub files (`S4`)
([#&#8203;15822](https://redirect.github.com/astral-sh/ruff/pull/15822))
- \[`pylint`] Do not trigger `PLR6201` on empty collections
([#&#8203;15732](https://redirect.github.com/astral-sh/ruff/pull/15732))
- \[`refurb`] Do not emit diagnostic when loop variables are used
outside loop body (`FURB122`)
([#&#8203;15757](https://redirect.github.com/astral-sh/ruff/pull/15757))
- \[`ruff`] Add support for more `re` patterns (`RUF055`)
([#&#8203;15764](https://redirect.github.com/astral-sh/ruff/pull/15764))
- \[`ruff`] Check for shadowed `map` before suggesting fix (`RUF058`)
([#&#8203;15790](https://redirect.github.com/astral-sh/ruff/pull/15790))
- \[`ruff`] Do not emit diagnostic when all arguments to `zip()` are
variadic (`RUF058`)
([#&#8203;15744](https://redirect.github.com/astral-sh/ruff/pull/15744))
- \[`ruff`] Parenthesize fix when argument spans multiple lines for
`unnecessary-round` (`RUF057`)
([#&#8203;15703](https://redirect.github.com/astral-sh/ruff/pull/15703))

##### Rule changes

- Preserve quote style in generated code
([#&#8203;15726](https://redirect.github.com/astral-sh/ruff/pull/15726),
[#&#8203;15778](https://redirect.github.com/astral-sh/ruff/pull/15778),
[#&#8203;15794](https://redirect.github.com/astral-sh/ruff/pull/15794))
- \[`flake8-bugbear`] Exempt `NewType` calls where the original type is
immutable (`B008`)
([#&#8203;15765](https://redirect.github.com/astral-sh/ruff/pull/15765))
- \[`pylint`] Honor banned top-level imports by `TID253` in `PLC0415`.
([#&#8203;15628](https://redirect.github.com/astral-sh/ruff/pull/15628))
- \[`pyupgrade`] Ignore `is_typeddict` and `TypedDict` for
`deprecated-import` (`UP035`)
([#&#8203;15800](https://redirect.github.com/astral-sh/ruff/pull/15800))

##### CLI

- Fix formatter warning message for `flake8-quotes` option
([#&#8203;15788](https://redirect.github.com/astral-sh/ruff/pull/15788))
- Implement tab autocomplete for `ruff config`
([#&#8203;15603](https://redirect.github.com/astral-sh/ruff/pull/15603))

##### Bug fixes

- \[`flake8-comprehensions`] Do not emit `unnecessary-map` diagnostic
when lambda has different arity (`C417`)
([#&#8203;15802](https://redirect.github.com/astral-sh/ruff/pull/15802))
- \[`flake8-comprehensions`] Parenthesize `sorted` when needed for
`unnecessary-call-around-sorted` (`C413`)
([#&#8203;15825](https://redirect.github.com/astral-sh/ruff/pull/15825))
- \[`pyupgrade`] Handle end-of-line comments for `quoted-annotation`
(`UP037`)
([#&#8203;15824](https://redirect.github.com/astral-sh/ruff/pull/15824))

##### Documentation

- Add missing config docstrings
([#&#8203;15803](https://redirect.github.com/astral-sh/ruff/pull/15803))
- Add references to `trio.run_process` and `anyio.run_process`
([#&#8203;15761](https://redirect.github.com/astral-sh/ruff/pull/15761))
- Use `uv init --lib` in tutorial
([#&#8203;15718](https://redirect.github.com/astral-sh/ruff/pull/15718))

###
[`v0.9.3`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#093)

[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.9.2...0.9.3)

##### Preview features

- \[`airflow`] Argument `fail_stop` in DAG has been renamed as
`fail_fast` (`AIR302`)
([#&#8203;15633](https://redirect.github.com/astral-sh/ruff/pull/15633))
- \[`airflow`] Extend `AIR303` with more symbols
([#&#8203;15611](https://redirect.github.com/astral-sh/ruff/pull/15611))
- \[`flake8-bandit`] Report all references to suspicious functions
(`S3`)
([#&#8203;15541](https://redirect.github.com/astral-sh/ruff/pull/15541))
- \[`flake8-pytest-style`] Do not emit diagnostics for empty `for` loops
(`PT012`, `PT031`)
([#&#8203;15542](https://redirect.github.com/astral-sh/ruff/pull/15542))
- \[`flake8-simplify`] Avoid double negations (`SIM103`)
([#&#8203;15562](https://redirect.github.com/astral-sh/ruff/pull/15562))
- \[`pyflakes`] Fix infinite loop with unused local import in
`__init__.py` (`F401`)
([#&#8203;15517](https://redirect.github.com/astral-sh/ruff/pull/15517))
- \[`pylint`] Do not report methods with only one `EM101`-compatible
`raise` (`PLR6301`)
([#&#8203;15507](https://redirect.github.com/astral-sh/ruff/pull/15507))
- \[`pylint`] Implement `redefined-slots-in-subclass` (`W0244`)
([#&#8203;9640](https://redirect.github.com/astral-sh/ruff/pull/9640))
- \[`pyupgrade`] Add rules to use PEP 695 generics in classes and
functions (`UP046`, `UP047`)
([#&#8203;15565](https://redirect.github.com/astral-sh/ruff/pull/15565),
[#&#8203;15659](https://redirect.github.com/astral-sh/ruff/pull/15659))
- \[`refurb`] Implement `for-loop-writes` (`FURB122`)
([#&#8203;10630](https://redirect.github.com/astral-sh/ruff/pull/10630))
- \[`ruff`] Implement `needless-else` clause (`RUF047`)
([#&#8203;15051](https://redirect.github.com/astral-sh/ruff/pull/15051))
- \[`ruff`] Implement `starmap-zip` (`RUF058`)
([#&#8203;15483](https://redirect.github.com/astral-sh/ruff/pull/15483))

##### 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`)
([#&#8203;15549](https://redirect.github.com/astral-sh/ruff/pull/15549))
- \[`flake8-comprehensions`] strip parentheses around generators in
`unnecessary-generator-set` (`C401`)
([#&#8203;15553](https://redirect.github.com/astral-sh/ruff/pull/15553))
- \[`flake8-pytest-style`] Rewrite references to `.exception` (`PT027`)
([#&#8203;15680](https://redirect.github.com/astral-sh/ruff/pull/15680))
- \[`flake8-simplify`] Mark fixes as unsafe (`SIM201`, `SIM202`)
([#&#8203;15626](https://redirect.github.com/astral-sh/ruff/pull/15626))
- \[`flake8-type-checking`] Fix some safe fixes being labeled unsafe
(`TC006`,`TC008`)
([#&#8203;15638](https://redirect.github.com/astral-sh/ruff/pull/15638))
- \[`isort`] Omit trailing whitespace in `unsorted-imports` (`I001`)
([#&#8203;15518](https://redirect.github.com/astral-sh/ruff/pull/15518))
- \[`pydoclint`] Allow ignoring one line docstrings for `DOC` rules
([#&#8203;13302](https://redirect.github.com/astral-sh/ruff/pull/13302))
- \[`pyflakes`] Apply redefinition fixes by source code order (`F811`)
([#&#8203;15575](https://redirect.github.com/astral-sh/ruff/pull/15575))
- \[`pyflakes`] Avoid removing too many imports in
`redefined-while-unused` (`F811`)
([#&#8203;15585](https://redirect.github.com/astral-sh/ruff/pull/15585))
- \[`pyflakes`] Group redefinition fixes by source statement (`F811`)
([#&#8203;15574](https://redirect.github.com/astral-sh/ruff/pull/15574))
- \[`pylint`] Include name of base class in message for
`redefined-slots-in-subclass` (`W0244`)
([#&#8203;15559](https://redirect.github.com/astral-sh/ruff/pull/15559))
- \[`ruff`] Update fix for `RUF055` to use `var == value`
([#&#8203;15605](https://redirect.github.com/astral-sh/ruff/pull/15605))

##### Formatter

- Fix bracket spacing for single-element tuples in f-string expressions
([#&#8203;15537](https://redirect.github.com/astral-sh/ruff/pull/15537))
- Fix unstable f-string formatting for expressions containing a trailing
comma
([#&#8203;15545](https://redirect.github.com/astral-sh/ruff/pull/15545))

##### Performance

- Avoid quadratic membership check in import fixes
([#&#8203;15576](https://redirect.github.com/astral-sh/ruff/pull/15576))

##### Server

- Allow `unsafe-fixes` settings for code actions
([#&#8203;15666](https://redirect.github.com/astral-sh/ruff/pull/15666))

##### Bug fixes

- \[`flake8-bandit`] Add missing single-line/dotall regex flag (`S608`)
([#&#8203;15654](https://redirect.github.com/astral-sh/ruff/pull/15654))
- \[`flake8-import-conventions`] Fix infinite loop between `ICN001` and
`I002` (`ICN001`)
([#&#8203;15480](https://redirect.github.com/astral-sh/ruff/pull/15480))
- \[`flake8-simplify`] Do not emit diagnostics for expressions inside
string type annotations (`SIM222`, `SIM223`)
([#&#8203;15405](https://redirect.github.com/astral-sh/ruff/pull/15405))
- \[`pyflakes`] Treat arguments passed to the `default=` parameter of
`TypeVar` as type expressions (`F821`)
([#&#8203;15679](https://redirect.github.com/astral-sh/ruff/pull/15679))
- \[`pyupgrade`] Avoid syntax error when the iterable is a
non-parenthesized tuple (`UP028`)
([#&#8203;15543](https://redirect.github.com/astral-sh/ruff/pull/15543))
- \[`ruff`] Exempt `NewType` calls where the original type is immutable
(`RUF009`)
([#&#8203;15588](https://redirect.github.com/astral-sh/ruff/pull/15588))
- Preserve raw string prefix and escapes in all codegen fixes
([#&#8203;15694](https://redirect.github.com/astral-sh/ruff/pull/15694))

##### Documentation

- Generate documentation redirects for lowercase rule codes
([#&#8203;15564](https://redirect.github.com/astral-sh/ruff/pull/15564))
- `TRY300`: Add some extra notes on not catching exceptions you didn't
expect
([#&#8203;15036](https://redirect.github.com/astral-sh/ruff/pull/15036))

###
[`v0.9.2`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#092)

[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.9.1...0.9.2)

##### Preview features

- \[`airflow`] Fix typo "security_managr" to "security_manager"
(`AIR303`)
([#&#8203;15463](https://redirect.github.com/astral-sh/ruff/pull/15463))
- \[`airflow`] extend and fix AIR302 rules
([#&#8203;15525](https://redirect.github.com/astral-sh/ruff/pull/15525))
- \[`fastapi`] Handle parameters with `Depends` correctly (`FAST003`)
([#&#8203;15364](https://redirect.github.com/astral-sh/ruff/pull/15364))
- \[`flake8-pytest-style`] Implement pytest.warns diagnostics (`PT029`,
`PT030`, `PT031`)
([#&#8203;15444](https://redirect.github.com/astral-sh/ruff/pull/15444))
- \[`flake8-pytest-style`] Test function parameters with default
arguments (`PT028`)
([#&#8203;15449](https://redirect.github.com/astral-sh/ruff/pull/15449))
- \[`flake8-type-checking`] Avoid false positives for `|` in `TC008`
([#&#8203;15201](https://redirect.github.com/astral-sh/ruff/pull/15201))

##### Rule changes

- \[`flake8-todos`] Allow VSCode GitHub PR extension style links in
`missing-todo-link` (`TD003`)
([#&#8203;15519](https://redirect.github.com/astral-sh/ruff/pull/15519))
- \[`pyflakes`] Show syntax error message for `F722`
([#&#8203;15523](https://redirect.github.com/astral-sh/ruff/pull/15523))

##### Formatter

- Fix curly bracket spacing around f-string expressions containing curly
braces
([#&#8203;15471](https://redirect.github.com/astral-sh/ruff/pull/15471))
- Fix joining of f-strings with different quotes when using quote style
`Preserve`
([#&#8203;15524](https://redirect.github.com/astral-sh/ruff/pull/15524))

##### Server

- Avoid indexing the same workspace multiple times
([#&#8203;15495](https://redirect.github.com/astral-sh/ruff/pull/15495))
- Display context for `ruff.configuration` errors
([#&#8203;15452](https://redirect.github.com/astral-sh/ruff/pull/15452))

##### Configuration

- Remove `flatten` to improve deserialization error messages
([#&#8203;15414](https://redirect.github.com/astral-sh/ruff/pull/15414))

##### Bug fixes

- Parse triple-quoted string annotations as if parenthesized
([#&#8203;15387](https://redirect.github.com/astral-sh/ruff/pull/15387))
- \[`fastapi`] Update `Annotated` fixes (`FAST002`)
([#&#8203;15462](https://redirect.github.com/astral-sh/ruff/pull/15462))
- \[`flake8-bandit`] Check for `builtins` instead of `builtin` (`S102`,
`PTH123`)
([#&#8203;15443](https://redirect.github.com/astral-sh/ruff/pull/15443))
- \[`flake8-pathlib`] Fix `--select` for `os-path-dirname` (`PTH120`)
([#&#8203;15446](https://redirect.github.com/astral-sh/ruff/pull/15446))
- \[`ruff`] Fix false positive on global keyword (`RUF052`)
([#&#8203;15235](https://redirect.github.com/astral-sh/ruff/pull/15235))

###
[`v0.9.1`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#091)

[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.9.0...0.9.1)

##### Preview features

- \[`pycodestyle`] Run `too-many-newlines-at-end-of-file` on each cell
in notebooks (`W391`)
([#&#8203;15308](https://redirect.github.com/astral-sh/ruff/pull/15308))
- \[`ruff`] Omit diagnostic for shadowed private function parameters in
`used-dummy-variable` (`RUF052`)
([#&#8203;15376](https://redirect.github.com/astral-sh/ruff/pull/15376))

##### Rule changes

- \[`flake8-bugbear`] Improve `assert-raises-exception` message (`B017`)
([#&#8203;15389](https://redirect.github.com/astral-sh/ruff/pull/15389))

##### Formatter

- Preserve trailing end-of line comments for the last string literal in
implicitly concatenated strings
([#&#8203;15378](https://redirect.github.com/astral-sh/ruff/pull/15378))

##### Server

- Fix a bug where the server and client notebooks were out of sync after
reordering cells
([#&#8203;15398](https://redirect.github.com/astral-sh/ruff/pull/15398))

##### Bug fixes

- \[`flake8-pie`] Correctly remove wrapping parentheses (`PIE800`)
([#&#8203;15394](https://redirect.github.com/astral-sh/ruff/pull/15394))
- \[`pyupgrade`] Handle comments and multiline expressions correctly
(`UP037`)
([#&#8203;15337](https://redirect.github.com/astral-sh/ruff/pull/15337))

###
[`v0.9.0`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#090)

[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.8.6...0.9.0)

Check out the [blog post](https://astral.sh/blog/ruff-v0.9.0) for a
migration guide and overview of the changes!

##### Breaking changes

Ruff now formats your code according to the 2025 style guide. As a
result, your code might now get formatted differently. See the formatter
section for a detailed list of changes.

This release doesn’t remove or remap any existing stable rules.

##### Stabilization

The following rules have been stabilized and are no longer in preview:

-
[`stdlib-module-shadowing`](https://docs.astral.sh/ruff/rules/stdlib-module-shadowing/)
(`A005`).
This rule has also been renamed: previously, it was called
`builtin-module-shadowing`.
-
[`builtin-lambda-argument-shadowing`](https://docs.astral.sh/ruff/rules/builtin-lambda-argument-shadowing/)
(`A006`)
-
[`slice-to-remove-prefix-or-suffix`](https://docs.astral.sh/ruff/rules/slice-to-remove-prefix-or-suffix/)
(`FURB188`)
-
[`boolean-chained-comparison`](https://docs.astral.sh/ruff/rules/boolean-chained-comparison/)
(`PLR1716`)
-
[`decimal-from-float-literal`](https://docs.astral.sh/ruff/rules/decimal-from-float-literal/)
(`RUF032`)
-
[`post-init-default`](https://docs.astral.sh/ruff/rules/post-init-default/)
(`RUF033`)
-
[`useless-if-else`](https://docs.astral.sh/ruff/rules/useless-if-else/)
(`RUF034`)

The following behaviors have been stabilized:

-
[`pytest-parametrize-names-wrong-type`](https://docs.astral.sh/ruff/rules/pytest-parametrize-names-wrong-type/)
(`PT006`): Detect
[`pytest.parametrize`](https://docs.pytest.org/en/7.1.x/how-to/parametrize.html#parametrize)
calls outside decorators and calls with keyword arguments.
-
[`module-import-not-at-top-of-file`](https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file/)
(`E402`): Ignore
[`pytest.importorskip`](https://docs.pytest.org/en/7.1.x/reference/reference.html#pytest-importorskip)
calls between import statements.
-
[`mutable-dataclass-default`](https://docs.astral.sh/ruff/rules/mutable-dataclass-default/)
(`RUF008`) and
[`function-call-in-dataclass-default-argument`](https://docs.astral.sh/ruff/rules/function-call-in-dataclass-default-argument/)
(`RUF009`): Add support for [`attrs`](https://www.attrs.org/en/stable/).
-
[`bad-version-info-comparison`](https://docs.astral.sh/ruff/rules/bad-version-info-comparison/)
(`PYI006`): Extend the rule to check non-stub files.

The following fixes or improvements to fixes have been stabilized:

-
[`redundant-numeric-union`](https://docs.astral.sh/ruff/rules/redundant-numeric-union/)
(`PYI041`)
-
[`duplicate-union-members`](https://docs.astral.sh/ruff/rules/duplicate-union-member/)
(`PYI016`)

##### Formatter

This release introduces the new 2025 stable style
([#&#8203;13371](https://redirect.github.com/astral-sh/ruff/issues/13371)),
stabilizing the following changes:

- Format expressions in f-string elements
([#&#8203;7594](https://redirect.github.com/astral-sh/ruff/issues/7594))
- Alternate quotes for strings inside f-strings
([#&#8203;13860](https://redirect.github.com/astral-sh/ruff/pull/13860))
- Preserve the casing of hex codes in f-string debug expressions
([#&#8203;14766](https://redirect.github.com/astral-sh/ruff/issues/14766))
- Choose the quote style for each string literal in an implicitly
concatenated f-string rather than for the entire string
([#&#8203;13539](https://redirect.github.com/astral-sh/ruff/pull/13539))
- Automatically join an implicitly concatenated string into a single
string literal if it fits on a single line
([#&#8203;9457](https://redirect.github.com/astral-sh/ruff/issues/9457))
- Remove the
[`ISC001`](https://docs.astral.sh/ruff/rules/single-line-implicit-string-concatenation/)
incompatibility warning
([#&#8203;15123](https://redirect.github.com/astral-sh/ruff/pull/15123))
- Prefer parenthesizing the `assert` message over breaking the assertion
expression
([#&#8203;9457](https://redirect.github.com/astral-sh/ruff/issues/9457))
- Automatically parenthesize over-long `if` guards in `match` `case`
clauses
([#&#8203;13513](https://redirect.github.com/astral-sh/ruff/pull/13513))
- More consistent formatting for `match` `case` patterns
([#&#8203;6933](https://redirect.github.com/astral-sh/ruff/issues/6933))
- Avoid unnecessary parentheses around return type annotations
([#&#8203;13381](https://redirect.github.com/astral-sh/ruff/pull/13381))
- Keep the opening parentheses on the same line as the `if` keyword for
comprehensions where the condition has a leading comment
([#&#8203;12282](https://redirect.github.com/astral-sh/ruff/pull/12282))
- More consistent formatting for `with` statements with a single context
manager for Python 3.8 or older
([#&#8203;10276](https://redirect.github.com/astral-sh/ruff/pull/10276))
- Correctly calculate the line-width for code blocks in docstrings when
using `max-doc-code-line-length = "dynamic"`
([#&#8203;13523](https://redirect.github.com/astral-sh/ruff/pull/13523))

##### Preview features

- \[`flake8-bugbear`] Implement `class-as-data-structure` (`B903`)
([#&#8203;9601](https://redirect.github.com/astral-sh/ruff/pull/9601))
- \[`flake8-type-checking`] Apply `quoted-type-alias` more eagerly in
`TYPE_CHECKING` blocks and ignore it in stubs (`TC008`)
([#&#8203;15180](https://redirect.github.com/astral-sh/ruff/pull/15180))
- \[`pylint`] Ignore `eq-without-hash` in stub files (`PLW1641`)
([#&#8203;15310](https://redirect.github.com/astral-sh/ruff/pull/15310))
- \[`pyupgrade`] Split `UP007` into two individual rules: `UP007` for
`Union` and `UP045` for `Optional` (`UP007`, `UP045`)
([#&#8203;15313](https://redirect.github.com/astral-sh/ruff/pull/15313))
- \[`ruff`] New rule that detects classes that are both an enum and a
`dataclass` (`RUF049`)
([#&#8203;15299](https://redirect.github.com/astral-sh/ruff/pull/15299))
- \[`ruff`] Recode `RUF025` to `RUF037` (`RUF037`)
([#&#8203;15258](https://redirect.github.com/astral-sh/ruff/pull/15258))

##### Rule changes

- \[`flake8-builtins`] Ignore
[`stdlib-module-shadowing`](https://docs.astral.sh/ruff/rules/stdlib-module-shadowing/)
in stub files(`A005`)
([#&#8203;15350](https://redirect.github.com/astral-sh/ruff/pull/15350))
- \[`flake8-return`] Add support for functions returning `typing.Never`
(`RET503`)
([#&#8203;15298](https://redirect.github.com/astral-sh/ruff/pull/15298))

##### Server

- Improve the observability by removing the need for the ["trace"
value](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#traceValue)
to turn on or off logging. The server logging is solely controlled using
the [`logLevel` server
setting](https://docs.astral.sh/ruff/editors/settings/#loglevel)
which defaults to `info`. This addresses the issue where users were
notified about an error and told to consult the log, but it didn’t
contain any messages.
([#&#8203;15232](https://redirect.github.com/astral-sh/ruff/pull/15232))
- Ignore diagnostics from other sources for code action requests
([#&#8203;15373](https://redirect.github.com/astral-sh/ruff/pull/15373))

##### CLI

- Improve the error message for `--config key=value` when the `key` is
for a table and it’s a simple `value`

##### Bug fixes

- \[`eradicate`] Ignore metadata blocks directly followed by normal
blocks (`ERA001`)
([#&#8203;15330](https://redirect.github.com/astral-sh/ruff/pull/15330))
- \[`flake8-django`] Recognize other magic methods (`DJ012`)
([#&#8203;15365](https://redirect.github.com/astral-sh/ruff/pull/15365))
- \[`pycodestyle`] Avoid false positives related to type aliases
(`E252`)
([#&#8203;15356](https://redirect.github.com/astral-sh/ruff/pull/15356))
- \[`pydocstyle`] Avoid treating newline-separated sections as
sub-sections (`D405`)
([#&#8203;15311](https://redirect.github.com/astral-sh/ruff/pull/15311))
- \[`pyflakes`] Remove call when removing final argument from `format`
(`F523`)
([#&#8203;15309](https://redirect.github.com/astral-sh/ruff/pull/15309))
- \[`refurb`] Mark fix as unsafe when the right-hand side is a string
(`FURB171`)
([#&#8203;15273](https://redirect.github.com/astral-sh/ruff/pull/15273))
- \[`ruff`] Treat `)` as a regex metacharacter (`RUF043`, `RUF055`)
([#&#8203;15318](https://redirect.github.com/astral-sh/ruff/pull/15318))
- \[`ruff`] Parenthesize the `int`-call argument when removing the `int`
call would change semantics (`RUF046`)
([#&#8203;15277](https://redirect.github.com/astral-sh/ruff/pull/15277))

###
[`v0.8.6`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#086)

[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.8.5...0.8.6)

##### Preview features

- \[`format`]: Preserve multiline implicit concatenated strings in
docstring positions
([#&#8203;15126](https://redirect.github.com/astral-sh/ruff/pull/15126))
- \[`ruff`] Add rule to detect empty literal in deque call (`RUF025`)
([#&#8203;15104](https://redirect.github.com/astral-sh/ruff/pull/15104))
- \[`ruff`] Avoid reporting when `ndigits` is possibly negative
(`RUF057`)
([#&#8203;15234](https://redirect.github.com/astral-sh/ruff/pull/15234))

##### Rule changes

- \[`flake8-todos`] remove issue code length restriction (`TD003`)
([#&#8203;15175](https://redirect.github.com/astral-sh/ruff/pull/15175))
- \[`pyflakes`] Ignore errors in `@no_type_check` string annotations
(`F722`, `F821`)
([#&#8203;15215](https://redirect.github.com/astral-sh/ruff/pull/15215))

##### CLI

- Show errors for attempted fixes only when passed `--verbose`
([#&#8203;15237](https://redirect.github.com/astral-sh/ruff/pull/15237))

##### Bug fixes

- \[`ruff`] Avoid syntax error when removing int over multiple lines
(`RUF046`)
([#&#8203;15230](https://redirect.github.com/astral-sh/ruff/pull/15230))
- \[`pyupgrade`] Revert "Add all PEP-585 names to `UP006` rule"
([#&#8203;15250](https://redirect.github.com/astral-sh/ruff/pull/15250))

###
[`v0.8.5`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#085)

[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.8.4...0.8.5)

##### Preview features

- \[`airflow`] Extend names moved from core to provider (`AIR303`)
([#&#8203;15145](https://redirect.github.com/astral-sh/ruff/pull/15145),
[#&#8203;15159](https://redirect.github.com/astral-sh/ruff/pull/15159),
[#&#8203;15196](https://redirect.github.com/astral-sh/ruff/pull/15196),
[#&#8203;15216](https://redirect.github.com/astral-sh/ruff/pull/15216))
- \[`airflow`] Extend rule to check class attributes, methods, arguments
(`AIR302`)
([#&#8203;15054](https://redirect.github.com/astral-sh/ruff/pull/15054),
[#&#8203;15083](https://redirect.github.com/astral-sh/ruff/pull/15083))
- \[`fastapi`] Update `FAST002` to check keyword-only arguments
([#&#8203;15119](https://redirect.github.com/astral-sh/ruff/pull/15119))
- \[`flake8-type-checking`] Disable `TC006` and `TC007` in stub files
([#&#8203;15179](https://redirect.github.com/astral-sh/ruff/pull/15179))
- \[`pylint`] Detect nested methods correctly (`PLW1641`)
([#&#8203;15032](https://redirect.github.com/astral-sh/ruff/pull/15032))
- \[`ruff`] Detect more strict-integer expressions (`RUF046`)
([#&#8203;14833](https://redirect.github.com/astral-sh/ruff/pull/14833))
- \[`ruff`] Implement `falsy-dict-get-fallback` (`RUF056`)
([#&#8203;15160](https://redirect.github.com/astral-sh/ruff/pull/15160))
- \[`ruff`] Implement `unnecessary-round` (`RUF057`)
([#&#8203;14828](https://redirect.github.com/astral-sh/ruff/pull/14828))

##### Rule changes

- Visit PEP 764 inline `TypedDict` keys as non-type-expressions
([#&#8203;15073](https://redirect.github.com/astral-sh/ruff/pull/15073))
- \[`flake8-comprehensions`] Skip `C416` if comprehension contains
unpacking
([#&#8203;14909](https://redirect.github.com/astral-sh/ruff/pull/14909))
- \[`flake8-pie`] Allow `cast(SomeType, ...)` (`PIE796`)
([#&#8203;15141](https://redirect.github.com/astral-sh/ruff/pull/15141))
- \[`flake8-simplify`] More precise inference for dictionaries
(`SIM300`)
([#&#8203;15164](https://redirect.github.com/astral-sh/ruff/pull/15164))
- \[`flake8-use-pathlib`] Catch redundant joins in `PTH201` and avoid
syntax errors
([#&#8203;15177](https://redirect.github.com/astral-sh/ruff/pull/15177))
- \[`pycodestyle`] Preserve original value format (`E731`)
([#&#8203;15097](https://redirect.github.com/astral-sh/ruff/pull/15097))
- \[`pydocstyle`] Split on first whitespace character (`D403`)
([#&#8203;15082](https://redirect.github.com/astral-sh/ruff/pull/15082))
- \[`pyupgrade`] Add all PEP-585 names to `UP006` rule
([#&#8203;5454](https://redirect.github.com/astral-sh/ruff/pull/5454))

##### Configuration

- \[`flake8-type-checking`] Improve flexibility of
`runtime-evaluated-decorators`
([#&#8203;15204](https://redirect.github.com/astral-sh/ruff/pull/15204))
- \[`pydocstyle`] Add setting to ignore missing documentation for
`*args` and `**kwargs` parameters (`D417`)
([#&#8203;15210](https://redirect.github.com/astral-sh/ruff/pull/15210))
- \[`ruff`] Add an allowlist for `unsafe-markup-use` (`RUF035`)
([#&#8203;15076](https://redirect.github.com/astral-sh/ruff/pull/15076))

##### Bug fixes

- Fix type subscript on older python versions
([#&#8203;15090](https://redirect.github.com/astral-sh/ruff/pull/15090))
- Use `TypeChecker` for detecting `fastapi` routes
([#&#8203;15093](https://redirect.github.com/astral-sh/ruff/pull/15093))
- \[`pycodestyle`] Avoid false positives and negatives related to type
parameter default syntax (`E225`, `E251`)
([#&#8203;15214](https://redirect.github.com/astral-sh/ruff/pull/15214))

##### Documentation

- Fix incorrect doc in `shebang-not-executable` (`EXE001`) and add
git+windows solution to executable bit
([#&#8203;15208](https://redirect.github.com/astral-sh/ruff/pull/15208))
- Rename rules currently not conforming to naming convention
([#&#8203;15102](https://redirect.github.com/astral-sh/ruff/pull/15102))

###
[`v0.8.4`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#084)

[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.8.3...0.8.4)

##### Preview features

- \[`airflow`] Extend `AIR302` with additional functions and classes
([#&#8203;15015](https://redirect.github.com/astral-sh/ruff/pull/15015))
- \[`airflow`] Implement `moved-to-provider-in-3` for modules that has
been moved to Airflow providers (`AIR303`)
([#&#8203;14764](https://redirect.github.com/astral-sh/ruff/pull/14764))
- \[`flake8-use-pathlib`] Extend check for invalid path suffix to
include the case `"."` (`PTH210`)
([#&#8203;14902](https://redirect.github.com/astral-sh/ruff/pull/14902))
- \[`perflint`] Fix panic in `PERF401` when list variable is after the
`for` loop
([#&#8203;14971](https://redirect.github.com/astral-sh/ruff/pull/14971))
- \[`perflint`] Simplify finding the loop target in `PERF401`
([#&#8203;15025](https://redirect.github.com/astral-sh/ruff/pull/15025))
- \[`pylint`] Preserve original value format (`PLR6104`)
([#&#8203;14978](https://redirect.github.com/astral-sh/ruff/pull/14978))
- \[`ruff`] Avoid false positives for `RUF027` for typing context
bindings
([#&#8203;15037](https://redirect.github.com/astral-sh/ruff/pull/15037))
- \[`ruff`] Check for ambiguous pattern passed to `pytest.raises()`
(`RUF043`)
([#&#8203;14966](https://redirect.github.com/astral-sh/ruff/pull/14966))

##### Rule changes

- \[`flake8-bandit`] Check `S105` for annotated assignment
([#&#8203;15059](https://redirect.github.com/astral-sh/ruff/pull/15059))
- \[`flake8-pyi`] More autofixes for `redundant-none-literal` (`PYI061`)
([#&#8203;14872](https://redirect.github.com/astral-sh/ruff/pull/14872))
- \[`pydocstyle`] Skip leading whitespace for `D403`
([#&#8203;14963](https://redirect.github.com/astral-sh/ruff/pull/14963))
- \[`ruff`] Skip `SQLModel` base classes for `mutable-class-default`
(`RUF012`)
([#&#8203;14949](https://redirect.github.com/astral-sh/ruff/pull/14949))

##### Bug

- \[`perflint`] Parenthesize walrus expressions in autofix for
`manual-list-comprehension` (`PERF401`)
([#&#8203;15050](https://redirect.github.com/astral-sh/ruff/pull/15050))

##### Server

- Check diagnostic refresh support from client capability which enables
dynamic configuration for various editors
([#&#8203;15014](https://redirect.github.com/astral-sh/ruff/pull/15014))

###
[`v0.8.3`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#083)

[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.8.2...0.8.3)

##### Preview features

- Fix fstring formatting removing overlong implicit concatenated string
in expression part
([#&#8203;14811](https://redirect.github.com/astral-sh/ruff/pull/14811))
- \[`airflow`] Add fix to remove deprecated keyword arguments (`AIR302`)
([#&#8203;14887](https://redirect.github.com/astral-sh/ruff/pull/14887))
- \[`airflow`]: Extend rule to include deprecated names for Airflow 3.0
(`AIR302`)
([#&#8203;14765](https://redirect.github.com/astral-sh/ruff/pull/14765)
and
[#&#8203;14804](https://redirect.github.com/astral-sh/ruff/pull/14804))
- \[`flake8-bugbear`] Improve error messages for `except*` (`B025`,
`B029`, `B030`, `B904`)
([#&#8203;14815](https://redirect.github.com/astral-sh/ruff/pull/14815))
- \[`flake8-bugbear`] `itertools.batched()` without explicit `strict`
(`B911`)
([#&#8203;14408](https://redirect.github.com/astral-sh/ruff/pull/14408))
- \[`flake8-use-pathlib`] Dotless suffix passed to `Path.with_suffix()`
(`PTH210`)
([#&#8203;14779](https://redirect.github.com/astral-sh/ruff/pull/14779))
- \[`pylint`] Include parentheses and multiple comparators in check for
`boolean-chained-comparison` (`PLR1716`)
([#&#8203;14781](https://redirect.github.com/astral-sh/ruff/pull/14781))
- \[`ruff`] Do not simplify `round()` calls (`RUF046`)
([#&#8203;14832](https://redirect.github.com/astral-sh/ruff/pull/14832))
- \[`ruff`] Don't emit `used-dummy-variable` on function parameters
(`RUF052`)
([#&#8203;14818](https://redirect.github.com/astral-sh/ruff/pull/14818))
- \[`ruff`] Implement `if-key-in-dict-del` (`RUF051`)
([#&#8203;14553](https://redirect.github.com/astral-sh/ruff/pull/14553))
- \[`ruff`] Mark autofix for `RUF052` as always unsafe
([#&#8203;14824](https://redirect.github.com/astral-sh/ruff/pull/14824))
- \[`ruff`] Teach autofix for `used-dummy-variable` about TypeVars etc.
(`RUF052`)
([#&#8203;14819](https://redirect.github.com/astral-sh/ruff/pull/14819))

##### Rule changes

- \[`flake8-bugbear`] Offer unsafe autofix for `no-explicit-stacklevel`
(`B028`)
([#&#8203;14829](https://redirect.github.com/astral-sh/ruff/pull/14829))
- \[`flake8-pyi`] Skip all type definitions in
`string-or-bytes-too-long` (`PYI053`)
([#&#8203;14797](https://redirect.github.com/astral-sh/ruff/pull/14797))
- \[`pyupgrade`] Do not report when a UTF-8 comment is followed by a
non-UTF-8 one (`UP009`)
([#&#8203;14728](https://redirect.github.com/astral-sh/ruff/pull/14728))
- \[`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`)
([#&#8203;14842](https://redirect.github.com/astral-sh/ruff/pull/14842))

##### Bug fixes

- Raise syntax error for mixing `except` and `except*`
([#&#8203;14895](https://redirect.github.com/astral-sh/ruff/pull/14895))
- \[`flake8-bugbear`] Fix `B028` to allow `stacklevel` to be explicitly
assigned as a positional argument
([#&#8203;14868](https://redirect.github.com/astral-sh/ruff/pull/14868))
- \[`flake8-bugbear`] Skip `B028` if `warnings.warn` is called with
`*args` or `**kwargs`
([#&#8203;14870](https://redirect.github.com/astral-sh/ruff/pull/14870))
- \[`flake8-comprehensions`] Skip iterables with named expressions in
`unnecessary-map` (`C417`)
([#&#8203;14827](https://redirect.github.com/astral-sh/ruff/pull/14827))
- \[`flake8-pyi`] Also remove `self` and `cls`'s annotation (`PYI034`)
([#&#8203;14801](https://redirect.github.com/astral-sh/ruff/pull/14801))
- \[`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
([#&#8203;14699](https://redirect.github.com/astral-sh/ruff/pull/14699))
- \[`perflint`] Improve autofix for `PERF401`
([#&#8203;14369](https://redirect.github.com/astral-sh/ruff/pull/14369))
- \[`pylint`] Fix `PLW1508` false positive for default string created
via a mult operation
([#&#8203;14841](https://redirect.github.com/astral-sh/ruff/pull/14841))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 5pm on friday" (UTC), Automerge
- At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/ibis-project/ibis-substrait).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS43LjEiLCJ1cGRhdGVkSW5WZXIiOiIzOS4xNDUuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  • Loading branch information
renovate[bot] authored Feb 8, 2025
1 parent e4f75b3 commit edd56a2
Showing 0 changed files with 0 additions and 0 deletions.

0 comments on commit edd56a2

Please sign in to comment.