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 py310if we detect 3.10-only syntax (#2668) - Fix
matchstatements with open sequence subjects, likematch a, b:ormatch a, *b:(#2639) (#2659) - Fix
match/casestatements that containmatch/casesoft keywords multiple times, likematch re.match()(#2661) - Fix
casestatements with an inline body (#2665) - Fix styling of starred expressions inside
matchsubject (#2667) - Fix parser error location on invalid syntax in a
matchstatement (#2649) - Fix Python 3.10 support on platforms without ProcessPoolExecutor (#2631)
- Improve parsing performance on code that uses
matchunder--target-version py310up 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
regexdependency
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