def __init__(self, filename, package_root=None): if not package_root: raise BlackWidowValueError("No 'package_root' specified.") self.filename = filename self.package_root = package_root self.module = import_path(filename, os.path.dirname(package_root)) self.edges = imported_modules(filename, package_root=package_root) self.imports = list(itertools.chain(*[edge.imports for edge in self.edges]))
def __init__(self, filename, package_root=None): if not package_root: raise BlackWidowValueError("No 'package_root' specified.") self.filename = filename self.package_root = package_root self.module = import_path(filename, os.path.dirname(package_root)) self.edges = imported_modules(filename, package_root=package_root) self.imports = list( itertools.chain(*[edge.imports for edge in self.edges]))
def __init__(self, package_root, exclude=None): self.files = find_files(package_root, exclude=exclude) self.package_root = package_root self.module = import_path(package_root, os.path.dirname(package_root)) self.nodes = [ Node(file, package_root=self.package_root) for file in self.files ] package_import_path = partial(import_path, package_root=os.path.dirname(package_root)) self.package_modules = set(map(package_import_path, self.files)) self.graph = nx.Graph() for node in self.nodes: if node.module not in self.package_modules: continue self.graph.add_node(node.module) self.graph.node[node.module]['name'] = node.module for module in node.imports: module = self._package_module(module) if module in self.package_modules: self.graph.add_edge(node.module, module)