Достался мне питоний код, в котором определено немалое число словарей и списков. В том числе - вложенных. Например - таких (этот самый простой):
{"bla": {"bla_bla": 100,
"bla_bla": "bla"},
"bla": {"bla_bla": 60},
"bla_bla": {"limit": 32},
"bla_saver": {"bla_bla":
[os.path.join(root.common.bla_dir,
"tmp %s/bla" % root.bla),
os.path.join(root.common.bla_dir,
"tmp %s/bla" % root.bla),
os.path.join(root.common.cache_dir,
"tmp %s/bla" % root.bla)]},
"lines": {"bla_bla": 0.01,
"bla_bla": 0.0,
"layers":
[{"type": "bla_bla", "bla_bla": 32,
"bla": 13, "bla": 13,
"bla_bla": "bla",
"bla_bla": 0.0001,
"bla_bla": 0.0,
"bla_bla_bla": 0.0},
{"bla": "bla_bla",
"bla": 5, "bla": 5, "bla": (2, 2)},
{"type": "bla_bla",
"bla": 5, "bla": 5, "bla": (2, 2)},
{"bla": "bla",
"bla": 0.00005, "bla": 0.75, "bla": 2, "bla": 5},
{"type": "bla", "bla_bla": 6,
"bla_bla": 0.9,
"bla_bla_bla": 0}],
"bla_bla_bla_bla": {"bla": bla,
"bla": bla}}}
Нет ли способов красиво отформатировать такой код, с тем, чтобы чем глубже засунут очередной словарь, тем больше для него был отступ? И чтобы каждый ключик был с новой строки?
P.S. PrettyPrint едва ли поможет: форматировать надо сам код, а не выводимые им данные. Да и многие элементы словарей - подгружаются через какие-то функции.
P.P.S. Нет, я не могу задать словари где-нибудь вовне. Да, мне нужно задавать их прямо в Python-коде.