Add some sorting to JSON outputs.

Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
This commit is contained in:
Keith Rothman 2020-02-14 09:29:29 -08:00
parent 26d8024402
commit 89761c1102
4 changed files with 19 additions and 5 deletions

View File

@ -605,6 +605,13 @@ def main():
tileconn, raw_node_data = generate_tileconn(
pool, node_tree, nodes, wire_map, grid)
for data in tileconn:
data['wire_pairs'] = tuple(sorted(data['wire_pairs']))
tileconn = tuple(
sorted(
tileconn, key=lambda x: (x['tile_types'], x['grid_deltas'])))
print('{} Writing tileconn'.format(datetime.datetime.now()))
with open(tileconn_file, 'w') as f:
json.dump(tileconn, f, indent=2, sort_keys=True)

View File

@ -365,6 +365,10 @@ def main():
tile_type, site_types[site_type]['type'])), 'w') as f:
json.dump(site_types[site_type], f, indent=2, sort_keys=True)
reduced_tile['sites'] = sorted(
reduced_tile['sites'],
key=lambda site: '{}_{}'.format(site['name'], site['prefix']))
with open(tile_type_file, 'w') as f:
json.dump(reduced_tile, f, indent=2, sort_keys=True)

View File

@ -11,7 +11,7 @@ from prjxray.util import get_db_root, get_part
def set_port_wires(ports, name, pin, wires_outside_roi):
for port in ports:
if name == port['name']:
port['wires_outside_roi'] = wires_outside_roi
port['wires_outside_roi'] = sorted(wires_outside_roi)
assert port['pin'] == pin
return
@ -104,8 +104,11 @@ def main():
if not_in_roi:
required_features.append(fasm_line)
design_json['required_features'] = fasm.fasm_tuple_to_string(
required_features, canonical=True).split('\n')
design_json['required_features'] = sorted(
fasm.fasm_tuple_to_string(required_features,
canonical=True).split('\n'))
design_json['ports'].sort(key=lambda x: x['name'])
xjson.pprint(sys.stdout, design_json)

View File

@ -87,9 +87,9 @@ def sort(data):
return new_dict
elif isinstance(o, set):
return tuple(sorted(o, key=key))
return tuple(sorted((rsorter(v) for v in o), key=key))
elif isinstance(o, (tuple, list)):
return tuple(o)
return tuple(rsorter(v) for v in o)
else:
return o