# Black 26.3.0 - Product: Black (https://whatsnew.fyi/product/black) - Vendor: Python Software Foundation - Date: 2026-03-06 - Version: 26.3.0 - Original notes: https://github.com/psf/black/releases/tag/26.3.0 - Permalink: https://whatsnew.fyi/product/black/releases/26.3.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **fixed** — Don't double-decode input, causing non-UTF-8 files to be corrupted - **fixed** — Fix crash on standalone comment in lambda default arguments - **fixed** — Preserve parentheses when # type: ignore comments would be merged with other comments on the same line, preventing AST equivalence failures - **fixed** — Fix bug where if guards in case blocks were incorrectly split when the pattern had a trailing comma - **fixed** — Fix string_processing crashing on unassigned long string literals with trailing commas - **changed** — Simplify implementation of the power operator "hugging" logic - **fixed** — Fix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in frozen environments - **added** — Introduce winloop for Windows as an alternative to uvloop - **removed** — Remove deprecated function uvloop.install() in favor of uvloop.new_event_loop() - **changed** — Rename maybe_install_uvloop function to maybe_use_uvloop to simplify loop installation and creation of either a uvloop/winloop evenloop or default eventloop - **changed** — 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 - **added** — Introduce winloop to be used when Windows is in use which enables blackd to run faster on Windows when winloop is installed - **removed** — Remove unused gallery script - **security** — 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: ignore` comments would be merged with other comments on the same line, preventing AST equivalence failures (#4888) ###### Preview style - Fix bug where `if` guards in `case` blocks were incorrectly split when the pattern had a trailing comma (#4884) - Fix `string_processing` crashing 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 of `uvloop.new_event_loop()` (#4996) - Rename `maybe_install_uvloop` function to `maybe_use_uvloop` to 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 `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. Users should upgrade to the latest version of the action as soon as possible. This update is received automatically when using `psf/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`, and `wrap_long_dict_values_in_parens` features (#4987) - Add detailed documentation for formatting Jupyter Notebooks (#5009)