cyyeh commited on
Commit
82531de
·
1 Parent(s): 69441db
Files changed (3) hide show
  1. README.md +2 -2
  2. app.py +3 -1
  3. py_code_analyzer/code_imports_analyzer.py +12 -9
README.md CHANGED
@@ -27,8 +27,8 @@ input to one GitHub public repo's URL(input)
27
 
28
  ## TODOs
29
 
30
- - [ ] Build a prototype
31
- - [ ] Finish `generate_imports_graph` implementation
32
  - [x] Fetch python files given public GitHub repo url(owner, repo, path, ref)
33
  - [x] Use `ast` to parse imports among given python files
34
  - [x] Generate a basic `networkx` graph given python imports
 
27
 
28
  ## TODOs
29
 
30
+ - [x] Build a prototype
31
+ - [x] Finish `generate_imports_graph` implementation
32
  - [x] Fetch python files given public GitHub repo url(owner, repo, path, ref)
33
  - [x] Use `ast` to parse imports among given python files
34
  - [x] Generate a basic `networkx` graph given python imports
app.py CHANGED
@@ -1,5 +1,7 @@
1
  from py_code_analyzer import CodeFetcher, CodeImportsAnalyzer, ImportsGraphVisualizer
2
 
3
- python_files = CodeFetcher().get_python_files("cyyeh", "gradio", "gradio")
 
 
4
  imports_graph = CodeImportsAnalyzer(python_files).analyze().generate_imports_graph()
5
  ImportsGraphVisualizer().visualize(imports_graph)
 
1
  from py_code_analyzer import CodeFetcher, CodeImportsAnalyzer, ImportsGraphVisualizer
2
 
3
+ python_files = CodeFetcher().get_python_files(
4
+ "cyyeh", "py-code-analyzer", "py_code_analyzer"
5
+ )
6
  imports_graph = CodeImportsAnalyzer(python_files).analyze().generate_imports_graph()
7
  ImportsGraphVisualizer().visualize(imports_graph)
py_code_analyzer/code_imports_analyzer.py CHANGED
@@ -68,15 +68,18 @@ class CodeImportsAnalyzer:
68
  self.imports_graph.add_node(_nodes[0])
69
 
70
  # generate graph based on imported modules in each file
71
- for _import in python_import["imports"]:
72
- if _import["module"] is None:
73
- _import_names = _import["name"].split(".")
74
- _new_nodes = _import_names + [_nodes[-1]]
75
- self._add_edges(_new_nodes)
76
- else:
77
- _import_names = _import["module"].split(".") + [_import["name"]]
78
- _new_nodes = _import_names + [_nodes[-1]]
79
- self._add_edges(_new_nodes)
 
 
 
80
 
81
  return self.imports_graph
82
 
 
68
  self.imports_graph.add_node(_nodes[0])
69
 
70
  # generate graph based on imported modules in each file
71
+ if python_import["file_name"] != "__init__.py":
72
+ for _import in python_import["imports"]:
73
+ if _import["module"] is None:
74
+ _import_names = _import["name"].split(".")
75
+ _new_nodes = _import_names + [_nodes[-1]]
76
+ self._add_edges(_new_nodes)
77
+ else:
78
+ _import_names = _import["module"].split(".") + [
79
+ _import["name"]
80
+ ]
81
+ _new_nodes = _import_names + [_nodes[-1]]
82
+ self._add_edges(_new_nodes)
83
 
84
  return self.imports_graph
85