Spaces:
Runtime error
Runtime error
hide _add_edges
Browse files
py_code_analyzer/code_imports_analyzer.py
CHANGED
|
@@ -47,12 +47,6 @@ class CodeImportsAnalyzer:
|
|
| 47 |
self._node_visitor.visit(tree)
|
| 48 |
return self
|
| 49 |
|
| 50 |
-
def _add_edges(self, nodes):
|
| 51 |
-
for first_node, second_node in zip(nodes, nodes[1:]):
|
| 52 |
-
self.graph_analyzer.add_node(first_node, color="gray")
|
| 53 |
-
self.graph_analyzer.add_node(second_node, color="gray")
|
| 54 |
-
self.graph_analyzer.add_edge(first_node, second_node)
|
| 55 |
-
|
| 56 |
def generate_imports_graph(self):
|
| 57 |
for python_import in self.python_imports:
|
| 58 |
_nodes = python_import["file_path"].split("/")
|
|
@@ -65,7 +59,7 @@ class CodeImportsAnalyzer:
|
|
| 65 |
if len(_nodes) >= 3:
|
| 66 |
_nodes[-2] = _nodes[-2] + "/" + _nodes[-1]
|
| 67 |
del _nodes[-1]
|
| 68 |
-
self.
|
| 69 |
else:
|
| 70 |
self.graph_analyzer.add_node(_nodes[0])
|
| 71 |
|
|
@@ -75,13 +69,13 @@ class CodeImportsAnalyzer:
|
|
| 75 |
if _import["module"] is None:
|
| 76 |
_import_names = _import["name"].split(".")
|
| 77 |
_new_nodes = _import_names + [_nodes[-1]]
|
| 78 |
-
self.
|
| 79 |
else:
|
| 80 |
_import_names = _import["module"].split(".") + [
|
| 81 |
_import["name"]
|
| 82 |
]
|
| 83 |
_new_nodes = _import_names + [_nodes[-1]]
|
| 84 |
-
self.
|
| 85 |
|
| 86 |
return self.graph_analyzer.graph
|
| 87 |
|
|
|
|
| 47 |
self._node_visitor.visit(tree)
|
| 48 |
return self
|
| 49 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
def generate_imports_graph(self):
|
| 51 |
for python_import in self.python_imports:
|
| 52 |
_nodes = python_import["file_path"].split("/")
|
|
|
|
| 59 |
if len(_nodes) >= 3:
|
| 60 |
_nodes[-2] = _nodes[-2] + "/" + _nodes[-1]
|
| 61 |
del _nodes[-1]
|
| 62 |
+
self.graph_analyzer.add_edges_from_nodes(_nodes)
|
| 63 |
else:
|
| 64 |
self.graph_analyzer.add_node(_nodes[0])
|
| 65 |
|
|
|
|
| 69 |
if _import["module"] is None:
|
| 70 |
_import_names = _import["name"].split(".")
|
| 71 |
_new_nodes = _import_names + [_nodes[-1]]
|
| 72 |
+
self.graph_analyzer.add_edges_from_nodes(_new_nodes)
|
| 73 |
else:
|
| 74 |
_import_names = _import["module"].split(".") + [
|
| 75 |
_import["name"]
|
| 76 |
]
|
| 77 |
_new_nodes = _import_names + [_nodes[-1]]
|
| 78 |
+
self.graph_analyzer.add_edges_from_nodes(_new_nodes)
|
| 79 |
|
| 80 |
return self.graph_analyzer.graph
|
| 81 |
|
py_code_analyzer/graph_analyzer.py
CHANGED
|
@@ -12,3 +12,10 @@ class GraphAnalyzer:
|
|
| 12 |
|
| 13 |
def add_edge(self, first_node, second_node):
|
| 14 |
self.graph.add_edge(first_node, second_node)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
|
| 13 |
def add_edge(self, first_node, second_node):
|
| 14 |
self.graph.add_edge(first_node, second_node)
|
| 15 |
+
|
| 16 |
+
def add_edges_from_nodes(self, nodes):
|
| 17 |
+
assert len(nodes) > 1
|
| 18 |
+
for first_node, second_node in zip(nodes, nodes[1:]):
|
| 19 |
+
self.graph.add_node(first_node, color="gray") # set default node color
|
| 20 |
+
self.graph.add_node(second_node, color="gray") # set default node color
|
| 21 |
+
self.graph.add_edge(first_node, second_node)
|