psf/black (black)
### [`v24.2.0`](https://togithub.com/psf/black/blob/HEAD/CHANGES.md#2420)
[Compare Source](https://togithub.com/psf/black/compare/24.1.1...24.2.0)
##### Stable style
- Fixed a bug where comments where mistakenly removed along with redundant parentheses
([#4218](https://togithub.com/psf/black/issues/4218))
##### Preview style
- Move the `hug_parens_with_braces_and_square_brackets` feature to the unstable style
due to an outstanding crash and proposed formatting tweaks ([#4198](https://togithub.com/psf/black/issues/4198))
- Fixed a bug where base expressions caused inconsistent formatting of \*\* in tenary
expression ([#4154](https://togithub.com/psf/black/issues/4154))
- Checking for newline before adding one on docstring that is almost at the line limit
([#4185](https://togithub.com/psf/black/issues/4185))
- Remove redundant parentheses in `case` statement `if` guards ([#4214](https://togithub.com/psf/black/issues/4214)).
##### Configuration
- Fix issue where *Black* would ignore input files in the presence of symlinks ([#4222](https://togithub.com/psf/black/issues/4222))
- *Black* now ignores `pyproject.toml` that is missing a `tool.black` section when
discovering project root and configuration. Since *Black* continues to use version
control as an indicator of project root, this is expected to primarily change behavior
for users in a monorepo setup (desirably). If you wish to preserve previous behavior,
simply add an empty `[tool.black]` to the previously discovered `pyproject.toml`
([#4204](https://togithub.com/psf/black/issues/4204))
##### Output
- Black will swallow any `SyntaxWarning`s or `DeprecationWarning`s produced by the `ast`
module when performing equivalence checks ([#4189](https://togithub.com/psf/black/issues/4189))
##### Integrations
- Add a JSONSchema and provide a validate-pyproject entry-point ([#4181](https://togithub.com/psf/black/issues/4181))
### [`v24.1.1`](https://togithub.com/psf/black/blob/HEAD/CHANGES.md#2411)
[Compare Source](https://togithub.com/psf/black/compare/24.1.0...24.1.1)
Bugfix release to fix a bug that made Black unusable on certain file systems with strict
limits on path length.
##### Preview style
- Consistently add trailing comma on typed parameters ([#4164](https://togithub.com/psf/black/issues/4164))
##### Configuration
- Shorten the length of the name of the cache file to fix crashes on file systems that
do not support long paths ([#4176](https://togithub.com/psf/black/issues/4176))
### [`v24.1.0`](https://togithub.com/psf/black/blob/HEAD/CHANGES.md#2410)
[Compare Source](https://togithub.com/psf/black/compare/23.12.1...24.1.0)
##### Highlights
This release introduces the new 2024 stable style ([#4106](https://togithub.com/psf/black/issues/4106)), stabilizing the following
changes:
- Add parentheses around `if`-`else` expressions ([#2278](https://togithub.com/psf/black/issues/2278))
- Dummy class and function implementations consisting only of `...` are formatted more
compactly ([#3796](https://togithub.com/psf/black/issues/3796))
- If an assignment statement is too long, we now prefer splitting on the right-hand side
([#3368](https://togithub.com/psf/black/issues/3368))
- Hex codes in Unicode escape sequences are now standardized to lowercase ([#2916](https://togithub.com/psf/black/issues/2916))
- Allow empty first lines at the beginning of most blocks ([#3967](https://togithub.com/psf/black/issues/3967), [#4061](https://togithub.com/psf/black/issues/4061))
- Add parentheses around long type annotations ([#3899](https://togithub.com/psf/black/issues/3899))
- Enforce newline after module docstrings ([#3932](https://togithub.com/psf/black/issues/3932), [#4028](https://togithub.com/psf/black/issues/4028))
- Fix incorrect magic trailing comma handling in return types ([#3916](https://togithub.com/psf/black/issues/3916))
- Remove blank lines before class docstrings ([#3692](https://togithub.com/psf/black/issues/3692))
- Wrap multiple context managers in parentheses if combined in a single `with` statement
([#3489](https://togithub.com/psf/black/issues/3489))
- Fix bug in line length calculations for power operations ([#3942](https://togithub.com/psf/black/issues/3942))
- Add trailing commas to collection literals even if there's a comment after the last
entry ([#3393](https://togithub.com/psf/black/issues/3393))
- When using `--skip-magic-trailing-comma` or `-C`, trailing commas are stripped from
subscript expressions with more than 1 element ([#3209](https://togithub.com/psf/black/issues/3209))
- Add extra blank lines in stubs in a few cases ([#3564](https://togithub.com/psf/black/issues/3564), [#3862](https://togithub.com/psf/black/issues/3862))
- Accept raw strings as docstrings ([#3947](https://togithub.com/psf/black/issues/3947))
- Split long lines in case blocks ([#4024](https://togithub.com/psf/black/issues/4024))
- Stop removing spaces from walrus operators within subscripts ([#3823](https://togithub.com/psf/black/issues/3823))
- Fix incorrect formatting of certain async statements ([#3609](https://togithub.com/psf/black/issues/3609))
- Allow combining `# fmt: skip` with other comments ([#3959](https://togithub.com/psf/black/issues/3959))
There are already a few improvements in the `--preview` style, which are slated for the
2025 stable style. Try them out and
[share your feedback](https://togithub.com/psf/black/issues). In the past, the preview
style has included some features that we were not able to stabilize. This year, we're
adding a separate `--unstable` style for features with known problems. Now, the
`--preview` style only includes features that we actually expect to make it into next
year's stable style.
##### Stable style
Several bug fixes were made in features that are moved to the stable style in this
release:
- Fix comment handling when parenthesising conditional expressions ([#4134](https://togithub.com/psf/black/issues/4134))
- Fix bug where spaces were not added around parenthesized walruses in subscripts,
unlike other binary operators ([#4109](https://togithub.com/psf/black/issues/4109))
- Remove empty lines before docstrings in async functions ([#4132](https://togithub.com/psf/black/issues/4132))
- Address a missing case in the change to allow empty lines at the beginning of all
blocks, except immediately before a docstring ([#4130](https://togithub.com/psf/black/issues/4130))
- For stubs, fix logic to enforce empty line after nested classes with bodies ([#4141](https://togithub.com/psf/black/issues/4141))
##### Preview style
- Add `--unstable` style, covering preview features that have known problems that would
block them from going into the stable style. Also add the `--enable-unstable-feature`
flag; for example, use
`--enable-unstable-feature hug_parens_with_braces_and_square_brackets` to apply this
preview feature throughout 2024, even if a later Black release downgrades the feature
to unstable ([#4096](https://togithub.com/psf/black/issues/4096))
- Format module docstrings the same as class and function docstrings ([#4095](https://togithub.com/psf/black/issues/4095))
- Fix crash when using a walrus in a dictionary ([#4155](https://togithub.com/psf/black/issues/4155))
- Fix unnecessary parentheses when wrapping long dicts ([#4135](https://togithub.com/psf/black/issues/4135))
- Stop normalizing spaces before `# fmt: skip` comments ([#4146](https://togithub.com/psf/black/issues/4146))
##### Configuration
- Print warning when configuration in `pyproject.toml` contains an invalid key ([#4165](https://togithub.com/psf/black/issues/4165))
- Fix symlink handling, properly ignoring symlinks that point outside of root ([#4161](https://togithub.com/psf/black/issues/4161))
- Fix cache mtime logic that resulted in false positive cache hits ([#4128](https://togithub.com/psf/black/issues/4128))
- Remove the long-deprecated `--experimental-string-processing` flag. This feature can
currently be enabled with `--preview --enable-unstable-feature string_processing`.
([#4096](https://togithub.com/psf/black/issues/4096))
##### Integrations
- Revert the change to run Black's pre-commit integration only on specific git hooks
([#3940](https://togithub.com/psf/black/issues/3940)) for better compatibility with older versions of pre-commit ([#4137](https://togithub.com/psf/black/issues/4137))
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.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
^23.1
->^24.2
Release Notes
psf/black (black)
### [`v24.2.0`](https://togithub.com/psf/black/blob/HEAD/CHANGES.md#2420) [Compare Source](https://togithub.com/psf/black/compare/24.1.1...24.2.0) ##### Stable style - Fixed a bug where comments where mistakenly removed along with redundant parentheses ([#4218](https://togithub.com/psf/black/issues/4218)) ##### Preview style - Move the `hug_parens_with_braces_and_square_brackets` feature to the unstable style due to an outstanding crash and proposed formatting tweaks ([#4198](https://togithub.com/psf/black/issues/4198)) - Fixed a bug where base expressions caused inconsistent formatting of \*\* in tenary expression ([#4154](https://togithub.com/psf/black/issues/4154)) - Checking for newline before adding one on docstring that is almost at the line limit ([#4185](https://togithub.com/psf/black/issues/4185)) - Remove redundant parentheses in `case` statement `if` guards ([#4214](https://togithub.com/psf/black/issues/4214)). ##### Configuration - Fix issue where *Black* would ignore input files in the presence of symlinks ([#4222](https://togithub.com/psf/black/issues/4222)) - *Black* now ignores `pyproject.toml` that is missing a `tool.black` section when discovering project root and configuration. Since *Black* continues to use version control as an indicator of project root, this is expected to primarily change behavior for users in a monorepo setup (desirably). If you wish to preserve previous behavior, simply add an empty `[tool.black]` to the previously discovered `pyproject.toml` ([#4204](https://togithub.com/psf/black/issues/4204)) ##### Output - Black will swallow any `SyntaxWarning`s or `DeprecationWarning`s produced by the `ast` module when performing equivalence checks ([#4189](https://togithub.com/psf/black/issues/4189)) ##### Integrations - Add a JSONSchema and provide a validate-pyproject entry-point ([#4181](https://togithub.com/psf/black/issues/4181)) ### [`v24.1.1`](https://togithub.com/psf/black/blob/HEAD/CHANGES.md#2411) [Compare Source](https://togithub.com/psf/black/compare/24.1.0...24.1.1) Bugfix release to fix a bug that made Black unusable on certain file systems with strict limits on path length. ##### Preview style - Consistently add trailing comma on typed parameters ([#4164](https://togithub.com/psf/black/issues/4164)) ##### Configuration - Shorten the length of the name of the cache file to fix crashes on file systems that do not support long paths ([#4176](https://togithub.com/psf/black/issues/4176)) ### [`v24.1.0`](https://togithub.com/psf/black/blob/HEAD/CHANGES.md#2410) [Compare Source](https://togithub.com/psf/black/compare/23.12.1...24.1.0) ##### Highlights This release introduces the new 2024 stable style ([#4106](https://togithub.com/psf/black/issues/4106)), stabilizing the following changes: - Add parentheses around `if`-`else` expressions ([#2278](https://togithub.com/psf/black/issues/2278)) - Dummy class and function implementations consisting only of `...` are formatted more compactly ([#3796](https://togithub.com/psf/black/issues/3796)) - If an assignment statement is too long, we now prefer splitting on the right-hand side ([#3368](https://togithub.com/psf/black/issues/3368)) - Hex codes in Unicode escape sequences are now standardized to lowercase ([#2916](https://togithub.com/psf/black/issues/2916)) - Allow empty first lines at the beginning of most blocks ([#3967](https://togithub.com/psf/black/issues/3967), [#4061](https://togithub.com/psf/black/issues/4061)) - Add parentheses around long type annotations ([#3899](https://togithub.com/psf/black/issues/3899)) - Enforce newline after module docstrings ([#3932](https://togithub.com/psf/black/issues/3932), [#4028](https://togithub.com/psf/black/issues/4028)) - Fix incorrect magic trailing comma handling in return types ([#3916](https://togithub.com/psf/black/issues/3916)) - Remove blank lines before class docstrings ([#3692](https://togithub.com/psf/black/issues/3692)) - Wrap multiple context managers in parentheses if combined in a single `with` statement ([#3489](https://togithub.com/psf/black/issues/3489)) - Fix bug in line length calculations for power operations ([#3942](https://togithub.com/psf/black/issues/3942)) - Add trailing commas to collection literals even if there's a comment after the last entry ([#3393](https://togithub.com/psf/black/issues/3393)) - When using `--skip-magic-trailing-comma` or `-C`, trailing commas are stripped from subscript expressions with more than 1 element ([#3209](https://togithub.com/psf/black/issues/3209)) - Add extra blank lines in stubs in a few cases ([#3564](https://togithub.com/psf/black/issues/3564), [#3862](https://togithub.com/psf/black/issues/3862)) - Accept raw strings as docstrings ([#3947](https://togithub.com/psf/black/issues/3947)) - Split long lines in case blocks ([#4024](https://togithub.com/psf/black/issues/4024)) - Stop removing spaces from walrus operators within subscripts ([#3823](https://togithub.com/psf/black/issues/3823)) - Fix incorrect formatting of certain async statements ([#3609](https://togithub.com/psf/black/issues/3609)) - Allow combining `# fmt: skip` with other comments ([#3959](https://togithub.com/psf/black/issues/3959)) There are already a few improvements in the `--preview` style, which are slated for the 2025 stable style. Try them out and [share your feedback](https://togithub.com/psf/black/issues). In the past, the preview style has included some features that we were not able to stabilize. This year, we're adding a separate `--unstable` style for features with known problems. Now, the `--preview` style only includes features that we actually expect to make it into next year's stable style. ##### Stable style Several bug fixes were made in features that are moved to the stable style in this release: - Fix comment handling when parenthesising conditional expressions ([#4134](https://togithub.com/psf/black/issues/4134)) - Fix bug where spaces were not added around parenthesized walruses in subscripts, unlike other binary operators ([#4109](https://togithub.com/psf/black/issues/4109)) - Remove empty lines before docstrings in async functions ([#4132](https://togithub.com/psf/black/issues/4132)) - Address a missing case in the change to allow empty lines at the beginning of all blocks, except immediately before a docstring ([#4130](https://togithub.com/psf/black/issues/4130)) - For stubs, fix logic to enforce empty line after nested classes with bodies ([#4141](https://togithub.com/psf/black/issues/4141)) ##### Preview style - Add `--unstable` style, covering preview features that have known problems that would block them from going into the stable style. Also add the `--enable-unstable-feature` flag; for example, use `--enable-unstable-feature hug_parens_with_braces_and_square_brackets` to apply this preview feature throughout 2024, even if a later Black release downgrades the feature to unstable ([#4096](https://togithub.com/psf/black/issues/4096)) - Format module docstrings the same as class and function docstrings ([#4095](https://togithub.com/psf/black/issues/4095)) - Fix crash when using a walrus in a dictionary ([#4155](https://togithub.com/psf/black/issues/4155)) - Fix unnecessary parentheses when wrapping long dicts ([#4135](https://togithub.com/psf/black/issues/4135)) - Stop normalizing spaces before `# fmt: skip` comments ([#4146](https://togithub.com/psf/black/issues/4146)) ##### Configuration - Print warning when configuration in `pyproject.toml` contains an invalid key ([#4165](https://togithub.com/psf/black/issues/4165)) - Fix symlink handling, properly ignoring symlinks that point outside of root ([#4161](https://togithub.com/psf/black/issues/4161)) - Fix cache mtime logic that resulted in false positive cache hits ([#4128](https://togithub.com/psf/black/issues/4128)) - Remove the long-deprecated `--experimental-string-processing` flag. This feature can currently be enabled with `--preview --enable-unstable-feature string_processing`. ([#4096](https://togithub.com/psf/black/issues/4096)) ##### Integrations - Revert the change to run Black's pre-commit integration only on specific git hooks ([#3940](https://togithub.com/psf/black/issues/3940)) for better compatibility with older versions of pre-commit ([#4137](https://togithub.com/psf/black/issues/4137))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.
This PR has been generated by Mend Renovate. View repository job log here.