Bumpsblack from 24.10.0 to 25.1.0.
Release notes
Sourced fromblack's releases.
25.1.0
Highlights
This release introduces the new 2025 stable style (#4558), stabilizingthe following changes:
- Normalize casing of Unicode escape characters in strings to lowercase (#2916)
- Fix inconsistencies in whether certain strings are detected as docstrings (#4095)
- Consistently add trailing commas to typed function parameters (#4164)
- Remove redundant parentheses in if guards for case blocks (#4214)
- Add parentheses to if clauses in case blocks when the line is too long (#4269)
- Whitespace before
# fmt: skip comments is no longer normalized (#4146) - Fix line length computation for certain expressions that involve the power operator (#4154)
- Check if there is a newline before the terminating quotes of a docstring (#4185)
- Fix type annotation spacing between
* and more complex type variable tuple (#4440)
The following changes were not in any previous release:
- Remove parentheses around sole list items (#4312)
- Generic function definitions are now formatted more elegantly: parameters aresplit over multiple lines first instead of type parameter definitions (#4553)
Stable style
- Fix formatting cells in IPython notebooks with magic methods and starting or trailingempty lines (#4484)
- Fix crash when formatting
with statements containing tuple generators/unpacking(#4538)
Preview style
- Fix/remove string merging changing f-string quotes on f-strings with internal quotes(#4498)
- Collapse multiple empty lines after an import into one (#4489)
- Prevent
string_processing andwrap_long_dict_values_in_parens from removingparentheses around long dictionary values (#4377) - Move
wrap_long_dict_values_in_parens from the unstable to preview style (#4561)
Packaging
- Store license identifier inside the
License-Expression metadata field, seePEP 639. (#4479)
Performance
- Speed up the
is_fstring_start function in Black's tokenizer (#4541)
Integrations
- If using stdin with
--stdin-filename set to a force excluded path, stdin won't be
... (truncated)
Changelog
Sourced fromblack's changelog.
25.1.0
Highlights
This release introduces the new 2025 stable style (#4558), stabilizingthe following changes:
- Normalize casing of Unicode escape characters in strings to lowercase (#2916)
- Fix inconsistencies in whether certain strings are detected as docstrings (#4095)
- Consistently add trailing commas to typed function parameters (#4164)
- Remove redundant parentheses in if guards for case blocks (#4214)
- Add parentheses to if clauses in case blocks when the line is too long (#4269)
- Whitespace before
# fmt: skip comments is no longer normalized (#4146) - Fix line length computation for certain expressions that involve the power operator (#4154)
- Check if there is a newline before the terminating quotes of a docstring (#4185)
- Fix type annotation spacing between
* and more complex type variable tuple (#4440)
The following changes were not in any previous release:
- Remove parentheses around sole list items (#4312)
- Generic function definitions are now formatted more elegantly: parameters aresplit over multiple lines first instead of type parameter definitions (#4553)
Stable style
- Fix formatting cells in IPython notebooks with magic methods and starting or trailingempty lines (#4484)
- Fix crash when formatting
with statements containing tuple generators/unpacking(#4538)
Preview style
- Fix/remove string merging changing f-string quotes on f-strings with internal quotes(#4498)
- Collapse multiple empty lines after an import into one (#4489)
- Prevent
string_processing andwrap_long_dict_values_in_parens from removingparentheses around long dictionary values (#4377) - Move
wrap_long_dict_values_in_parens from the unstable to preview style (#4561)
Packaging
- Store license identifier inside the
License-Expression metadata field, seePEP 639. (#4479)
Performance
- Speed up the
is_fstring_start function in Black's tokenizer (#4541)
Integrations
... (truncated)
Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting@dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebase will rebase this PR@dependabot recreate will recreate this PR, overwriting any edits that have been made to it@dependabot merge will merge this PR after your CI passes on it@dependabot squash and merge will squash and merge this PR after your CI passes on it@dependabot cancel merge will cancel a previously requested merge and block automerging@dependabot reopen will reopen this PR if it is closed@dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency@dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumpsblack from 24.10.0 to 25.1.0.
Release notes
Sourced fromblack's releases.
... (truncated)
Changelog
Sourced fromblack's changelog.
... (truncated)
Commits
8a737e7Prepare release 25.1.0 (#4563)d330deedocs: We're not going to use backslashes for the with statement (#4564)3d81290Movewrap_long_dict_values_in_parensto the preview style (#4561)459562cImprove function declaration wrapping when it contains generic type definitio...99dbf30Cache executor to avoid hitting open file limits (#4560)c0b92f3Prepare the 2025 stable style (#4558)e58baf1Add test for#1187 (#4559)1455ae4Fix docs CI (#4555)584d033fix: Don't remove parenthesis around long dictionary values (#4377)6e96540Fix CI (#4551)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)