black v21.12.b0 Release Notes

  • 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)
    • from __future__ import annotations statement now implies Python 3.7+ (#2690)

    ๐Ÿ‘ 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, like match a, b: or match a, *b: (#2639) (#2659)
    • ๐Ÿ›  Fix match/case statements that contain match/case soft keywords multiple times, like match 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

    • โœ‚ Remove dependency on regex (#2644) (#2663)