Releases: psf/black
21.8b0
Black
- Add support for formatting Jupyter Notebook files (#2357)
- Move from
appdirs
dependency toplatformdirs
(#2375) - Present a more user-friendly error if .gitignore is invalid (#2414)
- The failsafe for accidentally added backslashes in f-string expressions has been hardened to handle more edge cases during quote normalization (#2437)
- Avoid changing a function return type annotation's type to a tuple by adding a trailing comma (#2384)
- Parsing support has been added for unparenthesized walruses in set literals, set comprehensions, and indices (#2447).
- Pin
setuptools-scm
build-time dependency version (#2457) - Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 (#2460)
Blackd
- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that scan installed packages (#2440)
Integrations
- The provided pre-commit hooks no longer specify
language_version
to avoid overridingdefault_language_version
(#2430)
21.7b0
Black
- Configuration files using TOML features higher than spec v0.5.0 are now supported
(#2301) - Add primer support and test for code piped into black via STDIN (#2315)
- Fix internal error when
FORCE_OPTIONAL_PARENTHESES
feature is enabled (#2332) - Accept empty stdin (#2346)
- Provide a more useful error when parsing fails during AST safety checks (#2304)
Docker
- Add new
latest_release
tag automation to follow latest black release on docker
images (#2374)
Integrations
- The vim plugin now searches upwards from the directory containing the current buffer
instead of the current working directory for pyproject.toml. (#1871) - The vim plugin now reads the correct string normalization option in pyproject.toml
(#1869) - The vim plugin no longer crashes Black when there's boolean values in pyproject.toml
(#1869)
21.6b0
Black
- Fix failure caused by
fmt: skip
and indentation (#2281) - Account for += assignment when deciding whether to split string (#2312)
- Correct max string length calculation when there are string operators (#2292)
- Fixed option usage when using the
--code
flag (#2259) - Do not call
uvloop.install()
when Black is used as a library (#2303) - Added
--required-version
option to require a specific version to be running (#2300) - Fix incorrect custom breakpoint indices when string group contains fake f-strings
(#2311) - Fix regression where
R
prefixes would be lowercased for docstrings (#2285) - Fix handling of named escapes (
\N{...}
) when--experimental-string-processing
is
used (#2319)
21.5b2
Black
- A space is no longer inserted into empty docstrings (#2249)
- Fix handling of .gitignore files containing non-ASCII characters on Windows (#2229)
- Respect
.gitignore
files in all levels, not onlyroot/.gitignore
file (apply
.gitignore
rules likegit
does) (#2225) - Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227)
- Add extra uvloop install + import support if in python env (#2258)
- Fix --experimental-string-processing crash when matching parens are not found (#2283)
- Make sure to split lines that start with a string operator (#2286)
- Fix regular expression that black uses to identify f-expressions (#2287)
Blackd
- Add a lower bound for the
aiohttp-cors
dependency. Only 0.4.0 or higher is
supported. (#2231)
Packaging
- Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline
(#2198) - Always build binaries with the latest available Python (#2260)
Documentation
- Add discussion of magic comments to FAQ page (#2272)
--experimental-string-processing
will be enabled by default in the future (#2273)- Fix typos discovered by codespell (#2228)
- Fix Vim plugin installation instructions. (#2235)
- Add new Frequently Asked Questions page (#2247)
- Fix encoding + symlink issues preventing proper build on Windows (#2262)
21.5b1
Black
- Refactor
src/black/__init__.py
into many files (#2206)
Documentation
- Replaced all remaining references to the
master
branch with themain
branch. Some additional changes in the source code were also made. (#2210) - Sigificantly reorganized the documentation to make much more sense. Check them out by heading over to the stable docs on RTD. (#2174)
21.5b0
21.4b2
Black
-
Fix crash if the user configuration directory is inaccessible. (#2158)
-
Clarify
circumstances
in which Black may change the AST (#2159)
Packaging
- Install
primer.json
(used byblack-primer
by default) with black. (#2154)
21.4b1
Black
-
Fix crash on docstrings ending with "\ ". (#2142)
-
Fix crash when atypical whitespace is cleaned out of dostrings (#2120)
-
Reflect the
--skip-magic-trailing-comma
and--experimental-string-processing
flags
in the name of the cache file. Without this fix, changes in these flags would not take
effect if the cache had already been populated. (#2131) -
Don't remove necessary parentheses from assignment expression containing assert /
return statements. (#2143)
Packaging
- Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling
21.4b0
Black
-
Fixed a rare but annoying formatting instability created by the combination of
optional trailing commas inserted byBlack
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. NowBlack
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) -
use lowercase hex strings (#1692)
-
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. -
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)
20.8b1
v20.8b1 - now with Click 7