in tools/check_names.py [0:0]
def main(dirs, prefix_length=None, failed_only=False):
'Parse names in dirs.'
import json
logging.basicConfig(level=logging.INFO)
names = []
for dir_name in dirs:
for name in get_names(dir_name):
names.append(name)
names.sort()
source_just = max(len(k) for k in MOD_LIMITS)
name_just = max(len(n.name) for n in names)
value_just = max(len(n.value) for n in names)
errors = []
output = []
for name in names:
name_length = name.length + prefix_length
remaining = MOD_LIMITS[name.source] - name_length
if remaining <= 0:
output.append(Output(name, name_length, remaining, "✗"))
errors += [f"{name.source}:{name.name}:{name_length}"]
else:
output.append(Output(name, name_length, remaining, "✓"))
output.sort(key=lambda i: i.remaining, reverse=True)
if failed_only:
output = [i for i in output if i.flag == "✗"]
print(f' {"source".ljust(source_just)} '
f'{"name".ljust(name_just)} '
f'{"value".ljust(value_just)} '
'length remaining')
for i in output:
print(f"[{i.flag}] {i.name.source.ljust(source_just)} "
f"{i.name.name.ljust(name_just)} "
f"{i.name.value.ljust(value_just)} "
f" {i.length}/{MOD_LIMITS[i.name.source]} "
f"{str(i.remaining).rjust(10)}")
return 0 if not errors else 1