26.3.0
Added 2
- Introduce winloop for Windows as an alternative to uvloop
- Introduce winloop to be used when Windows is in use which enables blackd to run faster on Windows when winloop is installed
Changed 3
- Simplify implementation of the power operator "hugging" logic
- Rename maybe_install_uvloop function to maybe_use_uvloop to simplify loop installation and creation of either a uvloop/winloop evenloop or default eventloop
- Emit a clear warning when the target Python version is newer than the running Python version, since AST safety checks cannot parse newer syntax, and replace the misleading "INTERNAL ERROR" message with an actionable error explaining the version mismatch
Fixed 6
- Don't double-decode input, causing non-UTF-8 files to be corrupted
- Fix crash on standalone comment in lambda default arguments
- Preserve parentheses when # type: ignore comments would be merged with other comments on the same line, preventing AST equivalence failures
- Fix bug where if guards in case blocks were incorrectly split when the pattern had a trailing comma
- Fix string_processing crashing on unassigned long string literals with trailing commas
- Fix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in frozen environments
Removed 2
- Remove deprecated function uvloop.install() in favor of uvloop.new_event_loop()
- Remove unused gallery script
Security 1
- Harden parsing of black requirements in the GitHub Action when use_pyproject is enabled so that only version specifiers are accepted and direct references such as black @ https://... are rejected
Stable style
- Don't double-decode input, causing non-UTF-8 files to be corrupted (#4964)
- Fix crash on standalone comment in lambda default arguments (#4993)
- Preserve parentheses when
# type: ignorecomments would be merged with other comments on the same line, preventing AST equivalence failures (#4888)
Preview style
- Fix bug where
ifguards incaseblocks were incorrectly split when the pattern had a trailing comma (#4884) - Fix
string_processingcrashing on unassigned long string literals with trailing commas (one-item tuples) (#4929) - Simplify implementation of the power operator "hugging" logic (#4918)
Packaging
- Fix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in frozen environments (#4930)
Performance
- Introduce winloop for windows as an alternative to uvloop (#4996)
- Remove deprecated function
uvloop.install()in favor ofuvloop.new_event_loop()(#4996) - Rename
maybe_install_uvloopfunction tomaybe_use_uvloopto simplify loop installation and creation of either a uvloop/winloop evenloop or default eventloop (#4996)
Output
- Emit a clear warning when the target Python version is newer than the running Python version, since AST safety checks cannot parse newer syntax. Also replace the misleading "INTERNAL ERROR" message with an actionable error explaining the version mismatch (#4983)
Blackd
- Introduce winloop to be used when windows in use which enables blackd to run faster on windows when winloop is installed. (#4996)
Integrations
- Remove unused gallery script (#5030)
- Harden parsing of
blackrequirements in the GitHub Action whenuse_pyprojectis enabled so that only version specifiers are accepted and direct references such asblack @ https://...are rejected. Users should upgrade to the latest version of the action as soon as possible. This update is received automatically when usingpsf/black@stable, and is independent of the version of Black installed by the action. (#5031)
Documentation
- Expand preview style documentation with detailed examples for
wrap_comprehension_in,simplify_power_operator_hugging, andwrap_long_dict_values_in_parensfeatures (#4987) - Add detailed documentation for formatting Jupyter Notebooks (#5009)