#3925·black

Black 23.9.1 reformat already clean code expression and creates a line too long

Author: LLyaudetCreated Oct 6, 2023Updated Sep 13, 2026
LabelsT: bugF: linetoolong

Describe the bug

Black 23.9.1 reformat already clean but complex code expression and creates a line too long. The original expression does not have lines longer than 79 characters. But black reformat it and creates a line of 94 characters.

To Reproduce

Create a file named bug.py with the following code :

python
if True:
    if True:
        if True:
            abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqr = (
                abcdefghijklmnopqrstuvwxyzabcd
                | (
                    # Blablablablablablablablablablablablablablablablablablabl
                    # blablablablablablablablablablablablablabla - (
                    abcdefghijk - (
                        abcdefghijklmnopqrstuvwxyzabcd
                        | abcdefghijklmnopqrstuvwxyza
                    )
                )
            )

And run black with these arguments:

bash
$ black --check --diff bug.py

The resulting display is:

--- bug.py	2023-10-06 10:06:30.801786+00:00
+++ bug.py	2023-10-06 10:12:04.476521+00:00
@@ -1,15 +1,9 @@
 if True:
     if True:
         if True:
-            abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqr = (
-                abcdefghijklmnopqrstuvwxyzabcd
-                | (
-                    # Blablablablablablablablablablablablablablablablablablabl
-                    # blablablablablablablablablablablablablabla - (
-                    abcdefghijk - (
-                        abcdefghijklmnopqrstuvwxyzabcd
-                        | abcdefghijklmnopqrstuvwxyza
-                    )
-                )
+            abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqr = abcdefghijklmnopqrstuvwxyzabcd | (
+                # Blablablablablablablablablablablablablablablablablablabl
+                # blablablablablablablablablablablablablabla - (
+                abcdefghijk
+                - (abcdefghijklmnopqrstuvwxyzabcd | abcdefghijklmnopqrstuvwxyza)
             )
-
would reformat bug.py

Oh no!   
1 file would be reformatted.

Expected behavior

Black should keep it as is or at least propose something that does not go beyond the default line length.

Environment

  • Black's version: black, 23.9.1 (compiled: yes)
  • OS and Python version: Ubuntu 23.04 Python (CPython) 3.11.4

Additional context