From 26d70b1653f2910d02ff91f31bc846b6ed25f8dc Mon Sep 17 00:00:00 2001 From: ncteisen Date: Mon, 11 Dec 2017 16:40:56 -0800 Subject: yapf tools/buildgen --- tools/buildgen/build-cleaner.py | 100 ++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 50 deletions(-) (limited to 'tools/buildgen/build-cleaner.py') diff --git a/tools/buildgen/build-cleaner.py b/tools/buildgen/build-cleaner.py index 7b42844f75..a6b86fb242 100755 --- a/tools/buildgen/build-cleaner.py +++ b/tools/buildgen/build-cleaner.py @@ -22,65 +22,65 @@ import yaml TEST = (os.environ.get('TEST', 'false') == 'true') -_TOP_LEVEL_KEYS = ['settings', 'proto_deps', 'filegroups', 'libs', 'targets', 'vspackages'] +_TOP_LEVEL_KEYS = [ + 'settings', 'proto_deps', 'filegroups', 'libs', 'targets', 'vspackages' +] _ELEM_KEYS = [ - 'name', - 'gtest', - 'cpu_cost', - 'flaky', - 'build', - 'run', - 'language', - 'public_headers', - 'headers', - 'src', - 'deps'] + 'name', 'gtest', 'cpu_cost', 'flaky', 'build', 'run', 'language', + 'public_headers', 'headers', 'src', 'deps' +] + def repr_ordered_dict(dumper, odict): - return dumper.represent_mapping(u'tag:yaml.org,2002:map', odict.items()) + return dumper.represent_mapping(u'tag:yaml.org,2002:map', odict.items()) + yaml.add_representer(collections.OrderedDict, repr_ordered_dict) + def rebuild_as_ordered_dict(indict, special_keys): - outdict = collections.OrderedDict() - for key in sorted(indict.keys()): - if '#' in key: - outdict[key] = indict[key] - for key in special_keys: - if key in indict: - outdict[key] = indict[key] - for key in sorted(indict.keys()): - if key in special_keys: continue - if '#' in key: continue - outdict[key] = indict[key] - return outdict + outdict = collections.OrderedDict() + for key in sorted(indict.keys()): + if '#' in key: + outdict[key] = indict[key] + for key in special_keys: + if key in indict: + outdict[key] = indict[key] + for key in sorted(indict.keys()): + if key in special_keys: continue + if '#' in key: continue + outdict[key] = indict[key] + return outdict + def clean_elem(indict): - for name in ['public_headers', 'headers', 'src']: - if name not in indict: continue - inlist = indict[name] - protos = list(x for x in inlist if os.path.splitext(x)[1] == '.proto') - others = set(x for x in inlist if x not in protos) - indict[name] = protos + sorted(others) - return rebuild_as_ordered_dict(indict, _ELEM_KEYS) + for name in ['public_headers', 'headers', 'src']: + if name not in indict: continue + inlist = indict[name] + protos = list(x for x in inlist if os.path.splitext(x)[1] == '.proto') + others = set(x for x in inlist if x not in protos) + indict[name] = protos + sorted(others) + return rebuild_as_ordered_dict(indict, _ELEM_KEYS) + for filename in sys.argv[1:]: - with open(filename) as f: - js = yaml.load(f) - js = rebuild_as_ordered_dict(js, _TOP_LEVEL_KEYS) - for grp in ['filegroups', 'libs', 'targets']: - if grp not in js: continue - js[grp] = sorted([clean_elem(x) for x in js[grp]], - key=lambda x: (x.get('language', '_'), x['name'])) - output = yaml.dump(js, indent=2, width=80, default_flow_style=False) - # massage out trailing whitespace - lines = [] - for line in output.splitlines(): - lines.append(line.rstrip() + '\n') - output = ''.join(lines) - if TEST: with open(filename) as f: - assert f.read() == output - else: - with open(filename, 'w') as f: - f.write(output) + js = yaml.load(f) + js = rebuild_as_ordered_dict(js, _TOP_LEVEL_KEYS) + for grp in ['filegroups', 'libs', 'targets']: + if grp not in js: continue + js[grp] = sorted( + [clean_elem(x) for x in js[grp]], + key=lambda x: (x.get('language', '_'), x['name'])) + output = yaml.dump(js, indent=2, width=80, default_flow_style=False) + # massage out trailing whitespace + lines = [] + for line in output.splitlines(): + lines.append(line.rstrip() + '\n') + output = ''.join(lines) + if TEST: + with open(filename) as f: + assert f.read() == output + else: + with open(filename, 'w') as f: + f.write(output) -- cgit v1.2.3