mirror of https://github.com/astral-sh/ruff
76 lines
4.0 KiB
Python
76 lines
4.0 KiB
Python
import sys
|
|
|
|
source_counts = []
|
|
lines_counts = []
|
|
nodes_counts = []
|
|
scopes_counts = []
|
|
bindings_counts = []
|
|
definitions_counts = []
|
|
resolved_references_counts = []
|
|
unresolved_references_counts = []
|
|
globals_counts = []
|
|
resolved_names_counts = []
|
|
shadowed_bindings_counts = []
|
|
|
|
with open(sys.argv[1], 'r') as fp:
|
|
for line in fp:
|
|
if line.startswith('source'):
|
|
source_counts.append(int(line.split()[1]))
|
|
if line.startswith('lines'):
|
|
lines_counts.append(int(line.split()[1]))
|
|
if line.startswith('nodes'):
|
|
nodes_counts.append(int(line.split()[1]))
|
|
if line.startswith('scopes'):
|
|
scopes_counts.append(int(line.split()[1]))
|
|
if line.startswith('bindings'):
|
|
bindings_counts.append(int(line.split()[1]))
|
|
if line.startswith('definitions'):
|
|
definitions_counts.append(int(line.split()[1]))
|
|
if line.startswith('resolved_references'):
|
|
resolved_references_counts.append(int(line.split()[1]))
|
|
if line.startswith('unresolved_references'):
|
|
unresolved_references_counts.append(int(line.split()[1]))
|
|
if line.startswith('globals'):
|
|
globals_counts.append(int(line.split()[1]))
|
|
if line.startswith('resolved_names'):
|
|
resolved_names_counts.append(int(line.split()[1]))
|
|
if line.startswith('shadowed_bindings'):
|
|
shadowed_bindings_counts.append(int(line.split()[1]))
|
|
|
|
# Each line represents a file.
|
|
# Let's compute (e.g.) the average number of bindings per line.
|
|
print('Average number of nodes per file:', sum(nodes_counts) / len(lines_counts))
|
|
print('Average number of scopes per file:', sum(scopes_counts) / len(lines_counts))
|
|
print('Average number of bindings per file:', sum(bindings_counts) / len(lines_counts))
|
|
print('Average number of definitions per file:', sum(definitions_counts) / len(lines_counts))
|
|
print('Average number of resolved references per file:', sum(resolved_references_counts) / len(lines_counts))
|
|
print('Average number of unresolved references per file:', sum(unresolved_references_counts) / len(lines_counts))
|
|
print('Average number of globals per file:', sum(globals_counts) / len(lines_counts))
|
|
print('Average number of resolved names per file:', sum(resolved_names_counts) / len(lines_counts))
|
|
print('Average number of shadowed bindings per file:', sum(shadowed_bindings_counts) / len(lines_counts))
|
|
|
|
print()
|
|
|
|
print('Max nodes per file:', max(nodes_counts))
|
|
print('Max scopes per file:', max(scopes_counts))
|
|
print('Max bindings per file:', max(bindings_counts))
|
|
print('Max definitions per file:', max(definitions_counts))
|
|
print('Max resolved references per file:', max(resolved_references_counts))
|
|
print('Max unresolved references per file:', max(unresolved_references_counts))
|
|
print('Max globals per file:', max(globals_counts))
|
|
print('Max resolved names per file:', max(resolved_names_counts))
|
|
print('Max shadowed bindings per file:', max(shadowed_bindings_counts))
|
|
|
|
print()
|
|
|
|
# Let's compute (e.g.) the average number of bindings per line.
|
|
print('Average number of nodes per byte:', sum(nodes_counts) / sum(source_counts))
|
|
print('Average number of scopes per byte:', sum(scopes_counts) / sum(source_counts))
|
|
print('Average number of bindings per byte:', sum(bindings_counts) / sum(source_counts))
|
|
print('Average number of definitions per byte:', sum(definitions_counts) / sum(source_counts))
|
|
print('Average number of resolved references per byte:', sum(resolved_references_counts) / sum(source_counts))
|
|
print('Average number of unresolved references per byte:', sum(unresolved_references_counts) / sum(source_counts))
|
|
print('Average number of globals per byte:', sum(globals_counts) / sum(source_counts))
|
|
print('Average number of resolved names per byte:', sum(resolved_names_counts) / sum(source_counts))
|
|
print('Average number of shadowed bindings per byte:', sum(shadowed_bindings_counts) / sum(source_counts))
|