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)
|