def _expand_dependencies_to_graph(self, targets):
G = nx.DiGraph()
targets_copy = list(targets)
queue = list(targets)
seen = set(targets)
while queue:
package = queue.pop()
G.add_node(package)
for dep_name in package.dependecies:
q = Query(dep_name)
dep_package = self._find_satisfier(targets_copy, q)
if dep_package is None:
self.unresolved.append(q)
continue
G.add_edge(package, dep_package)
if not dep_package in seen:
targets_copy.append(dep_package)
seen.add(dep_package)
queue.append(dep_package)
return G
评论列表
文章目录