This commit is contained in:
Paul Gauthier 2023-05-31 05:58:56 -07:00
parent a216754c9f
commit c635217d6a

View file

@ -287,12 +287,16 @@ def call_map():
root = os.path.commonpath(fnames) root = os.path.commonpath(fnames)
personalization = dict()
show_fnames = set() show_fnames = set()
for fname in sorted(fnames): for fname in sorted(fnames):
dump(fname)
show_fname = os.path.relpath(fname, root) show_fname = os.path.relpath(fname, root)
show_fnames.add(show_fname) show_fnames.add(show_fname)
if ".venv" not in show_fname:
personalization[show_fname] = 1.0
data = rm.run_ctags(fname) data = rm.run_ctags(fname)
for tag in data: for tag in data:
@ -332,11 +336,21 @@ def call_map():
refs, defs = edge refs, defs = edge
G.add_edge(refs, defs, weight=weight) G.add_edge(refs, defs, weight=weight)
ranked = nx.pagerank(G, weight="weight") personalization = dict()
personalization["repomap.py"] = 1.0
top_10_nodes = sorted(ranked, key=ranked.get, reverse=True)[:20] ranked = nx.pagerank(
G,
weight="weight",
personalization=personalization,
dangling=personalization,
)
N = 20
top_10_nodes = sorted(ranked, key=ranked.get, reverse=True)[:N]
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)
dump(G)
""" """
# drop low weight edges for plotting # drop low weight edges for plotting
@ -377,7 +391,7 @@ def call_map():
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
for rank, node in top_rank: for rank, node in top_rank[:N]:
print(f"{node} rank: {rank}") print(f"{node} rank: {rank}")
dot.render("tmp", format="pdf", view=True) dot.render("tmp", format="pdf", view=True)