Black: Bad formatting on deeply nested dict/list/dict

Created on 22 Mar 2018  路  2Comments  路  Source: psf/black

Howdy! Sorry you're having trouble. To expedite your experience,
provide some basics for me:

Operating system: Linux
Python version: 3.7
Black version: 18.3a3
Does also happen on master: yes

--

I ran black against one of my projects and it ended up changing a data structure in a surprising way -- I ended up with a list that contained multiple dicts across many lines into a single unreadable line:

-            "scheduled_changes": [
-                {
-                    "sc_id": 1, "when": 10000000, "scheduled_by": "bill", "change_type": "insert", "complete": False, "sc_data_version": 1,
-                    "permission": "rule", "username": "janet", "options": {"products": ["foo"]}, "data_version": None,
-                    "signoffs": {"bill": "releng"}, "required_signoffs": {},
-                },
-                {
-                    "sc_id": 2, "when": 20000000, "scheduled_by": "bill", "change_type": "update", "complete": False, "sc_data_version": 1,
-                    "permission": "release_locale", "username": "ashanti", "options": None, "data_version": 1,
-                    "signoffs": {"bill": "releng", "mary": "relman"}, "required_signoffs": {"releng": 1, "relman": 1},
-                    "original_row": dbo.permissions.select({"permission": "release_locale", "username": "ashanti"})[0],
-                },
-                {
-                    "sc_id": 3, "when": 30000000, "scheduled_by": "bill", "change_type": "insert", "complete": True, "sc_data_version": 2,
-                    "permission": "permission", "username": "bob", "options": None, "data_version": None, "signoffs": {},
-                    "required_signoffs": {},
-                    # No original_row on completed changes.
-                },
-                {
-                    "sc_id": 4, "when": 76000000, "scheduled_by": "bill", "change_type": "delete", "complete": False, "sc_data_version": 1,
-                    "permission": "scheduled_change", "username": "mary", "options": None, "data_version": 1,
-                    "signoffs": {"bill": "releng", "mary": "relman"}, "required_signoffs": {"releng": 1, "relman": 1},
-                    "original_row": dbo.permissions.select({"permission": "scheduled_change", "username": "mary"})[0],
-                },
-                {
-                    "sc_id": 5, "when": 98000000, "scheduled_by": "bill", "change_type": "insert", "complete": False, "sc_data_version": 1,
-                    "permission": "rule", "username": "joe", "options": {"products": ["fake"]}, "data_version": None,
-                    "signoffs": {}, "required_signoffs": {"releng": 1},
-                },
-                {
-                    "sc_id": 6, "when": 38000000, "scheduled_by": "bill", "change_type": "update", "complete": False, "sc_data_version": 1,
-                    "permission": "release", "username": "bob", "options": {"products": ["a", "b"]}, "data_version": 1,
-                    "signoffs": {}, "required_signoffs": {"releng": 1},
-                    "original_row": dbo.permissions.select({"permission": "release", "username": "bob"})[0],
-                },
-            ],
+            "scheduled_changes": [{"sc_id": 1, "when": 10000000, "scheduled_by": "bill", "change_type": "insert", "complete": False, "sc_data_version": 1, "permission": "rule", "username": "janet", "options": {"products": ["foo"]}, "data_version": None, "signoffs": {"bill": "releng"}, "required_signoffs": {}}, {"sc_id": 2, "when": 20000000, "scheduled_by": "bill", "change_type": "update", "complete": False, "sc_data_version": 1, "permission": "release_locale", "username": "ashanti", "options": None, "data_version": 1, "signoffs": {"bill": "releng", "mary": "relman"}, "required_signoffs": {"releng": 1, "relman": 1}, "original_row": dbo.permissions.select({"permission": "release_locale", "username": "ashanti"})[0]}, {"sc_id": 3, "when": 30000000, "scheduled_by": "bill", "change_type": "insert", "complete": True, "sc_data_version": 2, "permission": "permission", "username": "bob", "options": None, "data_version": None, "signoffs": {}, "required_signoffs": {}}, {"sc_id": 4, "when": 76000000, "scheduled_by": "bill", "change_type": "delete", "complete": False, "sc_data_version": 1, "permission": "scheduled_change", "username": "mary", "options": None, "data_version": 1, "signoffs": {"bill": "releng", "mary": "relman"}, "required_signoffs": {"releng": 1, "relman": 1}, "original_row": dbo.permissions.select({"permission": "scheduled_change", "username": "mary"})[0]}, {"sc_id": 5, "when": 98000000, "scheduled_by": "bill", "change_type": "insert", "complete": False, "sc_data_version": 1, "permission": "rule", "username": "joe", "options": {"products": ["fake"]}, "data_version": None, "signoffs": {}, "required_signoffs": {"releng": 1}}, {"sc_id": 6, "when": 38000000, "scheduled_by": "bill", "change_type": "update", "complete": False, "sc_data_version": 1, "permission": "release", "username": "bob", "options": {"products": ["a", "b"]}, "data_version": 1, "signoffs": {}, "required_signoffs": {"releng": 1}, "original_row": dbo.permissions.select({"permission": "release", "username": "bob"})[0]}],
+            # No original_row on completed changes.
bug comments

Most helpful comment

This is a bug related to the embedded comment ("# no original_row on completed changes").

I will fix that. In the mean time, if you temporarily remove this comment, it will reformat correctly.

All 2 comments

This is a bug related to the embedded comment ("# no original_row on completed changes").

I will fix that. In the mean time, if you temporarily remove this comment, it will reformat correctly.

Closing this as a duplicate of #22. Follow along there.

Was this page helpful?
0 / 5 - 0 ratings