Sourced from black's releases.
\n\n\n22.1.0
\nAt long last, Black is no longer a beta product! This is the first non-beta release and the first release covered by our new stability policy.
\nHighlights
\n\nStyle
\n\n
\n- Deprecate
\n--experimental-string-processing
and move the functionality under--preview
(#2789)- For stubs, one blank line between class attributes and methods is now kept if there's at least one pre-existing blank line (#2736)
\n- Black now normalizes string prefix order (#2297)
\n- Remove spaces around power operators if both operands are simple (#2726)
\n- Work around bug that causes unstable formatting in some cases in the presence of the magic trailing comma (#2807)
\n- Use parentheses for attribute access on decimal float and int literals (#2799)
\n- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex literals (#2799)
\n- Treat blank lines in stubs the same inside top-level if statements (#2820)
\n- Fix unstable formatting with semicolons and arithmetic expressions (#2817)
\n- Fix unstable formatting around magic trailing comma (#2572)
\nParser
\n\n
\n- Fix mapping cases that contain as-expressions, like
\ncase {"key": 1 | 2 as password}
(#2686)- Fix cases that contain multiple top-level as-expressions, like
\ncase 1 as a, 2 as b
(#2716)- Fix call patterns that contain as-expressions with keyword arguments, like
\ncase Foo(bar=baz as quux)
(#2749)- Tuple unpacking on
\nreturn
andyield
constructs now implies 3.8+ (#2700)- Unparenthesized tuples on annotated assignments (e.g
\nvalues: Tuple[int, ...] = 1, 2, 3
) now implies 3.8+ (#2708)- Fix handling of standalone
\nmatch()
orcase()
when there is a trailing newline or a comment inside of the parentheses. (#2760)- \n
from __future__ import annotations
statement now implies Python 3.7+ (#2690)Performance
\n\n
\n- Speed-up the new backtracking parser about 4X in general (enabled when
\n--target-version
is set to 3.10 and higher). (#2728)- Black is now compiled with mypyc for an overall 2x speed-up. 64-bit Windows, MacOS, and Linux (not including musl) are supported. (#1009, #2431)
\nConfiguration
\n\n
\n- Do not accept bare carriage return line endings in pyproject.toml (#2408)
\n- Add configuration option (
\npython-cell-magics
) to format cells with custom magics in Jupyter Notebooks (#2744)- Allow setting custom cache directory on all platforms with environment variable
\nBLACK_CACHE_DIR
(#2739).- Enable Python 3.10+ by default, without any extra need to specify -
\n-target-version=py310
. (#2758)- Make passing
\nSRC
or--code
mandatory and mutually exclusive (#2804)Output
\n\n
\n- Improve error message for invalid regular expression (#2678)
\n- Improve error message when parsing fails during AST safety check by embedding the underlying SyntaxError (#2693)
\n- No longer color diff headers white as it's unreadable in light themed terminals (#2691)
\n- Text coloring added in the final statistics (#2712)
\n- Verbose mode also now describes how a project root was discovered and which paths will be formatted. (#2526)
\nPackaging
\n\n\n
... (truncated)
\nSourced from black's changelog.
\n\n\n22.1.0
\nAt long last, Black is no longer a beta product! This is the first non-beta release\nand the first release covered by our new stability policy.
\nHighlights
\n\nStyle
\n\n
\n- Deprecate
\n--experimental-string-processing
and move the functionality under\n--preview
(#2789)- For stubs, one blank line between class attributes and methods is now kept if there's\nat least one pre-existing blank line (#2736)
\n- Black now normalizes string prefix order (#2297)
\n- Remove spaces around power operators if both operands are simple (#2726)
\n- Work around bug that causes unstable formatting in some cases in the presence of the\nmagic trailing comma (#2807)
\n- Use parentheses for attribute access on decimal float and int literals (#2799)
\n- Don't add whitespace for attribute access on hexadecimal, binary, octal, and complex\nliterals (#2799)
\n- Treat blank lines in stubs the same inside top-level
\nif
statements (#2820)- Fix unstable formatting with semicolons and arithmetic expressions (#2817)
\n- Fix unstable formatting around magic trailing comma (#2572)
\nParser
\n\n
\n- Fix mapping cases that contain as-expressions, like
\ncase {"key": 1 | 2 as password}
\n(#2686)- Fix cases that contain multiple top-level as-expressions, like
\ncase 1 as a, 2 as b
\n(#2716)- Fix call patterns that contain as-expressions with keyword arguments, like\n
\ncase Foo(bar=baz as quux)
(#2749)- Tuple unpacking on
\nreturn
andyield
constructs now implies 3.8+ (#2700)- Unparenthesized tuples on annotated assignments (e.g\n
\nvalues: Tuple[int, ...] = 1, 2, 3
) now implies 3.8+ (#2708)- Fix handling of standalone
\nmatch()
orcase()
when there is a trailing newline or a\ncomment inside of the parentheses. (#2760)- \n
from __future__ import annotations
statement now implies Python 3.7+ (#2690)Performance
\n\n\n
... (truncated)
\n