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

Avoid parsing other parts of a format specification if replacements are present #6858

Merged
merged 7 commits into from
Aug 25, 2023

Conversation

zanieb
Copy link
Member

@zanieb zanieb commented Aug 24, 2023

Closes #6767
Replaces #6773 (this cherry-picks some parts from there)
Alternative to the approach introduced in #6616 which added support for placeholders in format specifications while retaining parsing of other format specification parts.

The idea is that if there are placeholders in a format specification we will not attempt to glean semantic meaning from the other parts of the format specification we'll just extract all of the placeholders ignoring other characters. The dynamic content of placeholders can drastically change the meaning of the format specification in ways unknowable by static analysis. This change prevents false analysis and will ensure safety if we build other rules on top of this at the cost of missing detection of some bad specifications.

Minor note: I've use "replacements" and "placeholders" interchangeably but am trying to go with "placeholder" as I think it's a better term for the static analysis concept here

@zanieb zanieb requested a review from charliermarsh August 24, 2023 19:41
Comment on lines -969 to +974
Err(FormatSpecError::InvalidFormatType)
// Note this should be an `InvalidFormatType` but we give up
// on all other parsing validation when we see a placeholder
Ok(FormatSpec::Dynamic(DynamicFormatSpec {
placeholders: vec![FormatPart::Field {
field_name: String::new(),
conversion_spec: None,
format_spec: String::new()
}]
}))
Copy link
Member Author

Choose a reason for hiding this comment

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

Here's an example case where we no longer detect invalid format type specifications because there was a replacement earlier — this is a trade-off for generally safer analysis.

Comment on lines 826 to 836
#[test]
fn test_format_part_with_others() {
let expected = Ok(FormatSpec {
conversion: None,
fill: None,
align: Some(FormatAlign::Left),
sign: None,
alternate_form: false,
width: Some(20),
grouping_option: None,
precision: None,
format_type: Some(FormatType::Binary),
replacements: vec![FormatPart::Field {
fn test_dynamic_format_spec_with_others() {
let expected = Ok(FormatSpec::Dynamic(DynamicFormatSpec {
placeholders: vec![FormatPart::Field {
field_name: "x".to_string(),
conversion_spec: None,
format_spec: String::new(),
}],
});
}));
assert_eq!(FormatSpec::parse("<{x}20b"), expected);
}
Copy link
Member Author

Choose a reason for hiding this comment

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

Here we lose all these additional fields which were correct in this test but could be wrong depending on the dynamic content of the placeholder.

@zanieb zanieb added the bug Something isn't working label Aug 24, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Aug 24, 2023

PR Check Results

Ecosystem

✅ ecosystem check detected no changes.

Benchmark

Linux

group                                      main                                   pr
-----                                      ----                                   --
formatter/large/dataset.py                 1.04      5.3±0.09ms     7.6 MB/sec    1.00      5.2±0.06ms     7.9 MB/sec
formatter/numpy/ctypeslib.py               1.01   1055.0±3.85µs    15.8 MB/sec    1.00  1041.2±14.72µs    16.0 MB/sec
formatter/numpy/globals.py                 1.08    107.0±6.56µs    27.6 MB/sec    1.00     99.2±1.34µs    29.7 MB/sec
formatter/pydantic/types.py                1.09      2.1±0.14ms    11.9 MB/sec    1.00  1972.2±25.70µs    12.9 MB/sec
linter/all-rules/large/dataset.py          1.00     11.6±0.20ms     3.5 MB/sec    1.08     12.5±0.64ms     3.3 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.00      3.1±0.04ms     5.4 MB/sec    1.08      3.3±0.11ms     5.0 MB/sec
linter/all-rules/numpy/globals.py          1.00    448.1±4.94µs     6.6 MB/sec    1.02    458.4±1.65µs     6.4 MB/sec
linter/all-rules/pydantic/types.py         1.00      6.1±0.09ms     4.2 MB/sec    1.05      6.4±0.10ms     4.0 MB/sec
linter/default-rules/large/dataset.py      1.00      6.1±0.07ms     6.7 MB/sec    1.05      6.4±0.11ms     6.4 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.00  1356.8±15.71µs    12.3 MB/sec    1.03   1395.8±7.68µs    11.9 MB/sec
linter/default-rules/numpy/globals.py      1.01    163.6±0.59µs    18.0 MB/sec    1.00    161.8±2.24µs    18.2 MB/sec
linter/default-rules/pydantic/types.py     1.00      2.9±0.02ms     8.9 MB/sec    1.02      2.9±0.08ms     8.8 MB/sec

Windows

group                                      main                                   pr
-----                                      ----                                   --
formatter/large/dataset.py                 1.00      5.3±0.11ms     7.7 MB/sec    1.00      5.3±0.17ms     7.7 MB/sec
formatter/numpy/ctypeslib.py               1.01  1029.8±32.42µs    16.2 MB/sec    1.00  1024.3±27.21µs    16.3 MB/sec
formatter/numpy/globals.py                 1.00     97.8±3.29µs    30.2 MB/sec    1.01     98.8±5.43µs    29.9 MB/sec
formatter/pydantic/types.py                1.00  1983.0±45.52µs    12.9 MB/sec    1.00  1982.5±57.70µs    12.9 MB/sec
linter/all-rules/large/dataset.py          1.00     12.6±0.16ms     3.2 MB/sec    1.01     12.7±0.20ms     3.2 MB/sec
linter/all-rules/numpy/ctypeslib.py        1.00      3.5±0.05ms     4.8 MB/sec    1.01      3.5±0.09ms     4.8 MB/sec
linter/all-rules/numpy/globals.py          1.00   431.6±10.74µs     6.8 MB/sec    1.01    435.3±9.36µs     6.8 MB/sec
linter/all-rules/pydantic/types.py         1.00      6.5±0.14ms     3.9 MB/sec    1.01      6.6±0.13ms     3.9 MB/sec
linter/default-rules/large/dataset.py      1.00      7.1±0.13ms     5.8 MB/sec    1.00      7.0±0.12ms     5.8 MB/sec
linter/default-rules/numpy/ctypeslib.py    1.00  1503.2±36.14µs    11.1 MB/sec    1.01  1517.2±43.22µs    11.0 MB/sec
linter/default-rules/numpy/globals.py      1.01    177.2±6.23µs    16.6 MB/sec    1.00    176.0±4.86µs    16.8 MB/sec
linter/default-rules/pydantic/types.py     1.00      3.1±0.06ms     8.1 MB/sec    1.00      3.1±0.06ms     8.1 MB/sec

Copy link
Member

@charliermarsh charliermarsh left a comment

Choose a reason for hiding this comment

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

Looks great!

crates/ruff_python_literal/src/format.rs Show resolved Hide resolved
crates/ruff_python_literal/src/format.rs Show resolved Hide resolved
crates/ruff_python_literal/src/format.rs Outdated Show resolved Hide resolved
Thanks Charlie :)
@zanieb zanieb enabled auto-merge (squash) August 25, 2023 16:10
@zanieb
Copy link
Member Author

zanieb commented Aug 25, 2023

#6877 fixes CI

@zanieb zanieb merged commit 100904a into main Aug 25, 2023
@zanieb zanieb deleted the fix/format-spec branch August 25, 2023 17:42
renovate bot referenced this pull request in ixm-one/pytest-cmake-presets Aug 25, 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://beta.ruff.rs/docs)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/releases)) | `^0.0.285`
-> `^0.0.286` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.0.285/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.0.285/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.0.286`](https://github.com/astral-sh/ruff/releases/tag/v0.0.286)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.285...v0.0.286)

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

#### What's Changed

##### New Rules

- \[`flake8-bugbear`] Update `function-call-in-argument-default`
(`B008`) to ignore arguments with immutable annotations by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6784](https://github.com/astral-sh/ruff/pull/6784)
- \[`flake8-bugbear`] Update `mutable-argument-default` (`B006`) to use
`extend-immutable-calls` when determining if annotations are immutable
by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6781](https://github.com/astral-sh/ruff/pull/6781)
- \[`flake8-pie`] Implement `unnecessary-range-start` (`PIE808`) by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6690](https://github.com/astral-sh/ruff/pull/6690)
- \[`flake8-pytest-style`] Add autofix for `PT014` by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6698](https://github.com/astral-sh/ruff/pull/6698)
- \[`pylint`] Implement `no-self-use` (`R6301`) by
[@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/6574](https://github.com/astral-sh/ruff/pull/6574)
- \[`pylint`] Extend `repeated-equality-comparison-target` to check for
mixed orderings and Yoda conditions. by
[@&#8203;tjkuson](https://github.com/tjkuson) in
[https://github.com/astral-sh/ruff/pull/6691](https://github.com/astral-sh/ruff/pull/6691)

##### Settings

- Make isort's `detect-same-package` behavior configurable by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6833](https://github.com/astral-sh/ruff/pull/6833)

##### Bug Fixes

- Apply RUF017 when start is passed via position by
[@&#8203;hauntsaninja](https://github.com/hauntsaninja) in
[https://github.com/astral-sh/ruff/pull/6664](https://github.com/astral-sh/ruff/pull/6664)
- Use `typing_extensions.TypeAlias` for PYI026 fixes on pre-3.10 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6696](https://github.com/astral-sh/ruff/pull/6696)
- Ignore multi-comparisons in `repeated-equality-comparison-target` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6705](https://github.com/astral-sh/ruff/pull/6705)
- Accept empty inner calls in C414 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6725](https://github.com/astral-sh/ruff/pull/6725)
- Allow next in FBT exclusions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6729](https://github.com/astral-sh/ruff/pull/6729)
- Allow `ctypes.WinError()` in flake8-raise by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6731](https://github.com/astral-sh/ruff/pull/6731)
- Ignore star imports when importing symbols in fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6743](https://github.com/astral-sh/ruff/pull/6743)
- Support C419 autofixes for set comprehensions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6744](https://github.com/astral-sh/ruff/pull/6744)
- Avoid attempting to fix unconventional submodule imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6745](https://github.com/astral-sh/ruff/pull/6745)
- Don't trigger `eq-without-hash` when `__hash__` is explicitly set to
`None` by [@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/6739](https://github.com/astral-sh/ruff/pull/6739)
- Avoid E231 if comma is at end-of-line by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6747](https://github.com/astral-sh/ruff/pull/6747)
- Truncate some messages in diagnostics by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6748](https://github.com/astral-sh/ruff/pull/6748)
- Fix isolation groups for unused imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6774](https://github.com/astral-sh/ruff/pull/6774)
- Avoid fixing D200 for docstrings that end in escapes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6779](https://github.com/astral-sh/ruff/pull/6779)
- Parenthesize expressions prior to LibCST parsing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6742](https://github.com/astral-sh/ruff/pull/6742)
- Fallback to end-of-file if ends in trailing continuation by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6789](https://github.com/astral-sh/ruff/pull/6789)
- Confine repeated-equality-comparison-target to names and attributes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6802](https://github.com/astral-sh/ruff/pull/6802)
- Fix `native-literals` handling of int literal with attribute access by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6792](https://github.com/astral-sh/ruff/pull/6792)
- Fix `uncessary-coding-comment` fix when there's leading content by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6775](https://github.com/astral-sh/ruff/pull/6775)
- Avoid attempting to fix PT018 in multi-statement lines by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6829](https://github.com/astral-sh/ruff/pull/6829)
- Update ERA100 to apply to commented dictionary items with trailing
comments by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6822](https://github.com/astral-sh/ruff/pull/6822)
- Avoid parsing other parts of a format specification if replacements
are present by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6858](https://github.com/astral-sh/ruff/pull/6858)
- Avoid panic in unused arguments rule for parameter-free lambda by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6679](https://github.com/astral-sh/ruff/pull/6679)
- Avoid `C417` for `lambda` with default and variadic parameters by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/6752](https://github.com/astral-sh/ruff/pull/6752)
- Add `networkx` to conventional aliases by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6778](https://github.com/astral-sh/ruff/pull/6778)
- Skip serializing cell ID if it's None by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6851](https://github.com/astral-sh/ruff/pull/6851)
- fix is_raw_string for multiple prefixes by
[@&#8203;davidszotten](https://github.com/davidszotten) in
[https://github.com/astral-sh/ruff/pull/6865](https://github.com/astral-sh/ruff/pull/6865)
- Add jupyter notebook cell ids in 4.5+ if missing by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/6853](https://github.com/astral-sh/ruff/pull/6853)

**Full Changelog**:
astral-sh/ruff@v0.0.285...v0.0.286

</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://developer.mend.io/github/ixm-one/pytest-cmake-presets).

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

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
jankatins referenced this pull request in jankatins/pr-workflow-example Aug 26, 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://beta.ruff.rs/docs)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/releases)) | `0.0.285`
-> `0.0.286` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.0.285/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.0.285/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.0.286`](https://github.com/astral-sh/ruff/releases/tag/v0.0.286)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.285...v0.0.286)

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

#### What's Changed

##### New Rules

- \[`flake8-bugbear`] Update `function-call-in-argument-default`
(`B008`) to ignore arguments with immutable annotations by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6784](https://github.com/astral-sh/ruff/pull/6784)
- \[`flake8-bugbear`] Update `mutable-argument-default` (`B006`) to use
`extend-immutable-calls` when determining if annotations are immutable
by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6781](https://github.com/astral-sh/ruff/pull/6781)
- \[`flake8-pie`] Implement `unnecessary-range-start` (`PIE808`) by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6690](https://github.com/astral-sh/ruff/pull/6690)
- \[`flake8-pytest-style`] Add autofix for `PT014` by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6698](https://github.com/astral-sh/ruff/pull/6698)
- \[`pylint`] Implement `no-self-use` (`R6301`) by
[@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/6574](https://github.com/astral-sh/ruff/pull/6574)
- \[`pylint`] Extend `repeated-equality-comparison-target` to check for
mixed orderings and Yoda conditions. by
[@&#8203;tjkuson](https://github.com/tjkuson) in
[https://github.com/astral-sh/ruff/pull/6691](https://github.com/astral-sh/ruff/pull/6691)

##### Settings

- Make isort's `detect-same-package` behavior configurable by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6833](https://github.com/astral-sh/ruff/pull/6833)

##### Bug Fixes

- Apply RUF017 when start is passed via position by
[@&#8203;hauntsaninja](https://github.com/hauntsaninja) in
[https://github.com/astral-sh/ruff/pull/6664](https://github.com/astral-sh/ruff/pull/6664)
- Use `typing_extensions.TypeAlias` for PYI026 fixes on pre-3.10 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6696](https://github.com/astral-sh/ruff/pull/6696)
- Ignore multi-comparisons in `repeated-equality-comparison-target` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6705](https://github.com/astral-sh/ruff/pull/6705)
- Accept empty inner calls in C414 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6725](https://github.com/astral-sh/ruff/pull/6725)
- Allow next in FBT exclusions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6729](https://github.com/astral-sh/ruff/pull/6729)
- Allow `ctypes.WinError()` in flake8-raise by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6731](https://github.com/astral-sh/ruff/pull/6731)
- Ignore star imports when importing symbols in fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6743](https://github.com/astral-sh/ruff/pull/6743)
- Support C419 autofixes for set comprehensions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6744](https://github.com/astral-sh/ruff/pull/6744)
- Avoid attempting to fix unconventional submodule imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6745](https://github.com/astral-sh/ruff/pull/6745)
- Don't trigger `eq-without-hash` when `__hash__` is explicitly set to
`None` by [@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/6739](https://github.com/astral-sh/ruff/pull/6739)
- Avoid E231 if comma is at end-of-line by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6747](https://github.com/astral-sh/ruff/pull/6747)
- Truncate some messages in diagnostics by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6748](https://github.com/astral-sh/ruff/pull/6748)
- Fix isolation groups for unused imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6774](https://github.com/astral-sh/ruff/pull/6774)
- Avoid fixing D200 for docstrings that end in escapes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6779](https://github.com/astral-sh/ruff/pull/6779)
- Parenthesize expressions prior to LibCST parsing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6742](https://github.com/astral-sh/ruff/pull/6742)
- Fallback to end-of-file if ends in trailing continuation by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6789](https://github.com/astral-sh/ruff/pull/6789)
- Confine repeated-equality-comparison-target to names and attributes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6802](https://github.com/astral-sh/ruff/pull/6802)
- Fix `native-literals` handling of int literal with attribute access by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6792](https://github.com/astral-sh/ruff/pull/6792)
- Fix `uncessary-coding-comment` fix when there's leading content by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6775](https://github.com/astral-sh/ruff/pull/6775)
- Avoid attempting to fix PT018 in multi-statement lines by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6829](https://github.com/astral-sh/ruff/pull/6829)
- Update ERA100 to apply to commented dictionary items with trailing
comments by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6822](https://github.com/astral-sh/ruff/pull/6822)
- Avoid parsing other parts of a format specification if replacements
are present by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6858](https://github.com/astral-sh/ruff/pull/6858)
- Avoid panic in unused arguments rule for parameter-free lambda by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6679](https://github.com/astral-sh/ruff/pull/6679)
- Avoid `C417` for `lambda` with default and variadic parameters by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/6752](https://github.com/astral-sh/ruff/pull/6752)
- Add `networkx` to conventional aliases by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6778](https://github.com/astral-sh/ruff/pull/6778)
- Skip serializing cell ID if it's None by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6851](https://github.com/astral-sh/ruff/pull/6851)
- fix is_raw_string for multiple prefixes by
[@&#8203;davidszotten](https://github.com/davidszotten) in
[https://github.com/astral-sh/ruff/pull/6865](https://github.com/astral-sh/ruff/pull/6865)
- Add jupyter notebook cell ids in 4.5+ if missing by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/6853](https://github.com/astral-sh/ruff/pull/6853)

**Full Changelog**:
astral-sh/ruff@v0.0.285...v0.0.286

</details>

---

### Configuration

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

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **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://developer.mend.io/github/jankatins/pr-workflow-example).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi40MC4zIiwidXBkYXRlZEluVmVyIjoiMzYuNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
renovate bot referenced this pull request in allenporter/flux-local Aug 26, 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://beta.ruff.rs/docs)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/releases)) | `==0.0.285`
-> `==0.0.286` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.0.285/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.0.285/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.0.286`](https://github.com/astral-sh/ruff/releases/tag/v0.0.286)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.285...v0.0.286)

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

#### What's Changed

##### New Rules

- \[`flake8-bugbear`] Update `function-call-in-argument-default`
(`B008`) to ignore arguments with immutable annotations by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6784](https://github.com/astral-sh/ruff/pull/6784)
- \[`flake8-bugbear`] Update `mutable-argument-default` (`B006`) to use
`extend-immutable-calls` when determining if annotations are immutable
by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6781](https://github.com/astral-sh/ruff/pull/6781)
- \[`flake8-pie`] Implement `unnecessary-range-start` (`PIE808`) by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6690](https://github.com/astral-sh/ruff/pull/6690)
- \[`flake8-pytest-style`] Add autofix for `PT014` by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6698](https://github.com/astral-sh/ruff/pull/6698)
- \[`pylint`] Implement `no-self-use` (`R6301`) by
[@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/6574](https://github.com/astral-sh/ruff/pull/6574)
- \[`pylint`] Extend `repeated-equality-comparison-target` to check for
mixed orderings and Yoda conditions. by
[@&#8203;tjkuson](https://github.com/tjkuson) in
[https://github.com/astral-sh/ruff/pull/6691](https://github.com/astral-sh/ruff/pull/6691)

##### Settings

- Make isort's `detect-same-package` behavior configurable by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6833](https://github.com/astral-sh/ruff/pull/6833)

##### Bug Fixes

- Apply RUF017 when start is passed via position by
[@&#8203;hauntsaninja](https://github.com/hauntsaninja) in
[https://github.com/astral-sh/ruff/pull/6664](https://github.com/astral-sh/ruff/pull/6664)
- Use `typing_extensions.TypeAlias` for PYI026 fixes on pre-3.10 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6696](https://github.com/astral-sh/ruff/pull/6696)
- Ignore multi-comparisons in `repeated-equality-comparison-target` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6705](https://github.com/astral-sh/ruff/pull/6705)
- Accept empty inner calls in C414 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6725](https://github.com/astral-sh/ruff/pull/6725)
- Allow next in FBT exclusions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6729](https://github.com/astral-sh/ruff/pull/6729)
- Allow `ctypes.WinError()` in flake8-raise by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6731](https://github.com/astral-sh/ruff/pull/6731)
- Ignore star imports when importing symbols in fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6743](https://github.com/astral-sh/ruff/pull/6743)
- Support C419 autofixes for set comprehensions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6744](https://github.com/astral-sh/ruff/pull/6744)
- Avoid attempting to fix unconventional submodule imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6745](https://github.com/astral-sh/ruff/pull/6745)
- Don't trigger `eq-without-hash` when `__hash__` is explicitly set to
`None` by [@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/6739](https://github.com/astral-sh/ruff/pull/6739)
- Avoid E231 if comma is at end-of-line by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6747](https://github.com/astral-sh/ruff/pull/6747)
- Truncate some messages in diagnostics by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6748](https://github.com/astral-sh/ruff/pull/6748)
- Fix isolation groups for unused imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6774](https://github.com/astral-sh/ruff/pull/6774)
- Avoid fixing D200 for docstrings that end in escapes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6779](https://github.com/astral-sh/ruff/pull/6779)
- Parenthesize expressions prior to LibCST parsing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6742](https://github.com/astral-sh/ruff/pull/6742)
- Fallback to end-of-file if ends in trailing continuation by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6789](https://github.com/astral-sh/ruff/pull/6789)
- Confine repeated-equality-comparison-target to names and attributes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6802](https://github.com/astral-sh/ruff/pull/6802)
- Fix `native-literals` handling of int literal with attribute access by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6792](https://github.com/astral-sh/ruff/pull/6792)
- Fix `uncessary-coding-comment` fix when there's leading content by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6775](https://github.com/astral-sh/ruff/pull/6775)
- Avoid attempting to fix PT018 in multi-statement lines by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6829](https://github.com/astral-sh/ruff/pull/6829)
- Update ERA100 to apply to commented dictionary items with trailing
comments by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6822](https://github.com/astral-sh/ruff/pull/6822)
- Avoid parsing other parts of a format specification if replacements
are present by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6858](https://github.com/astral-sh/ruff/pull/6858)
- Avoid panic in unused arguments rule for parameter-free lambda by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6679](https://github.com/astral-sh/ruff/pull/6679)
- Avoid `C417` for `lambda` with default and variadic parameters by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/6752](https://github.com/astral-sh/ruff/pull/6752)
- Add `networkx` to conventional aliases by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6778](https://github.com/astral-sh/ruff/pull/6778)
- Skip serializing cell ID if it's None by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6851](https://github.com/astral-sh/ruff/pull/6851)
- fix is_raw_string for multiple prefixes by
[@&#8203;davidszotten](https://github.com/davidszotten) in
[https://github.com/astral-sh/ruff/pull/6865](https://github.com/astral-sh/ruff/pull/6865)
- Add jupyter notebook cell ids in 4.5+ if missing by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/6853](https://github.com/astral-sh/ruff/pull/6853)

**Full Changelog**:
astral-sh/ruff@v0.0.285...v0.0.286

</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://developer.mend.io/github/allenporter/flux-local).

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

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
renovate bot referenced this pull request in allenporter/pyrainbird Aug 27, 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://beta.ruff.rs/docs)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/releases)) | `==0.0.285`
-> `==0.0.286` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.0.285/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.0.285/0.0.286?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

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

###
[`v0.0.286`](https://github.com/astral-sh/ruff/releases/tag/v0.0.286)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.0.285...v0.0.286)

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

#### What's Changed

##### New Rules

- \[`flake8-bugbear`] Update `function-call-in-argument-default`
(`B008`) to ignore arguments with immutable annotations by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6784](https://github.com/astral-sh/ruff/pull/6784)
- \[`flake8-bugbear`] Update `mutable-argument-default` (`B006`) to use
`extend-immutable-calls` when determining if annotations are immutable
by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6781](https://github.com/astral-sh/ruff/pull/6781)
- \[`flake8-pie`] Implement `unnecessary-range-start` (`PIE808`) by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6690](https://github.com/astral-sh/ruff/pull/6690)
- \[`flake8-pytest-style`] Add autofix for `PT014` by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6698](https://github.com/astral-sh/ruff/pull/6698)
- \[`pylint`] Implement `no-self-use` (`R6301`) by
[@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/6574](https://github.com/astral-sh/ruff/pull/6574)
- \[`pylint`] Extend `repeated-equality-comparison-target` to check for
mixed orderings and Yoda conditions. by
[@&#8203;tjkuson](https://github.com/tjkuson) in
[https://github.com/astral-sh/ruff/pull/6691](https://github.com/astral-sh/ruff/pull/6691)

##### Settings

- Make isort's `detect-same-package` behavior configurable by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6833](https://github.com/astral-sh/ruff/pull/6833)

##### Bug Fixes

- Apply RUF017 when start is passed via position by
[@&#8203;hauntsaninja](https://github.com/hauntsaninja) in
[https://github.com/astral-sh/ruff/pull/6664](https://github.com/astral-sh/ruff/pull/6664)
- Use `typing_extensions.TypeAlias` for PYI026 fixes on pre-3.10 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6696](https://github.com/astral-sh/ruff/pull/6696)
- Ignore multi-comparisons in `repeated-equality-comparison-target` by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6705](https://github.com/astral-sh/ruff/pull/6705)
- Accept empty inner calls in C414 by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6725](https://github.com/astral-sh/ruff/pull/6725)
- Allow next in FBT exclusions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6729](https://github.com/astral-sh/ruff/pull/6729)
- Allow `ctypes.WinError()` in flake8-raise by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6731](https://github.com/astral-sh/ruff/pull/6731)
- Ignore star imports when importing symbols in fixes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6743](https://github.com/astral-sh/ruff/pull/6743)
- Support C419 autofixes for set comprehensions by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6744](https://github.com/astral-sh/ruff/pull/6744)
- Avoid attempting to fix unconventional submodule imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6745](https://github.com/astral-sh/ruff/pull/6745)
- Don't trigger `eq-without-hash` when `__hash__` is explicitly set to
`None` by [@&#8203;LaBatata101](https://github.com/LaBatata101) in
[https://github.com/astral-sh/ruff/pull/6739](https://github.com/astral-sh/ruff/pull/6739)
- Avoid E231 if comma is at end-of-line by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6747](https://github.com/astral-sh/ruff/pull/6747)
- Truncate some messages in diagnostics by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6748](https://github.com/astral-sh/ruff/pull/6748)
- Fix isolation groups for unused imports by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6774](https://github.com/astral-sh/ruff/pull/6774)
- Avoid fixing D200 for docstrings that end in escapes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6779](https://github.com/astral-sh/ruff/pull/6779)
- Parenthesize expressions prior to LibCST parsing by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6742](https://github.com/astral-sh/ruff/pull/6742)
- Fallback to end-of-file if ends in trailing continuation by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6789](https://github.com/astral-sh/ruff/pull/6789)
- Confine repeated-equality-comparison-target to names and attributes by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6802](https://github.com/astral-sh/ruff/pull/6802)
- Fix `native-literals` handling of int literal with attribute access by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6792](https://github.com/astral-sh/ruff/pull/6792)
- Fix `uncessary-coding-comment` fix when there's leading content by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6775](https://github.com/astral-sh/ruff/pull/6775)
- Avoid attempting to fix PT018 in multi-statement lines by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6829](https://github.com/astral-sh/ruff/pull/6829)
- Update ERA100 to apply to commented dictionary items with trailing
comments by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6822](https://github.com/astral-sh/ruff/pull/6822)
- Avoid parsing other parts of a format specification if replacements
are present by [@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6858](https://github.com/astral-sh/ruff/pull/6858)
- Avoid panic in unused arguments rule for parameter-free lambda by
[@&#8203;charliermarsh](https://github.com/charliermarsh) in
[https://github.com/astral-sh/ruff/pull/6679](https://github.com/astral-sh/ruff/pull/6679)
- Avoid `C417` for `lambda` with default and variadic parameters by
[@&#8203;dhruvmanila](https://github.com/dhruvmanila) in
[https://github.com/astral-sh/ruff/pull/6752](https://github.com/astral-sh/ruff/pull/6752)
- Add `networkx` to conventional aliases by
[@&#8203;zanieb](https://github.com/zanieb) in
[https://github.com/astral-sh/ruff/pull/6778](https://github.com/astral-sh/ruff/pull/6778)
- Skip serializing cell ID if it's None by
[@&#8203;harupy](https://github.com/harupy) in
[https://github.com/astral-sh/ruff/pull/6851](https://github.com/astral-sh/ruff/pull/6851)
- fix is_raw_string for multiple prefixes by
[@&#8203;davidszotten](https://github.com/davidszotten) in
[https://github.com/astral-sh/ruff/pull/6865](https://github.com/astral-sh/ruff/pull/6865)
- Add jupyter notebook cell ids in 4.5+ if missing by
[@&#8203;konstin](https://github.com/konstin) in
[https://github.com/astral-sh/ruff/pull/6853](https://github.com/astral-sh/ruff/pull/6853)

**Full Changelog**:
astral-sh/ruff@v0.0.285...v0.0.286

</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://developer.mend.io/github/allenporter/pyrainbird).

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

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
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Spurious PLE1300 error with 0.0.285
2 participants