black v21.4.b0 Release Notes

  • Black

    • ๐Ÿ›  Fixed a rare but annoying formatting instability created by the combination of optional trailing commas inserted by Black and optional parentheses looking at pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many duplicates. (#2126)

    • ๐Ÿ“„ Black now processes one-line docstrings by stripping leading and trailing spaces, and adding a padding space when needed to break up """". (#1740)

    • Black now cleans up leading non-breaking spaces in comments (#2092)

    • Black now respects --skip-string-normalization when normalizing multiline docstring quotes (#1637)

    • ๐Ÿšš Black no longer removes all empty lines between non-function code and decorators when formatting typing stubs. Now Black enforces a single empty line. (#1646)

    • Black no longer adds an incorrect space after a parenthesized assignment expression in if/while statements (#1655)

    • โž• Added --skip-magic-trailing-comma / -C to avoid using trailing commas as a reason to split lines (#1824)

    • ๐Ÿ›  fixed a crash when PWD=/ on POSIX (#1631)

    • ๐Ÿ›  fixed "I/O operation on closed file" when using --diff (#1664)

    • Prevent coloured diff output being interleaved with multiple files (#1673)

    • โž• Added support for PEP 614 relaxed decorator syntax on python 3.9 (#1711)

    • โž• Added parsing support for unparenthesized tuples and yield expressions in annotated assignments (#1835)

    • โž• added --extend-exclude argument (PR #2005)

    • speed up caching by avoiding pathlib (#1950)

    • --diff correctly indicates when a file doesn't end in a newline (#1662)

    • โž• Added --stdin-filename argument to allow stdin to respect --force-exclude rules (#1780)

    • Lines ending with fmt: skip will now be not formatted (#1800)

    • PR #2053: Black no longer relies on typed-ast for Python 3.8 and higher

    • ๐Ÿ‘ PR #2053: Python 2 support is now optional, install with python3 -m pip install black[python2] to maintain support.

    • 0๏ธโƒฃ Exclude venv directory by default (#1683)

    • ๐Ÿ›  Fixed "Black produced code that is not equivalent to the source" when formatting Python 2 docstrings (#2037)

    Packaging

    • Self-contained native Black binaries are now provided for releases via GitHub Releases (#1743)