mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-30 01:04:59 +00:00
wip
This commit is contained in:
parent
2a28c9453c
commit
0ab7d0c1f1
1 changed files with 11 additions and 15 deletions
|
@ -244,15 +244,15 @@ def call_map():
|
||||||
|
|
||||||
idents = set(defines.keys()).intersection(set(references.keys()))
|
idents = set(defines.keys()).intersection(set(references.keys()))
|
||||||
|
|
||||||
dot = graphviz.Digraph(graph_attr={'ratio': '.5'})
|
dot = graphviz.Digraph(graph_attr={"ratio": ".5"})
|
||||||
|
|
||||||
labels = defaultdict(list)
|
labels = defaultdict(list)
|
||||||
edges = defaultdict(float)
|
edges = defaultdict(float)
|
||||||
for ident in idents:
|
for ident in idents:
|
||||||
defs = defines[ident]
|
defs = defines[ident]
|
||||||
num_defs = len(defs)
|
num_defs = len(defs)
|
||||||
# if num_defs > 1:
|
if num_defs > 3:
|
||||||
# continue
|
continue
|
||||||
|
|
||||||
for referencer, num_refs in Counter(references[ident]).items():
|
for referencer, num_refs in Counter(references[ident]).items():
|
||||||
dump(referencer, ident, num_refs)
|
dump(referencer, ident, num_refs)
|
||||||
|
@ -262,7 +262,7 @@ def call_map():
|
||||||
# tuple(sorted([referencer, definer]))
|
# tuple(sorted([referencer, definer]))
|
||||||
name = referencer, definer
|
name = referencer, definer
|
||||||
edges[name] += num_refs / num_defs
|
edges[name] += num_refs / num_defs
|
||||||
labels[name].append(ident)
|
labels[name].append((num_refs, ident))
|
||||||
|
|
||||||
G = nx.DiGraph()
|
G = nx.DiGraph()
|
||||||
|
|
||||||
|
@ -276,7 +276,7 @@ def call_map():
|
||||||
nodes_to_remove = [node for node in G.nodes if node not in top_10_nodes]
|
nodes_to_remove = [node for node in G.nodes if node not in top_10_nodes]
|
||||||
G.remove_nodes_from(nodes_to_remove)
|
G.remove_nodes_from(nodes_to_remove)
|
||||||
|
|
||||||
'''
|
"""
|
||||||
# drop low weight edges for plotting
|
# drop low weight edges for plotting
|
||||||
edges_to_remove = [
|
edges_to_remove = [
|
||||||
(node1, node2) for node1, node2, data in G.edges(data=True) if data["weight"] < 1
|
(node1, node2) for node1, node2, data in G.edges(data=True) if data["weight"] < 1
|
||||||
|
@ -284,7 +284,7 @@ def call_map():
|
||||||
G.remove_edges_from(edges_to_remove)
|
G.remove_edges_from(edges_to_remove)
|
||||||
# Remove isolated nodes (nodes with no edges)
|
# Remove isolated nodes (nodes with no edges)
|
||||||
G.remove_nodes_from(list(nx.isolates(G)))
|
G.remove_nodes_from(list(nx.isolates(G)))
|
||||||
'''
|
"""
|
||||||
|
|
||||||
max_rank = max(ranked.values())
|
max_rank = max(ranked.values())
|
||||||
min_rank = min(ranked.values())
|
min_rank = min(ranked.values())
|
||||||
|
@ -293,7 +293,7 @@ def call_map():
|
||||||
rank = ranked[fname]
|
rank = ranked[fname]
|
||||||
size = (rank - min_rank) / (max_rank - min_rank)
|
size = (rank - min_rank) / (max_rank - min_rank)
|
||||||
pen = max(10 * size, 1)
|
pen = max(10 * size, 1)
|
||||||
size = 3 * size
|
size = 2 * size
|
||||||
fontsize = str(10 * size)
|
fontsize = str(10 * size)
|
||||||
dot.node(fname, penwidth=str(pen), width=str(size), height=str(size), fontsize=fontsize)
|
dot.node(fname, penwidth=str(pen), width=str(size), height=str(size), fontsize=fontsize)
|
||||||
|
|
||||||
|
@ -306,14 +306,10 @@ def call_map():
|
||||||
b = random.randint(0, 255)
|
b = random.randint(0, 255)
|
||||||
color = f"#{r:02x}{g:02x}{b:02x}80"
|
color = f"#{r:02x}{g:02x}{b:02x}80"
|
||||||
weight = weight * 10 / max_w
|
weight = weight * 10 / max_w
|
||||||
dot.edge(refs, defs, penwidth=str(weight), color=color)
|
label = labels[(refs, defs)]
|
||||||
|
label = sorted(label, reverse=True)
|
||||||
name = tuple(sorted([refs, defs]))
|
label = " ".join(ident for cnt, ident in label[:5])
|
||||||
print()
|
dot.edge(refs, defs, penwidth=str(weight), color=color, label=label)
|
||||||
print(name)
|
|
||||||
for ident in sorted(labels[name]):
|
|
||||||
print("\t", ident)
|
|
||||||
# print(f"{refs} -{weight}-> {defs}")
|
|
||||||
|
|
||||||
top_rank = sorted([(rank, node) for (node, rank) in ranked.items()], reverse=True)
|
top_rank = sorted([(rank, node) for (node, rank) in ranked.items()], reverse=True)
|
||||||
# Print the PageRank of each node
|
# Print the PageRank of each node
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue