mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-29 08:44:59 +00:00
cleap up edge logic
This commit is contained in:
parent
9e40898226
commit
f46feda846
1 changed files with 11 additions and 14 deletions
|
@ -4,7 +4,7 @@ import sys
|
||||||
import subprocess
|
import subprocess
|
||||||
import tiktoken
|
import tiktoken
|
||||||
import tempfile
|
import tempfile
|
||||||
from collections import defaultdict
|
from collections import defaultdict, Counter
|
||||||
|
|
||||||
from aider import prompts, utils
|
from aider import prompts, utils
|
||||||
from aider.dump import dump
|
from aider.dump import dump
|
||||||
|
@ -241,9 +241,6 @@ def call_map():
|
||||||
# dump("ref", fname, ident)
|
# dump("ref", fname, ident)
|
||||||
references[ident].append(show_fname)
|
references[ident].append(show_fname)
|
||||||
|
|
||||||
for ident, fname in defines.items():
|
|
||||||
dump(fname, ident)
|
|
||||||
|
|
||||||
idents = set(defines.keys()).intersection(set(references.keys()))
|
idents = set(defines.keys()).intersection(set(references.keys()))
|
||||||
|
|
||||||
dot = graphviz.Graph()
|
dot = graphviz.Graph()
|
||||||
|
@ -253,20 +250,22 @@ def call_map():
|
||||||
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 > 1:
|
||||||
continue
|
# continue
|
||||||
|
|
||||||
for refs in references[ident]:
|
for referencer, num_refs in Counter(references[ident]).items():
|
||||||
for defs in defines[ident]:
|
dump(referencer, ident, num_refs)
|
||||||
if refs == defs:
|
for definer in defines[ident]:
|
||||||
|
if referencer == definer:
|
||||||
continue
|
continue
|
||||||
name = tuple(sorted([refs, defs]))
|
# tuple(sorted([referencer, definer]))
|
||||||
edges[name] += 1 / num_defs
|
name = referencer, definer
|
||||||
|
edges[name] += num_refs / num_defs
|
||||||
labels[name].append(ident)
|
labels[name].append(ident)
|
||||||
|
|
||||||
import networkx as nx
|
import networkx as nx
|
||||||
|
|
||||||
G = nx.Graph()
|
G = nx.DiGraph()
|
||||||
|
|
||||||
for edge, weight in edges.items():
|
for edge, weight in edges.items():
|
||||||
refs, defs = edge
|
refs, defs = edge
|
||||||
|
@ -280,9 +279,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)
|
||||||
dump(G.nodes())
|
|
||||||
G.remove_nodes_from(list(nx.isolates(G)))
|
G.remove_nodes_from(list(nx.isolates(G)))
|
||||||
dump(G.nodes())
|
|
||||||
|
|
||||||
max_rank = max(ranked.values())
|
max_rank = max(ranked.values())
|
||||||
min_rank = min(ranked.values())
|
min_rank = min(ranked.values())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue