Skip to content
Snippets Groups Projects
Commit 40673c31 authored by mehtank's avatar mehtank
Browse files

Use networkx for component hierarchy

parent def60889
No related merge requests found
import networkx as nx
from os import system
from os.path import dirname, realpath, basename, join
from glob import glob
......@@ -22,18 +23,16 @@ def getSubcomponents(c):
except FileNotFoundError:
return set()
def getComponentNx():
net = nx.DiGraph()
net.add_nodes_from(allComponents)
for c in allComponents:
for sc in getSubcomponents(c):
net.add_edge(sc, c)
return net
def getComponentTree():
tree = []
ac = set(allComponents)
while ac:
leaves = []
for c in ac:
subcomponents = getSubcomponents(c)
if not subcomponents.intersection(ac):
leaves.append(c)
tree.append(sorted(leaves))
ac -= set(leaves)
return tree
return nx.topological_generations(getComponentNx())
def getComponent(c, **kwargs):
'''
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment