def needed_by(self, iid): try: from pyinstl import installItemGraph InstallItem.begin_get_for_all_oses() graph = installItemGraph.create_dependencies_graph(self.install_definitions_index) needed_by_list = installItemGraph.find_needed_by(graph, iid) InstallItem.reset_get_for_all_oses() return needed_by_list except ImportError: # no installItemGraph, no worry print("Could not load installItemGraph") return None
def needs(self, iid, out_list): """ return all items that depend on iid """ if iid not in self.install_definitions_index: raise KeyError(iid+" is not in index") InstallItem.begin_get_for_all_oses() with self.install_definitions_index[iid]: for dep in var_list.resolve_var_to_list("iid_depend_list"): if dep in self.install_definitions_index: out_list.append(dep) self.needs(dep, out_list) else: out_list.append(dep+"(missing)") InstallItem.reset_get_for_all_oses()