Highlights
- Python 3.11 is now supported, except for blackd as aiohttp does not support 3.11 as of publishing (#3234)
- This is the last release that supports running Black on Python 3.6 (formatting 3.6 code will continue to be supported until further notice)
- Reword the stability policy to say that we may, in rare cases, make changes that affect code that was not previously formatted by Black (#3155)
Stable style
- Fix an infinite loop when using
# fmt: on/off
in the middle of an expression or code block (#3158) - Fix incorrect handling of
# fmt: skip
on colon (:
) lines (#3148) - Comments are no longer deleted when a line had spaces removed around power operators (#2874)
Preview style
- Single-character closing docstring quotes are no longer moved to their own line as this is invalid. This was a bug introduced in version 22.6.0. (#3166)
--skip-string-normalization
/-S
now prevents docstring prefixes from being normalized as expected (#3168)- When using
--skip-magic-trailing-comma
or-C
, trailing commas are stripped from subscript expressions with more than 1 element (#3209) - Implicitly concatenated strings inside a list, set, or tuple are now wrapped inside parentheses (#3162)
- Fix a string merging/split issue when a comment is present in the middle of implicitly concatenated strings on its own line (#3227)
Blackd
blackd
now supports enabling the preview style via theX-Preview
header (#3217)
Configuration
- Black now uses the presence of debug f-strings to detect target version (#3215)
- Fix misdetection of project root and verbose logging of sources in cases involving
--stdin-filename
(#3216) - Immediate
.gitignore
files in source directories given on the command line are now also respected, previously only.gitignore
files in the project root and automatically discovered directories were respected (#3237)
Documentation
- Recommend using BlackConnect in IntelliJ IDEs (#3150)
Integrations
- Vim plugin: prefix messages with
Black:
so it's clear they come from Black (#3194) - Docker: changed to a /opt/venv installation + added to PATH to be available to non-root users (#3202)
Output
- Change from deprecated
asyncio.get_event_loop()
to create our event loop which removes DeprecationWarning (#3164) - Remove logging from internal
blib2to3
library since it regularly emits error logs about failed caching that can and should be ignored (#3193)
Parser
- Type comments are now included in the AST equivalence check consistently so accidental deletion raises an error. Though type comments can't be tracked when running on PyPy 3.7 due to standard library limitations. (#2874)
Performance
- Reduce Black's startup time when formatting a single file by 15-30% (#3211)
Full Changelog: 22.6.0...22.8.0
Thank you!
- @hauntsaninja for modernizing our type annotations and fixing a few bugs too
- @yilei for fixing our
# fmt: off/on/skip
code and continuing to improve the preview style, notably the (still) experimental string processing - The many community contributions to the non-core parts of the project:
- @cooperlees for adding support for Python 3.11 and addressing DeprecationWarnings
- @graingert for adding PyPy 3.8 to our CI matrix so we know Black works in even more places
- @martinResearch for contributing a simple fix for such a silly and stupid
.gitignore
bug that we should've caught many moons ago - @fabioz for contributing the original patch that reduced the start up overhead when formatting a single file by 15-30% (!)
... and everyone else who contributed documentation, tests, or other improvements to the Black project!
Finally congratulations to the first time contributors this time around!
- @dmerejkowsky made their first contribution in #3142
- @m-aciek made their first contribution in #3150
- @Panther-12 made their first contribution in #3167
- @onescriptkid made their first contribution in #3170
- @tobast made their first contribution in #3194
- @n-borges made their first contribution in #3202
- @Mogost made their first contribution in #3217
- @ionite34 made their first contribution in #3226
- @martinResearch made their first contribution in #3237