/ tools / format_json.py
format_json.py
 1  import sys
 2  import json
 3  import collections
 4  
 5  # Change this it True if you want to format it to compare versions.
 6  pretty = False
 7  
 8  with open(sys.argv[1], "r") as f:
 9      config = json.load(f)
10  
11  print(config.keys())
12  
13  config["middlewares"].sort(key=lambda x: x["identifier"])
14  config["drivers"].sort(key=lambda x: x["identifier"])
15  
16  new_root = collections.OrderedDict()
17  for key in ['jsonForm', 'formatVersion', 'board', 'identifier', 'name', 'details', 'application', 'middlewares', 'drivers', 'pads']:
18      new_root[key] = config[key]
19  
20  with open(sys.argv[1], "w") as f:
21      indent = 2
22      separators = (',', ': ')
23      sort_keys = True
24      if not pretty:
25          indent = None
26          separators = (',', ':')
27          sort_keys = False
28      json.dump(new_root, f,
29                indent=indent, separators=separators, sort_keys=sort_keys)