Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat: detect changes also in configuration files #4169

Merged

Conversation

mikeleppane
Copy link
Contributor

Detect changes also in configuration files. Detected config files are: pyproject.toml, ruff.toml,.ruff.toml

…es are: pyproject.toml, ruff.toml,.ruff.toml
@github-actions
Copy link
Contributor

github-actions bot commented May 1, 2023

PR Check Results

Ecosystem

✅ ecosystem check detected no changes.

Benchmark

Linux

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.03     19.4±0.47ms     2.1 MB/sec    1.00     18.8±0.45ms     2.2 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.04      4.6±0.23ms     3.6 MB/sec    1.00      4.4±0.12ms     3.8 MB/sec
linter/all-rules/numpy/globals.py          1.02   552.8±19.44µs     5.3 MB/sec    1.00   543.8±13.65µs     5.4 MB/sec
linter/all-rules/pydantic/types.py         1.04      8.0±0.36ms     3.2 MB/sec    1.00      7.7±0.25ms     3.3 MB/sec
linter/default-rules/large/dataset.py      1.04      9.3±0.28ms     4.4 MB/sec    1.00      9.0±0.42ms     4.5 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.05  1992.2±70.52µs     8.4 MB/sec    1.00  1895.0±45.30µs     8.8 MB/sec
linter/default-rules/numpy/globals.py      1.00    224.4±9.69µs    13.1 MB/sec    1.02   228.8±17.89µs    12.9 MB/sec
linter/default-rules/pydantic/types.py     1.03      4.1±0.15ms     6.2 MB/sec    1.00      4.0±0.08ms     6.4 MB/sec
parser/large/dataset.py                    1.03      7.5±0.21ms     5.4 MB/sec    1.00      7.3±0.11ms     5.6 MB/sec
parser/numpy/ctypeslib.py                  1.04  1488.1±89.71µs    11.2 MB/sec    1.00  1427.0±73.31µs    11.7 MB/sec
parser/numpy/globals.py                    1.00    141.7±7.21µs    20.8 MB/sec    1.01   142.6±10.78µs    20.7 MB/sec
parser/pydantic/types.py                   1.02      3.2±0.10ms     8.0 MB/sec    1.00      3.1±0.09ms     8.2 MB/sec

Windows

group                                      main                                   pr
-----                                      ----                                   --
linter/all-rules/large/dataset.py          1.00     16.1±0.11ms     2.5 MB/sec    1.00     16.0±0.09ms     2.5 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.00      4.1±0.04ms     4.1 MB/sec    1.00      4.1±0.05ms     4.1 MB/sec
linter/all-rules/numpy/globals.py          1.00   485.0±10.56µs     6.1 MB/sec    1.00    484.6±6.42µs     6.1 MB/sec
linter/all-rules/pydantic/types.py         1.00      6.8±0.05ms     3.7 MB/sec    1.00      6.8±0.05ms     3.8 MB/sec
linter/default-rules/large/dataset.py      1.00      8.2±0.05ms     5.0 MB/sec    1.00      8.2±0.04ms     5.0 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.00  1726.5±14.93µs     9.6 MB/sec    1.00  1725.1±15.37µs     9.7 MB/sec
linter/default-rules/numpy/globals.py      1.00    191.6±2.89µs    15.4 MB/sec    1.02    196.3±8.04µs    15.0 MB/sec
linter/default-rules/pydantic/types.py     1.00      3.7±0.03ms     7.0 MB/sec    1.01      3.7±0.09ms     6.9 MB/sec
parser/large/dataset.py                    1.00      6.7±0.06ms     6.1 MB/sec    1.01      6.7±0.05ms     6.1 MB/sec
parser/numpy/ctypeslib.py                  1.00  1265.3±15.28µs    13.2 MB/sec    1.01  1275.2±15.47µs    13.1 MB/sec
parser/numpy/globals.py                    1.00    128.9±2.00µs    22.9 MB/sec    1.00    129.5±1.82µs    22.8 MB/sec
parser/pydantic/types.py                   1.00      2.8±0.03ms     9.1 MB/sec    1.01      2.8±0.03ms     9.0 MB/sec

