23.11.0
Highlights
- Support formatting ranges of lines with the new
--line-ranges
command-line option
(#4020)
Stable style
- Fix crash on formatting bytes strings that look like docstrings (#4003)
- Fix crash when whitespace followed a backslash before newline in a docstring (#4008)
- Fix standalone comments inside complex blocks crashing Black (#4016)
- Fix crash on formatting code like
await (a ** b)
(#3994) - No longer treat leading f-strings as docstrings. This matches Python's behaviour and
fixes a crash (#4019)
Preview style
- Multiline dicts and lists that are the sole argument to a function are now
indented less (#3964) - Multiline unpacked dicts and lists as the sole argument to a function are now also
indented less (#3992) - In f-string debug expressions, quote types that are visible in the final string
are now preserved (#4005) - Fix a bug where long
case
blocks were not split into multiple lines. Also enable
general trailing comma rules oncase
blocks (#4024) - Keep requiring two empty lines between module-level docstring and first function or
class definition (#4028) - Add support for single-line format skip with other comments on the same line (#3959)
Configuration
- Consistently apply force exclusion logic before resolving symlinks (#4015)
- Fix a bug in the matching of absolute path names in
--include
(#3976)
Performance
- Fix mypyc builds on arm64 on macOS (#4017)
Integrations
- Black's pre-commit integration will now run only on git hooks appropriate for a code
formatter (#3940)