# Black 25.9.0 - Product: Black (https://whatsnew.fyi/product/black) - Vendor: Python Software Foundation - Date: 2025-09-19 - Version: 25.9.0 - Original notes: https://github.com/psf/black/releases/tag/25.9.0 - Permalink: https://whatsnew.fyi/product/black/releases/25.9.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'. --- - **removed** — Remove support for pre-python 3.7 await/async as soft keywords/variable names - **fixed** — Fix crash while formatting a long del statement containing tuples - **fixed** — Fix crash while formatting expressions using the walrus operator in complex with statements - **fixed** — Handle # fmt: skip followed by a comment at the end of file - **fixed** — Fix crash when a tuple appears in the as clause of a with statement - **fixed** — Fix crash when tuple is used as a context manager inside a with statement - **fixed** — Fix crash when formatting a \ followed by a \r followed by a comment - **fixed** — Fix crash on a \\r\n - **fixed** — Fix crash on await ... where ... is a literal Ellipsis - **fixed** — Fix crash on parenthesized expression inside a type parameter bound - **fixed** — Fix crash when using line ranges excluding indented single line decorated items - **fixed** — Fix a bug where one-liner functions/conditionals marked with # fmt: skip would still be formatted - **changed** — Improve multiline_string_handling with ternaries and dictionaries - **fixed** — Fix a bug where string_processing would not split f-strings directly after expressions - **changed** — Wrap the in clause of comprehensions across lines if necessary - **changed** — Remove parentheses around multiple exception types in except and except* without as - **changed** — Add \r style newlines to the potential newlines to normalize file newlines both from and to - **changed** — Rewrite tokenizer to improve performance and compliance - **fixed** — Fix bug where certain unusual expressions such as lambdas were not accepted in type parameter bounds and defaults - **changed** — Avoid using an extra process when running with only one worker ###### Highlights - Remove support for pre-python 3.7 `await/async` as soft keywords/variable names (#4676) ###### Stable style - Fix crash while formatting a long `del` statement containing tuples (#4628) - Fix crash while formatting expressions using the walrus operator in complex `with` statements (#4630) - Handle `# fmt: skip` followed by a comment at the end of file (#4635) - Fix crash when a tuple appears in the `as` clause of a `with` statement (#4634) - Fix crash when tuple is used as a context manager inside a `with` statement (#4646) - Fix crash when formatting a `\` followed by a `\r` followed by a comment (#4663) - Fix crash on a `\\r\n` (#4673) - Fix crash on `await ...` (where `...` is a literal `Ellipsis`) (#4676) - Fix crash on parenthesized expression inside a type parameter bound (#4684) - Fix crash when using line ranges excluding indented single line decorated items (#4670) ###### Preview style - Fix a bug where one-liner functions/conditionals marked with `# fmt: skip` would still be formatted (#4552) - Improve `multiline_string_handling` with ternaries and dictionaries (#4657) - Fix a bug where `string_processing` would not split f-strings directly after expressions (#4680) - Wrap the `in` clause of comprehensions across lines if necessary (#4699) - Remove parentheses around multiple exception types in `except` and `except*` without `as`. (#4720) - Add `\r` style newlines to the potential newlines to normalize file newlines both from and to (#4710) ###### Parser - Rewrite tokenizer to improve performance and compliance (#4536) - Fix bug where certain unusual expressions (e.g., lambdas) were not accepted in type parameter bounds and defaults. (#4602) ###### Performance - Avoid using an extra process when running with only one worker (#4734) ###### Integrations - Fix the version check in the vim file to reject Python 3.8 (#4567) - Enhance GitHub Action `psf/black` to read Black version from an additional section in pyproject.toml: `[project.dependency-groups]` (#4606) - Build gallery docker image with python3-slim and reduce image size (#4686) ###### Documentation - Add FAQ entry for windows emoji not displaying (#4714)