.unwrap_or_default()
});
if py_changed {
if has_file_changed(&event?.paths) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we have to recompute most of the variables defined above starting from line 115 whenever a pyproject.toml changes. For example, you can configure the output format in the settings and we should respect that change if we support reloading configuration files.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Absolutely! Is there now something more to be recalculated other than pyproject_strategy?

Copy link
Member

@MichaReiser MichaReiser May 2, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not too familiar with that code. A safe assumption would be to re-compute everything that is derived from the pyproject_strategy (all settings that are supported in the configuration and aren't CLI options only). I wonder if we even have to be clever about it or if we can simply call check again. The main challenge that I see with that approach is that we might mess up the printer output because watch uses write_continuously

Comment on lines 50 to 56
if let (Some(file_name), Some(suffix)) = (path.file_name(), path.extension()) {
if let (Some(file_name), Some(suffix)) = (file_name.to_str(), suffix.to_str()) {
if WATCHED_FILES.contains(&file_name) || WATCHED_FILES.contains(&suffix) {
return true;
}
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: I recommend matching on the extension or file name explicitly. E.g. we don't want to match a file named py

Suggested change
if let (Some(file_name), Some(suffix)) = (path.file_name(), path.extension()) {
if let (Some(file_name), Some(suffix)) = (file_name.to_str(), suffix.to_str()) {
if WATCHED_FILES.contains(&file_name) || WATCHED_FILES.contains(&suffix) {
return true;
}
}
}
if matches!(path.file_name(), Some("pyproject.toml" | "ruff.toml" |".ruff.toml")) {
true
} else if matches!(path.extension(), Some("py" | "pyi")) {
true
} else { false }

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch!

* pyproject_strategy will be recalculated if configuration file has changed
* refactor unit tests
Comment on lines 47 to 51
pub struct FileChangeDetector<'a> {
extensions: Vec<&'a str>,
config_files: Vec<&'a str>,
has_configuration_changed: bool,
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Making this configurable seems overkill for now. I would prefer matching statically on the file name and extension. That should also allow the compiler to optimize the code better (see my original comment on how to implement it with a match).

has_configuration_changed: bool,
}

impl FileChangeDetector<'_> {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can keep this a standalone function and instead introduce a new tri-boolean type to signal whether to ignore the change, it's a python file, or a configuration change

#[derive(Copy, Clone, Debug, Eq, PartialEq)]
enum ChangeKind {
	Configuration,
	SourceFile,
	Ignore
}

fn detect_change(paths: &[PathBuf]) -> ChangeKind {
	...
}

Comment on lines 255 to 260
pyproject_strategy = resolve::resolve(
cli.isolated,
cli.config.as_deref(),
&overrides,
cli.stdin_filename.as_deref(),
)?;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only re-computing the pyproject_strategy, is, unfortunately, not sufficient. There are multiple derived variables on line 107-185 that need to be recomputed too

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a TODO for this.

@charliermarsh charliermarsh enabled auto-merge (squash) May 9, 2023 16:17
@charliermarsh charliermarsh merged commit 04e8e74 into astral-sh:main May 9, 2023
renovate bot referenced this pull request in ixm-one/pytest-cmake-presets May 12, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://github.com/charliermarsh/ruff)
([changelog](https://github.com/charliermarsh/ruff/releases)) |
`^0.0.265` -> `^0.0.267` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/compatibility-slim/0.0.265)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/confidence-slim/0.0.265)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>charliermarsh/ruff</summary>

###
[`v0.0.267`](https://github.com/charliermarsh/ruff/releases/tag/v0.0.267)

[Compare
Source](https://github.com/charliermarsh/ruff/compare/v0.0.266...v0.0.267)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### Summary

Follow-up release to v0.0.266 to fix an issue with `python -m ruff`- and
`import ruff`-based workflows.

(No new rules or functionality.)

#### What's Changed

##### Rules

- Implement `RUF010` to detect explicit type conversions within
f-strings by [@&#8203;LotemAm](https://github.com/LotemAm) in
[https://github.com/charliermarsh/ruff/pull/4387](https://github.com/charliermarsh/ruff/pull/4387)

##### Other Changes

- Workaround for maturin bug by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/charliermarsh/ruff/pull/4399](https://github.com/charliermarsh/ruff/pull/4399)

#### New Contributors

- [@&#8203;OMEGARAZER](https://github.com/OMEGARAZER) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3938](https://github.com/charliermarsh/ruff/pull/3938)
- [@&#8203;LotemAm](https://github.com/LotemAm) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4387](https://github.com/charliermarsh/ruff/pull/4387)

**Full Changelog**:
astral-sh/ruff@v0.0.266...v0.0.267

###
[`v0.0.266`](https://github.com/charliermarsh/ruff/releases/tag/v0.0.266)

[Compare
Source](https://github.com/charliermarsh/ruff/compare/v0.0.265...v0.0.266)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### Breaking Changes

- Remove deprecated `update-check` setting by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4313](https://github.com/charliermarsh/ruff/pull/4313)
- JSON Emitter: Use one indexed column numbers for edits by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4007](https://github.com/charliermarsh/ruff/pull/4007)

##### Rules

- \[`pygrep-hooks`] Implement pygrep-hook's Mock-mistake diagnostic by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4366](https://github.com/charliermarsh/ruff/pull/4366)
- \[`pylint`] Implement `nested-min-max` (`W3301`) by
[@&#8203;mccullocht](https://github.com/mccullocht) in
[https://github.com/charliermarsh/ruff/pull/4200](https://github.com/charliermarsh/ruff/pull/4200)
- \[`flynt`] Implement Flynt static string join transform as FLY002 by
[@&#8203;akx](https://github.com/akx) in
[https://github.com/charliermarsh/ruff/pull/4196](https://github.com/charliermarsh/ruff/pull/4196)
- \[`pylint`] Include positional- and keyword-only arguments in
too-many-arguments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4329](https://github.com/charliermarsh/ruff/pull/4329)
- \[`ruff`] Update confusable character mapping by
[@&#8203;akx](https://github.com/akx) in
[https://github.com/charliermarsh/ruff/pull/4274](https://github.com/charliermarsh/ruff/pull/4274)

##### Settings

- Add .git-rewrite folder to default ignored folder paths by
[@&#8203;jleclanche](https://github.com/jleclanche) in
[https://github.com/charliermarsh/ruff/pull/4261](https://github.com/charliermarsh/ruff/pull/4261)
- Feat: detect changes also in configuration files by
[@&#8203;mikeleppane](https://github.com/mikeleppane) in
[https://github.com/charliermarsh/ruff/pull/4169](https://github.com/charliermarsh/ruff/pull/4169)

##### Bug Fixes

- Revert the B027 autofix logic by
[@&#8203;aacunningham](https://github.com/aacunningham) in
[https://github.com/charliermarsh/ruff/pull/4310](https://github.com/charliermarsh/ruff/pull/4310)
- Consider Flask app logger as logger candidate by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4253](https://github.com/charliermarsh/ruff/pull/4253)
- Enforce max-doc-length for multi-line docstrings by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4347](https://github.com/charliermarsh/ruff/pull/4347)
- Avoid re-using imports beyond current edit site by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4378](https://github.com/charliermarsh/ruff/pull/4378)
- Respect insertion location when importing symbols by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4258](https://github.com/charliermarsh/ruff/pull/4258)
- Fix jemalloc page size on aarch64 by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4247](https://github.com/charliermarsh/ruff/pull/4247)
- Fix replace_whitespace() tabulation to space by
[@&#8203;JonathanPlasse](https://github.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4226](https://github.com/charliermarsh/ruff/pull/4226)
- Avoid fixing `PD002` in a lambda expression by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4286](https://github.com/charliermarsh/ruff/pull/4286)
- Avoid `D403` if first char cannot be uppercased by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4283](https://github.com/charliermarsh/ruff/pull/4283)
- Avoid panics for f-string rewrites at start-of-file by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4291](https://github.com/charliermarsh/ruff/pull/4291)
- Rewrite `not not a` as `bool(a)` in boolean contexts by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4294](https://github.com/charliermarsh/ruff/pull/4294)
- Include static and class methods in in abstract decorator list by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4298](https://github.com/charliermarsh/ruff/pull/4298)
- Specify exact command in incorrect parentheses suggestion by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4300](https://github.com/charliermarsh/ruff/pull/4300)
- Ignore `TRY301` exceptions without except handlers by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4301](https://github.com/charliermarsh/ruff/pull/4301)
- Preserve whitespace around `ListComp` brackets in `C419` by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4099](https://github.com/charliermarsh/ruff/pull/4099)
- Tweak capitalization of B021 message by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4350](https://github.com/charliermarsh/ruff/pull/4350)
- Avoid debug panic with empty indent replacement by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4364](https://github.com/charliermarsh/ruff/pull/4364)
- Use target name in hardcoded-password diagnostics by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4365](https://github.com/charliermarsh/ruff/pull/4365)
- Avoid underflow in expected-special-method-signature by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4377](https://github.com/charliermarsh/ruff/pull/4377)
- Respect `__all__` imports when determining definition visibility by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4357](https://github.com/charliermarsh/ruff/pull/4357)
- Ignore some methods on list in `flake8-boolean-trap` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4385](https://github.com/charliermarsh/ruff/pull/4385)
- Fix false positives in PD002 by
[@&#8203;evanrittenhouse](https://github.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4337](https://github.com/charliermarsh/ruff/pull/4337)
- Run autofix on initial watcher pass by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4311](https://github.com/charliermarsh/ruff/pull/4311)
- Avoid SIM105 autofixes that would remove comments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4330](https://github.com/charliermarsh/ruff/pull/4330)
- Handle `.encode` calls on parenthesized expressions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4338](https://github.com/charliermarsh/ruff/pull/4338)
- Truncate `SyntaxError`s before newline character by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4124](https://github.com/charliermarsh/ruff/pull/4124)
- Use non-empty ranges for logical-lines diagnostics by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4133](https://github.com/charliermarsh/ruff/pull/4133)

#### New Contributors

- [@&#8203;jleclanche](https://github.com/jleclanche) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4261](https://github.com/charliermarsh/ruff/pull/4261)
- [@&#8203;aureliojargas](https://github.com/aureliojargas) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4306](https://github.com/charliermarsh/ruff/pull/4306)
- [@&#8203;intgr](https://github.com/intgr) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4304](https://github.com/charliermarsh/ruff/pull/4304)
- [@&#8203;mikeleppane](https://github.com/mikeleppane) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4169](https://github.com/charliermarsh/ruff/pull/4169)
- [@&#8203;dependabot](https://github.com/dependabot) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4354](https://github.com/charliermarsh/ruff/pull/4354)

**Full Changelog**:
astral-sh/ruff@v0.0.265...v0.0.266

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
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 has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/ixm-one/pytest-cmake-presets).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43OS4xIiwidXBkYXRlZEluVmVyIjoiMzUuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in allenporter/flux-local May 14, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://github.com/charliermarsh/ruff)
([changelog](https://github.com/charliermarsh/ruff/releases)) |
`==0.0.265` -> `==0.0.267` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/compatibility-slim/0.0.265)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/confidence-slim/0.0.265)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>charliermarsh/ruff</summary>

###
[`v0.0.267`](https://github.com/charliermarsh/ruff/releases/tag/v0.0.267)

[Compare
Source](https://github.com/charliermarsh/ruff/compare/v0.0.266...v0.0.267)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### Summary

Follow-up release to v0.0.266 to fix an issue with `python -m ruff`- and
`import ruff`-based workflows.

(No new rules or functionality.)

#### What's Changed

##### Rules

- Implement `RUF010` to detect explicit type conversions within
f-strings by [@&#8203;LotemAm](https://github.com/LotemAm) in
[https://github.com/charliermarsh/ruff/pull/4387](https://github.com/charliermarsh/ruff/pull/4387)

##### Other Changes

- Workaround for maturin bug by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/charliermarsh/ruff/pull/4399](https://github.com/charliermarsh/ruff/pull/4399)

#### New Contributors

- [@&#8203;OMEGARAZER](https://github.com/OMEGARAZER) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3938](https://github.com/charliermarsh/ruff/pull/3938)
- [@&#8203;LotemAm](https://github.com/LotemAm) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4387](https://github.com/charliermarsh/ruff/pull/4387)

**Full Changelog**:
astral-sh/ruff@v0.0.266...v0.0.267

###
[`v0.0.266`](https://github.com/charliermarsh/ruff/releases/tag/v0.0.266)

[Compare
Source](https://github.com/charliermarsh/ruff/compare/v0.0.265...v0.0.266)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### Breaking Changes

- Remove deprecated `update-check` setting by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4313](https://github.com/charliermarsh/ruff/pull/4313)
- JSON Emitter: Use one indexed column numbers for edits by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4007](https://github.com/charliermarsh/ruff/pull/4007)

##### Rules

- \[`pygrep-hooks`] Implement pygrep-hook's Mock-mistake diagnostic by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4366](https://github.com/charliermarsh/ruff/pull/4366)
- \[`pylint`] Implement `nested-min-max` (`W3301`) by
[@&#8203;mccullocht](https://github.com/mccullocht) in
[https://github.com/charliermarsh/ruff/pull/4200](https://github.com/charliermarsh/ruff/pull/4200)
- \[`flynt`] Implement Flynt static string join transform as FLY002 by
[@&#8203;akx](https://github.com/akx) in
[https://github.com/charliermarsh/ruff/pull/4196](https://github.com/charliermarsh/ruff/pull/4196)
- \[`pylint`] Include positional- and keyword-only arguments in
too-many-arguments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4329](https://github.com/charliermarsh/ruff/pull/4329)
- \[`ruff`] Update confusable character mapping by
[@&#8203;akx](https://github.com/akx) in
[https://github.com/charliermarsh/ruff/pull/4274](https://github.com/charliermarsh/ruff/pull/4274)

##### Settings

- Add .git-rewrite folder to default ignored folder paths by
[@&#8203;jleclanche](https://github.com/jleclanche) in
[https://github.com/charliermarsh/ruff/pull/4261](https://github.com/charliermarsh/ruff/pull/4261)
- Feat: detect changes also in configuration files by
[@&#8203;mikeleppane](https://github.com/mikeleppane) in
[https://github.com/charliermarsh/ruff/pull/4169](https://github.com/charliermarsh/ruff/pull/4169)

##### Bug Fixes

- Revert the B027 autofix logic by
[@&#8203;aacunningham](https://github.com/aacunningham) in
[https://github.com/charliermarsh/ruff/pull/4310](https://github.com/charliermarsh/ruff/pull/4310)
- Consider Flask app logger as logger candidate by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4253](https://github.com/charliermarsh/ruff/pull/4253)
- Enforce max-doc-length for multi-line docstrings by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4347](https://github.com/charliermarsh/ruff/pull/4347)
- Avoid re-using imports beyond current edit site by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4378](https://github.com/charliermarsh/ruff/pull/4378)
- Respect insertion location when importing symbols by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4258](https://github.com/charliermarsh/ruff/pull/4258)
- Fix jemalloc page size on aarch64 by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4247](https://github.com/charliermarsh/ruff/pull/4247)
- Fix replace_whitespace() tabulation to space by
[@&#8203;JonathanPlasse](https://github.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4226](https://github.com/charliermarsh/ruff/pull/4226)
- Avoid fixing `PD002` in a lambda expression by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4286](https://github.com/charliermarsh/ruff/pull/4286)
- Avoid `D403` if first char cannot be uppercased by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4283](https://github.com/charliermarsh/ruff/pull/4283)
- Avoid panics for f-string rewrites at start-of-file by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4291](https://github.com/charliermarsh/ruff/pull/4291)
- Rewrite `not not a` as `bool(a)` in boolean contexts by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4294](https://github.com/charliermarsh/ruff/pull/4294)
- Include static and class methods in in abstract decorator list by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4298](https://github.com/charliermarsh/ruff/pull/4298)
- Specify exact command in incorrect parentheses suggestion by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4300](https://github.com/charliermarsh/ruff/pull/4300)
- Ignore `TRY301` exceptions without except handlers by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4301](https://github.com/charliermarsh/ruff/pull/4301)
- Preserve whitespace around `ListComp` brackets in `C419` by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4099](https://github.com/charliermarsh/ruff/pull/4099)
- Tweak capitalization of B021 message by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4350](https://github.com/charliermarsh/ruff/pull/4350)
- Avoid debug panic with empty indent replacement by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4364](https://github.com/charliermarsh/ruff/pull/4364)
- Use target name in hardcoded-password diagnostics by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4365](https://github.com/charliermarsh/ruff/pull/4365)
- Avoid underflow in expected-special-method-signature by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4377](https://github.com/charliermarsh/ruff/pull/4377)
- Respect `__all__` imports when determining definition visibility by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4357](https://github.com/charliermarsh/ruff/pull/4357)
- Ignore some methods on list in `flake8-boolean-trap` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4385](https://github.com/charliermarsh/ruff/pull/4385)
- Fix false positives in PD002 by
[@&#8203;evanrittenhouse](https://github.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4337](https://github.com/charliermarsh/ruff/pull/4337)
- Run autofix on initial watcher pass by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4311](https://github.com/charliermarsh/ruff/pull/4311)
- Avoid SIM105 autofixes that would remove comments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4330](https://github.com/charliermarsh/ruff/pull/4330)
- Handle `.encode` calls on parenthesized expressions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4338](https://github.com/charliermarsh/ruff/pull/4338)
- Truncate `SyntaxError`s before newline character by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4124](https://github.com/charliermarsh/ruff/pull/4124)
- Use non-empty ranges for logical-lines diagnostics by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4133](https://github.com/charliermarsh/ruff/pull/4133)

#### New Contributors

- [@&#8203;jleclanche](https://github.com/jleclanche) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4261](https://github.com/charliermarsh/ruff/pull/4261)
- [@&#8203;aureliojargas](https://github.com/aureliojargas) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4306](https://github.com/charliermarsh/ruff/pull/4306)
- [@&#8203;intgr](https://github.com/intgr) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4304](https://github.com/charliermarsh/ruff/pull/4304)
- [@&#8203;mikeleppane](https://github.com/mikeleppane) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4169](https://github.com/charliermarsh/ruff/pull/4169)
- [@&#8203;dependabot](https://github.com/dependabot) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4354](https://github.com/charliermarsh/ruff/pull/4354)

**Full Changelog**:
astral-sh/ruff@v0.0.265...v0.0.266

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, 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 has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/allenporter/flux-local).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43OS4xIiwidXBkYXRlZEluVmVyIjoiMzUuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in allenporter/pyrainbird May 14, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://github.com/charliermarsh/ruff)
([changelog](https://github.com/charliermarsh/ruff/releases)) |
`==0.0.265` -> `==0.0.267` |
[![age](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/compatibility-slim/0.0.265)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/ruff/0.0.267/confidence-slim/0.0.265)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>charliermarsh/ruff</summary>

###
[`v0.0.267`](https://github.com/charliermarsh/ruff/releases/tag/v0.0.267)

[Compare
Source](https://github.com/charliermarsh/ruff/compare/v0.0.266...v0.0.267)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### Summary

Follow-up release to v0.0.266 to fix an issue with `python -m ruff`- and
`import ruff`-based workflows.

(No new rules or functionality.)

#### What's Changed

##### Rules

- Implement `RUF010` to detect explicit type conversions within
f-strings by [@&#8203;LotemAm](https://github.com/LotemAm) in
[https://github.com/charliermarsh/ruff/pull/4387](https://github.com/charliermarsh/ruff/pull/4387)

##### Other Changes

- Workaround for maturin bug by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/charliermarsh/ruff/pull/4399](https://github.com/charliermarsh/ruff/pull/4399)

#### New Contributors

- [@&#8203;OMEGARAZER](https://github.com/OMEGARAZER) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/3938](https://github.com/charliermarsh/ruff/pull/3938)
- [@&#8203;LotemAm](https://github.com/LotemAm) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4387](https://github.com/charliermarsh/ruff/pull/4387)

**Full Changelog**:
astral-sh/ruff@v0.0.266...v0.0.267

###
[`v0.0.266`](https://github.com/charliermarsh/ruff/releases/tag/v0.0.266)

[Compare
Source](https://github.com/charliermarsh/ruff/compare/v0.0.265...v0.0.266)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### Breaking Changes

- Remove deprecated `update-check` setting by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4313](https://github.com/charliermarsh/ruff/pull/4313)
- JSON Emitter: Use one indexed column numbers for edits by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4007](https://github.com/charliermarsh/ruff/pull/4007)

##### Rules

- \[`pygrep-hooks`] Implement pygrep-hook's Mock-mistake diagnostic by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4366](https://github.com/charliermarsh/ruff/pull/4366)
- \[`pylint`] Implement `nested-min-max` (`W3301`) by
[@&#8203;mccullocht](https://github.com/mccullocht) in
[https://github.com/charliermarsh/ruff/pull/4200](https://github.com/charliermarsh/ruff/pull/4200)
- \[`flynt`] Implement Flynt static string join transform as FLY002 by
[@&#8203;akx](https://github.com/akx) in
[https://github.com/charliermarsh/ruff/pull/4196](https://github.com/charliermarsh/ruff/pull/4196)
- \[`pylint`] Include positional- and keyword-only arguments in
too-many-arguments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4329](https://github.com/charliermarsh/ruff/pull/4329)
- \[`ruff`] Update confusable character mapping by
[@&#8203;akx](https://github.com/akx) in
[https://github.com/charliermarsh/ruff/pull/4274](https://github.com/charliermarsh/ruff/pull/4274)

##### Settings

- Add .git-rewrite folder to default ignored folder paths by
[@&#8203;jleclanche](https://github.com/jleclanche) in
[https://github.com/charliermarsh/ruff/pull/4261](https://github.com/charliermarsh/ruff/pull/4261)
- Feat: detect changes also in configuration files by
[@&#8203;mikeleppane](https://github.com/mikeleppane) in
[https://github.com/charliermarsh/ruff/pull/4169](https://github.com/charliermarsh/ruff/pull/4169)

##### Bug Fixes

- Revert the B027 autofix logic by
[@&#8203;aacunningham](https://github.com/aacunningham) in
[https://github.com/charliermarsh/ruff/pull/4310](https://github.com/charliermarsh/ruff/pull/4310)
- Consider Flask app logger as logger candidate by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4253](https://github.com/charliermarsh/ruff/pull/4253)
- Enforce max-doc-length for multi-line docstrings by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4347](https://github.com/charliermarsh/ruff/pull/4347)
- Avoid re-using imports beyond current edit site by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4378](https://github.com/charliermarsh/ruff/pull/4378)
- Respect insertion location when importing symbols by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4258](https://github.com/charliermarsh/ruff/pull/4258)
- Fix jemalloc page size on aarch64 by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4247](https://github.com/charliermarsh/ruff/pull/4247)
- Fix replace_whitespace() tabulation to space by
[@&#8203;JonathanPlasse](https://github.com/JonathanPlasse) in
[https://github.com/charliermarsh/ruff/pull/4226](https://github.com/charliermarsh/ruff/pull/4226)
- Avoid fixing `PD002` in a lambda expression by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4286](https://github.com/charliermarsh/ruff/pull/4286)
- Avoid `D403` if first char cannot be uppercased by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4283](https://github.com/charliermarsh/ruff/pull/4283)
- Avoid panics for f-string rewrites at start-of-file by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4291](https://github.com/charliermarsh/ruff/pull/4291)
- Rewrite `not not a` as `bool(a)` in boolean contexts by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4294](https://github.com/charliermarsh/ruff/pull/4294)
- Include static and class methods in in abstract decorator list by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4298](https://github.com/charliermarsh/ruff/pull/4298)
- Specify exact command in incorrect parentheses suggestion by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4300](https://github.com/charliermarsh/ruff/pull/4300)
- Ignore `TRY301` exceptions without except handlers by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4301](https://github.com/charliermarsh/ruff/pull/4301)
- Preserve whitespace around `ListComp` brackets in `C419` by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/charliermarsh/ruff/pull/4099](https://github.com/charliermarsh/ruff/pull/4099)
- Tweak capitalization of B021 message by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4350](https://github.com/charliermarsh/ruff/pull/4350)
- Avoid debug panic with empty indent replacement by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4364](https://github.com/charliermarsh/ruff/pull/4364)
- Use target name in hardcoded-password diagnostics by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4365](https://github.com/charliermarsh/ruff/pull/4365)
- Avoid underflow in expected-special-method-signature by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4377](https://github.com/charliermarsh/ruff/pull/4377)
- Respect `__all__` imports when determining definition visibility by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4357](https://github.com/charliermarsh/ruff/pull/4357)
- Ignore some methods on list in `flake8-boolean-trap` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4385](https://github.com/charliermarsh/ruff/pull/4385)
- Fix false positives in PD002 by
[@&#8203;evanrittenhouse](https://github.com/evanrittenhouse) in
[https://github.com/charliermarsh/ruff/pull/4337](https://github.com/charliermarsh/ruff/pull/4337)
- Run autofix on initial watcher pass by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4311](https://github.com/charliermarsh/ruff/pull/4311)
- Avoid SIM105 autofixes that would remove comments by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4330](https://github.com/charliermarsh/ruff/pull/4330)
- Handle `.encode` calls on parenthesized expressions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/charliermarsh/ruff/pull/4338](https://github.com/charliermarsh/ruff/pull/4338)
- Truncate `SyntaxError`s before newline character by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4124](https://github.com/charliermarsh/ruff/pull/4124)
- Use non-empty ranges for logical-lines diagnostics by
[@&#8203;MichaReiser](https://github.com/MichaReiser) in
[https://github.com/charliermarsh/ruff/pull/4133](https://github.com/charliermarsh/ruff/pull/4133)

#### New Contributors

- [@&#8203;jleclanche](https://github.com/jleclanche) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4261](https://github.com/charliermarsh/ruff/pull/4261)
- [@&#8203;aureliojargas](https://github.com/aureliojargas) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4306](https://github.com/charliermarsh/ruff/pull/4306)
- [@&#8203;intgr](https://github.com/intgr) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4304](https://github.com/charliermarsh/ruff/pull/4304)
- [@&#8203;mikeleppane](https://github.com/mikeleppane) made their
first contribution in
[https://github.com/charliermarsh/ruff/pull/4169](https://github.com/charliermarsh/ruff/pull/4169)
- [@&#8203;dependabot](https://github.com/dependabot) made their first
contribution in
[https://github.com/charliermarsh/ruff/pull/4354](https://github.com/charliermarsh/ruff/pull/4354)

**Full Changelog**:
astral-sh/ruff@v0.0.265...v0.0.266

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, 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 has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/allenporter/pyrainbird).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS43OS4xIiwidXBkYXRlZEluVmVyIjoiMzUuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants