Skip to content

Conversation

@cobaltt7
Copy link
Collaborator

@cobaltt7 cobaltt7 commented Dec 7, 2025

Stabilized all preview features except wrap_comprehension_in and wrap_long_dict_values_in_parens.

Closes #4875

TODO:

  • Remove unused imports
  • Fix broken tests
  • Remove --preview from stabilized tests
  • Regenerate _width_table.py

Signed-off-by: cobalt <[email protected]>
@github-actions
Copy link

github-actions bot commented Dec 7, 2025

diff-shades results comparing this PR (ca22cee) to main (e71305b):

--preview style (View full diff):
╭─────────────────────── Summary ────────────────────────╮
│ 1 projects & 2 files changed / 6 changes [+4/-2]       │
│                                                        │
│ ... out of 2 869 121 lines, 13 644 files & 22 projects │
╰────────────────────────────────────────────────────────╯

Differences found.

--stable style (View full diff):
╭──────────────────────────── Summary ─────────────────────────────╮
│ 18 projects & 920 files changed / 17 290 changes [+5611/-11 679] │
│                                                                  │
│ ... out of 2 869 121 lines, 13 644 files & 22 projects           │
╰──────────────────────────────────────────────────────────────────╯

Differences found.


What is this? | Workflow run | diff-shades documentation

@cobaltt7 cobaltt7 merged commit 6305bf1 into main Jan 18, 2026
48 of 49 checks passed
@cobaltt7 cobaltt7 deleted the black26 branch January 18, 2026 04:30
luketainton pushed a commit to luketainton/repos_epage that referenced this pull request Jan 18, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/black/26.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/black/25.12.0/26.1.0?slim=true) |

---

### Release Notes

<details>
<summary>psf/black (black)</summary>

### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)

[Compare Source](psf/black@25.12.0...26.1.0)

##### Highlights

Introduces the 2026 stable style ([#&#8203;4892](psf/black#4892)), stabilizing the following changes:

- `always_one_newline_after_import`: Always force one blank line after import
  statements, except when the line after the import is a comment or an import statement
  ([#&#8203;4489](psf/black#4489))
- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,
  such as `def foo(): return "mock" # fmt: skip`, where previously the declaration would
  have been incorrectly collapsed ([#&#8203;4800](psf/black#4800))
- `fix_module_docstring_detection`: Fix module docstrings being treated as normal
  strings if preceded by comments ([#&#8203;4764](psf/black#4764))
- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#&#8203;4777](psf/black#4777))
- `multiline_string_handling`: Make expressions involving multiline strings more compact
  ([#&#8203;1879](psf/black#1879))
- `normalize_cr_newlines`: Add `\r` style newlines to the potential newlines to
  normalize file newlines both from and to ([#&#8203;4710](psf/black#4710))
- `remove_parens_around_except_types`: Remove parentheses around multiple exception
  types in `except` and `except*` without `as` ([#&#8203;4720](psf/black#4720))
- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand
  side of assignments while preserving magic trailing commas and intentional multiline
  formatting ([#&#8203;4865](psf/black#4865))
- `standardize_type_comments`: Format type comments which have zero or more spaces
  between `#` and `type:` or between `type:` and value to `# type: (value)` ([#&#8203;4645](psf/black#4645))

The following change was not in any previous stable release:

- Regenerated the `_width_table.py` and added tests for the Khmer language ([#&#8203;4253](psf/black#4253))

This release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's
`.gitignore` logic ([#&#8203;4958](psf/black#4958)). Now, files will be ignored if a pattern matches them, even
if the parent directory is directly unignored. For example, Black would previously
format `exclude/not_this/foo.py` with this `.gitignore`:

```
exclude/
!exclude/not_this/
```

Now, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and
all of it's children are included in formatting (and in Git), use this `.gitignore`:

```
*/exclude/*
!*/exclude/not_this/
```

This new behavior matches Git. The leading `*/` are only necessary if you wish to ignore
matching subdirectories (like the previous behavior did), and not just matching root
directories.

##### Output

- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#&#8203;4952](psf/black#4952))

##### Integrations

- Upgraded PyPI upload workflow to use Trusted Publishing ([#&#8203;4611](psf/black#4611))

</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 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 [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->

Reviewed-on: https://git.tainton.uk/repos/epage/pulls/191
Co-authored-by: renovate[bot] <[email protected]>
Co-committed-by: renovate[bot] <[email protected]>
luketainton pushed a commit to luketainton/repos_webexmemebot that referenced this pull request Jan 18, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/black/26.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/black/25.12.0/26.1.0?slim=true) |

---

### Release Notes

<details>
<summary>psf/black (black)</summary>

### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)

[Compare Source](psf/black@25.12.0...26.1.0)

##### Highlights

Introduces the 2026 stable style ([#&#8203;4892](psf/black#4892)), stabilizing the following changes:

- `always_one_newline_after_import`: Always force one blank line after import
  statements, except when the line after the import is a comment or an import statement
  ([#&#8203;4489](psf/black#4489))
- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,
  such as `def foo(): return "mock" # fmt: skip`, where previously the declaration would
  have been incorrectly collapsed ([#&#8203;4800](psf/black#4800))
- `fix_module_docstring_detection`: Fix module docstrings being treated as normal
  strings if preceded by comments ([#&#8203;4764](psf/black#4764))
- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#&#8203;4777](psf/black#4777))
- `multiline_string_handling`: Make expressions involving multiline strings more compact
  ([#&#8203;1879](psf/black#1879))
- `normalize_cr_newlines`: Add `\r` style newlines to the potential newlines to
  normalize file newlines both from and to ([#&#8203;4710](psf/black#4710))
- `remove_parens_around_except_types`: Remove parentheses around multiple exception
  types in `except` and `except*` without `as` ([#&#8203;4720](psf/black#4720))
- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand
  side of assignments while preserving magic trailing commas and intentional multiline
  formatting ([#&#8203;4865](psf/black#4865))
- `standardize_type_comments`: Format type comments which have zero or more spaces
  between `#` and `type:` or between `type:` and value to `# type: (value)` ([#&#8203;4645](psf/black#4645))

The following change was not in any previous stable release:

- Regenerated the `_width_table.py` and added tests for the Khmer language ([#&#8203;4253](psf/black#4253))

This release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's
`.gitignore` logic ([#&#8203;4958](psf/black#4958)). Now, files will be ignored if a pattern matches them, even
if the parent directory is directly unignored. For example, Black would previously
format `exclude/not_this/foo.py` with this `.gitignore`:

```
exclude/
!exclude/not_this/
```

Now, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and
all of it's children are included in formatting (and in Git), use this `.gitignore`:

```
*/exclude/*
!*/exclude/not_this/
```

This new behavior matches Git. The leading `*/` are only necessary if you wish to ignore
matching subdirectories (like the previous behavior did), and not just matching root
directories.

##### Output

- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#&#8203;4952](psf/black#4952))

##### Integrations

- Upgraded PyPI upload workflow to use Trusted Publishing ([#&#8203;4611](psf/black#4611))

</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 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 [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->

Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/547
Co-authored-by: renovate[bot] <[email protected]>
Co-committed-by: renovate[bot] <[email protected]>
luketainton pushed a commit to luketainton/repos_roboluke that referenced this pull request Jan 18, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/black/26.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/black/25.12.0/26.1.0?slim=true) |

---

### Release Notes

<details>
<summary>psf/black (black)</summary>

### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)

[Compare Source](psf/black@25.12.0...26.1.0)

##### Highlights

Introduces the 2026 stable style ([#&#8203;4892](psf/black#4892)), stabilizing the following changes:

- `always_one_newline_after_import`: Always force one blank line after import
  statements, except when the line after the import is a comment or an import statement
  ([#&#8203;4489](psf/black#4489))
- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,
  such as `def foo(): return "mock" # fmt: skip`, where previously the declaration would
  have been incorrectly collapsed ([#&#8203;4800](psf/black#4800))
- `fix_module_docstring_detection`: Fix module docstrings being treated as normal
  strings if preceded by comments ([#&#8203;4764](psf/black#4764))
- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#&#8203;4777](psf/black#4777))
- `multiline_string_handling`: Make expressions involving multiline strings more compact
  ([#&#8203;1879](psf/black#1879))
- `normalize_cr_newlines`: Add `\r` style newlines to the potential newlines to
  normalize file newlines both from and to ([#&#8203;4710](psf/black#4710))
- `remove_parens_around_except_types`: Remove parentheses around multiple exception
  types in `except` and `except*` without `as` ([#&#8203;4720](psf/black#4720))
- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand
  side of assignments while preserving magic trailing commas and intentional multiline
  formatting ([#&#8203;4865](psf/black#4865))
- `standardize_type_comments`: Format type comments which have zero or more spaces
  between `#` and `type:` or between `type:` and value to `# type: (value)` ([#&#8203;4645](psf/black#4645))

The following change was not in any previous stable release:

- Regenerated the `_width_table.py` and added tests for the Khmer language ([#&#8203;4253](psf/black#4253))

This release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's
`.gitignore` logic ([#&#8203;4958](psf/black#4958)). Now, files will be ignored if a pattern matches them, even
if the parent directory is directly unignored. For example, Black would previously
format `exclude/not_this/foo.py` with this `.gitignore`:

```
exclude/
!exclude/not_this/
```

Now, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and
all of it's children are included in formatting (and in Git), use this `.gitignore`:

```
*/exclude/*
!*/exclude/not_this/
```

This new behavior matches Git. The leading `*/` are only necessary if you wish to ignore
matching subdirectories (like the previous behavior did), and not just matching root
directories.

##### Output

- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#&#8203;4952](psf/black#4952))

##### Integrations

- Upgraded PyPI upload workflow to use Trusted Publishing ([#&#8203;4611](psf/black#4611))

</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 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 [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->

Reviewed-on: https://git.tainton.uk/repos/roboluke/pulls/409
Co-authored-by: renovate[bot] <[email protected]>
Co-committed-by: renovate[bot] <[email protected]>
luketainton pushed a commit to luketainton/repos_pypilot that referenced this pull request Jan 18, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/black/26.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/black/25.12.0/26.1.0?slim=true) |

---

### Release Notes

<details>
<summary>psf/black (black)</summary>

### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)

[Compare Source](psf/black@25.12.0...26.1.0)

##### Highlights

Introduces the 2026 stable style ([#&#8203;4892](psf/black#4892)), stabilizing the following changes:

- `always_one_newline_after_import`: Always force one blank line after import
  statements, except when the line after the import is a comment or an import statement
  ([#&#8203;4489](psf/black#4489))
- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,
  such as `def foo(): return "mock" # fmt: skip`, where previously the declaration would
  have been incorrectly collapsed ([#&#8203;4800](psf/black#4800))
- `fix_module_docstring_detection`: Fix module docstrings being treated as normal
  strings if preceded by comments ([#&#8203;4764](psf/black#4764))
- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#&#8203;4777](psf/black#4777))
- `multiline_string_handling`: Make expressions involving multiline strings more compact
  ([#&#8203;1879](psf/black#1879))
- `normalize_cr_newlines`: Add `\r` style newlines to the potential newlines to
  normalize file newlines both from and to ([#&#8203;4710](psf/black#4710))
- `remove_parens_around_except_types`: Remove parentheses around multiple exception
  types in `except` and `except*` without `as` ([#&#8203;4720](psf/black#4720))
- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand
  side of assignments while preserving magic trailing commas and intentional multiline
  formatting ([#&#8203;4865](psf/black#4865))
- `standardize_type_comments`: Format type comments which have zero or more spaces
  between `#` and `type:` or between `type:` and value to `# type: (value)` ([#&#8203;4645](psf/black#4645))

The following change was not in any previous stable release:

- Regenerated the `_width_table.py` and added tests for the Khmer language ([#&#8203;4253](psf/black#4253))

This release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's
`.gitignore` logic ([#&#8203;4958](psf/black#4958)). Now, files will be ignored if a pattern matches them, even
if the parent directory is directly unignored. For example, Black would previously
format `exclude/not_this/foo.py` with this `.gitignore`:

```
exclude/
!exclude/not_this/
```

Now, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and
all of it's children are included in formatting (and in Git), use this `.gitignore`:

```
*/exclude/*
!*/exclude/not_this/
```

This new behavior matches Git. The leading `*/` are only necessary if you wish to ignore
matching subdirectories (like the previous behavior did), and not just matching root
directories.

##### Output

- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#&#8203;4952](psf/black#4952))

##### Integrations

- Upgraded PyPI upload workflow to use Trusted Publishing ([#&#8203;4611](psf/black#4611))

</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 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 [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->

Reviewed-on: https://git.tainton.uk/repos/pypilot/pulls/408
Co-authored-by: renovate[bot] <[email protected]>
Co-committed-by: renovate[bot] <[email protected]>
luketainton pushed a commit to luketainton/luke_instant-msg-api that referenced this pull request Jan 18, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/black/26.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/black/25.12.0/26.1.0?slim=true) |

---

### Release Notes

<details>
<summary>psf/black (black)</summary>

### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)

[Compare Source](psf/black@25.12.0...26.1.0)

##### Highlights

Introduces the 2026 stable style ([#&#8203;4892](psf/black#4892)), stabilizing the following changes:

- `always_one_newline_after_import`: Always force one blank line after import
  statements, except when the line after the import is a comment or an import statement
  ([#&#8203;4489](psf/black#4489))
- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,
  such as `def foo(): return "mock" # fmt: skip`, where previously the declaration would
  have been incorrectly collapsed ([#&#8203;4800](psf/black#4800))
- `fix_module_docstring_detection`: Fix module docstrings being treated as normal
  strings if preceded by comments ([#&#8203;4764](psf/black#4764))
- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#&#8203;4777](psf/black#4777))
- `multiline_string_handling`: Make expressions involving multiline strings more compact
  ([#&#8203;1879](psf/black#1879))
- `normalize_cr_newlines`: Add `\r` style newlines to the potential newlines to
  normalize file newlines both from and to ([#&#8203;4710](psf/black#4710))
- `remove_parens_around_except_types`: Remove parentheses around multiple exception
  types in `except` and `except*` without `as` ([#&#8203;4720](psf/black#4720))
- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand
  side of assignments while preserving magic trailing commas and intentional multiline
  formatting ([#&#8203;4865](psf/black#4865))
- `standardize_type_comments`: Format type comments which have zero or more spaces
  between `#` and `type:` or between `type:` and value to `# type: (value)` ([#&#8203;4645](psf/black#4645))

The following change was not in any previous stable release:

- Regenerated the `_width_table.py` and added tests for the Khmer language ([#&#8203;4253](psf/black#4253))

This release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's
`.gitignore` logic ([#&#8203;4958](psf/black#4958)). Now, files will be ignored if a pattern matches them, even
if the parent directory is directly unignored. For example, Black would previously
format `exclude/not_this/foo.py` with this `.gitignore`:

```
exclude/
!exclude/not_this/
```

Now, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and
all of it's children are included in formatting (and in Git), use this `.gitignore`:

```
*/exclude/*
!*/exclude/not_this/
```

This new behavior matches Git. The leading `*/` are only necessary if you wish to ignore
matching subdirectories (like the previous behavior did), and not just matching root
directories.

##### Output

- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#&#8203;4952](psf/black#4952))

##### Integrations

- Upgraded PyPI upload workflow to use Trusted Publishing ([#&#8203;4611](psf/black#4611))

</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 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 [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsidHlwZS9kZXBlbmRlbmNpZXMiXX0=-->

Reviewed-on: https://git.tainton.uk/luke/instant-msg-api/pulls/236
Co-authored-by: renovate[bot] <[email protected]>
Co-committed-by: renovate[bot] <[email protected]>
luketainton pushed a commit to luketainton/repos_PwnedPW that referenced this pull request Jan 18, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [black](https://github.com/psf/black) ([changelog](https://github.com/psf/black/blob/main/CHANGES.md)) | `<25.12.1,>=25.12.0` → `<26.1.1,>=26.1.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/black/26.1.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/black/25.12.0/26.1.0?slim=true) |

---

### Release Notes

<details>
<summary>psf/black (black)</summary>

### [`v26.1.0`](https://github.com/psf/black/blob/HEAD/CHANGES.md#2610)

[Compare Source](psf/black@25.12.0...26.1.0)

##### Highlights

Introduces the 2026 stable style ([#&#8203;4892](psf/black#4892)), stabilizing the following changes:

- `always_one_newline_after_import`: Always force one blank line after import
  statements, except when the line after the import is a comment or an import statement
  ([#&#8203;4489](psf/black#4489))
- `fix_fmt_skip_in_one_liners`: Fix `# fmt: skip` behavior on one-liner declarations,
  such as `def foo(): return "mock" # fmt: skip`, where previously the declaration would
  have been incorrectly collapsed ([#&#8203;4800](psf/black#4800))
- `fix_module_docstring_detection`: Fix module docstrings being treated as normal
  strings if preceded by comments ([#&#8203;4764](psf/black#4764))
- `fix_type_expansion_split`: Fix type expansions split in generic functions ([#&#8203;4777](psf/black#4777))
- `multiline_string_handling`: Make expressions involving multiline strings more compact
  ([#&#8203;1879](psf/black#1879))
- `normalize_cr_newlines`: Add `\r` style newlines to the potential newlines to
  normalize file newlines both from and to ([#&#8203;4710](psf/black#4710))
- `remove_parens_around_except_types`: Remove parentheses around multiple exception
  types in `except` and `except*` without `as` ([#&#8203;4720](psf/black#4720))
- `remove_parens_from_assignment_lhs`: Remove unnecessary parentheses from the left-hand
  side of assignments while preserving magic trailing commas and intentional multiline
  formatting ([#&#8203;4865](psf/black#4865))
- `standardize_type_comments`: Format type comments which have zero or more spaces
  between `#` and `type:` or between `type:` and value to `# type: (value)` ([#&#8203;4645](psf/black#4645))

The following change was not in any previous stable release:

- Regenerated the `_width_table.py` and added tests for the Khmer language ([#&#8203;4253](psf/black#4253))

This release alo bumps `pathspec` to v1 and fixes inconsistencies with Git's
`.gitignore` logic ([#&#8203;4958](psf/black#4958)). Now, files will be ignored if a pattern matches them, even
if the parent directory is directly unignored. For example, Black would previously
format `exclude/not_this/foo.py` with this `.gitignore`:

```
exclude/
!exclude/not_this/
```

Now, `exclude/not_this/foo.py` will remain ignored. To ensure `exclude/not_this/` and
all of it's children are included in formatting (and in Git), use this `.gitignore`:

```
*/exclude/*
!*/exclude/not_this/
```

This new behavior matches Git. The leading `*/` are only necessary if you wish to ignore
matching subdirectories (like the previous behavior did), and not just matching root
directories.

##### Output

- Explicitly shutdown the multiprocessing manager when run in diff mode too ([#&#8203;4952](psf/black#4952))

##### Integrations

- Upgraded PyPI upload workflow to use Trusted Publishing ([#&#8203;4611](psf/black#4611))

</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 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 [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi44NC4yIiwidXBkYXRlZEluVmVyIjoiNDIuODQuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsibGludGluZyJdfQ==-->

Reviewed-on: https://git.tainton.uk/repos/PwnedPW/pulls/319
Co-authored-by: renovate[bot] <[email protected]>
Co-committed-by: renovate[bot] <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Setting the 2026 stable style

4 participants