Black 26.1a1

26.1a1Pre-release
Added 6
  • always_one_newline_after_import option to always force one blank line after import statements, except when the line after the import is a comment or an import statement
  • multiline_string_handling option to make expressions involving multiline strings more compact
  • normalize_cr_newlines option to add \r style newlines to the potential newlines to normalize file newlines both from and to
  • remove_parens_around_except_types option to remove parentheses around multiple exception types in except and except* without as
  • remove_parens_from_assignment_lhs option to remove unnecessary parentheses from the left-hand side of assignments while preserving magic trailing commas and intentional multiline formatting
  • standardize_type_comments option to format type comments which have zero or more spaces between # and type: or between type: and value to # type: (value)
Changed 1
  • Regenerated the _width_table.py and added tests for the Khmer language
Fixed 3
  • fix_fmt_skip_in_one_liners to correct # fmt: skip behavior on one-liner declarations such as def foo(): return "mock" # fmt: skip where the declaration would have been incorrectly collapsed
  • fix_module_docstring_detection to prevent module docstrings from being treated as normal strings if preceded by comments
  • fix_type_expansion_split to correct type expansions split in generic functions

This is a preview of the Black stable style for 2026 (#4892). Please test it and share your feedback!

The following formatting changes are included:

  • always_one_newline_after_import: Always force one blank line after import statements, except when the line after the import is a comment or an import statement (#4489)
  • fix_fmt_skip_in_one_liners: Fix # fmt: skip behavior on one-liner declarations, such as def foo(): return "mock" # fmt: skip, where previously the declaration would have been incorrectly collapsed (#4800)
  • fix_module_docstring_detection: Fix module docstrings being treated as normal strings if preceded by comments (#4764)
  • fix_type_expansion_split: Fix type expansions split in generic functions (#4777)
  • multiline_string_handling: Make expressions involving multiline strings more compact (#1879)
  • normalize_cr_newlines: Add \r style newlines to the potential newlines to normalize file newlines both from and to (#4710)
  • remove_parens_around_except_types: Remove parentheses around multiple exception types in except and except* without as. See PEP 758 for details (#4720)
  • remove_parens_from_assignment_lhs: Remove unnecessary parentheses from the left-hand side of assignments while preserving magic trailing commas and intentional multiline formatting (#4865)
  • standardize_type_comments: Format type comments which have zero or more spaces between # and type: or between type: and value to # type: (value) (#4645)
  • Regenerated the _width_table.py and added tests for the Khmer language (#4253)
View original

Upgraded? How did it go?

Discussion