from time import sleep
import pygraphviz as pgv
-pkgs = os.popen("""LANGUAGE=C pacman -Ssq "^libpng$" """).read().strip().split("\n")
+pkgs = os.popen("""LANGUAGE=C pacman -Ssq "^x264" """).read().strip().split("\n")
print(pkgs)
pkglist = os.popen("LANGUAGE=C pacman -Si").read().strip().split("\n\n")
G = pgv.AGraph(directed=True)
dep = p.sub("",dep)
G.add_edge(dep,name)
+max_d = 200
+ print(succs)
all_n = set(G.nodes())
-n = set(pkgs)
+n = set()
for pkg in pkgs:
- n |= set(G.successors(pkg))
- n |= set(G.predecessors(pkg))
+ n.add(pkg)
+ succs = set(G.successors(pkg))
+ cnt = 0;
+ while (cnt < max_d and len(succs) > 0):
+ cnt += 1
+ p = succs.pop()
+ try:
+ n.add(p)
+ succs |= set(G.successors(p))
+ except KeyError:
+ pass
+
+ preds = set(G.predecessors(pkg))
+ cnt = 0;
+ while (cnt < max_d and len(preds) > 0):
+ cnt += 1
+ p = preds.pop()
+ try:
+ n.add(p)
+ preds |= set(G.predecessors(p))
+ except KeyError:
+ pass
G.remove_nodes_from(all_n - n)
G.write("graph.dot")
-#G.draw("graph.svg",prog='dot')
+G.draw("graph.svg",prog='dot')