21.12b0
Black
- Fix determination of f-string expression spans (#2654)
- Fix bad formatting of error messages about EOF in multi-line statements (#2343)
- Functions and classes in blocks now have more consistent surrounding spacing (#2472)
Jupyter Notebook support
- Cell magics are now only processed if they are known Python cell magics. Earlier, all cell magics were tokenized, leading to possible indentation errors e.g. with
%%writefile
. (#2630) - Fix assignment to environment variables in Jupyter Notebooks (#2642)
Python 3.10 support
- Point users to using
--target-version py310
if we detect 3.10-only syntax (#2668) - Fix
match
statements with open sequence subjects, likematch a, b:
ormatch a, *b:
(#2639) (#2659) - Fix
match
/case
statements that containmatch
/case
soft keywords multiple times, likematch re.match()
(#2661) - Fix
case
statements with an inline body (#2665) - Fix styling of starred expressions inside
match
subject (#2667) - Fix parser error location on invalid syntax in a
match
statement (#2649) - Fix Python 3.10 support on platforms without ProcessPoolExecutor (#2631)
- Improve parsing performance on code that uses
match
under--target-version py310
up to ~50% (#2670)
Packaging
Thank you!
- @isidentical for the polishing up 3.10 syntax support (which they contributed in the first place!)
- @MarcoGorelli for their ever-continuing work on Black's jupyter support
- @jalaziz for cleaning up our Pyinstaller CD workflow
- @hauntsaninja for helping us drop the
regex
dependency
And also congrats to first contributors!
- @MatthewScholefield made their first contribution in #2631
- @AshIsbitt made their first contribution in #2632
- @kalbasit made their first contribution in #2638
- @danieleades made their first contribution in #2653
- @danielsparing made their first contribution in #2630
- @tanvimoharir made their first contribution in #2343