23.7.0
Highlights
- Runtime support for Python 3.7 has been removed. Formatting 3.7 code will still be
supported until further notice (#3765)
Stable style
- Fix a bug where an illegal trailing comma was added to return type annotations using
PEP 604 unions (#3735) - Fix several bugs and crashes where comments in stub files were removed or mishandled
under some circumstances (#3745) - Fix a crash with multi-line magic comments like
type: ignore
within parentheses
(#3740) - Fix error in AST validation when Black removes trailing whitespace in a type comment
(#3773)
Preview style
- Implicitly concatenated strings used as function args are no longer wrapped inside
parentheses (#3640) - Remove blank lines between a class definition and its docstring (#3692)
Configuration
- The
--workers
argument to Black can now be specified via theBLACK_NUM_WORKERS
environment variable (#3743) .pytest_cache
,.ruff_cache
and.vscode
are now excluded by default (#3691)- Fix Black not honouring
pyproject.toml
settings when running--stdin-filename
and thepyproject.toml
found isn't in the current working directory (#3719) - Black will now error if
exclude
andextend-exclude
have invalid data types in
pyproject.toml
, instead of silently doing the wrong thing (#3764)
Packaging
- Upgrade mypyc from 0.991 to 1.3 (#3697)
- Remove patching of Click that mitigated errors on Python 3.6 with
LANG=C
(#3768)
Parser
- Add support for the new PEP 695 syntax in Python 3.12 (#3703)
Performance
- Speed up Black significantly when the cache is full (#3751)
- Avoid importing
IPython
in a case where we wouldn't need it (#3748)
Output
- Use aware UTC datetimes internally, avoids deprecation warning on Python 3.12 (#3728)
- Change verbose logging to exactly mirror Black's logic for source discovery (#3749)
Blackd
- The
blackd
argument parser now shows the default values for options in their help
text (#3712)
Integrations
- Black is now tested with
PYTHONWARNDEFAULTENCODING = 1
(#3763) - Update GitHub Action to display black output in the job summary (#3688)