File size: 1,239 Bytes
1903343
 
 
a5f8603
a908fc5
1903343
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82531de
1903343
 
9256956
7d4d7b2
1903343
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import streamlit as st
import streamlit.components.v1 as components

from py_code_analyzer import CodeFetcher, CodeImportsAnalyzer, ImportsGraphVisualizer

TITLE = "Python Code Analyzer"
st.set_page_config(page_title=TITLE, layout="wide")
st.title(TITLE)
st.markdown(
    "The main purpose of the app is to allow Python developers navigate Python code base much "
    + "easier by showing dependencies among files included in the directory with better visualization."
)
st.markdown(
    "**Checkout the source code [here](https://github.com/cyyeh/py-code-analyzer)**"
)

owner = st.text_input("Enter GitHub username", value="cyyeh")
repo = st.text_input("Enter GitHib repo name", value="py-code-analyzer")
path = st.text_input(
    "Enter target directory path, if the value is empty, then the target directory will be the root directory",
    value="py_code_analyzer",
)

python_files = CodeFetcher().get_python_files(owner, repo, path)
imports_graph = CodeImportsAnalyzer(python_files).analyze().generate_imports_graph()
ImportsGraphVisualizer().visualize(imports_graph)

imports_graph_html = open("nx.html", "r", encoding="utf-8")
imports_graph_html_text = imports_graph_html.read()
components.html(imports_graph_html_text, height=800)