py-code-analyzer / README.md
cyyeh's picture
performance optimization using aiohttp and change api endpoint
d48fa34
|
raw
history blame
2.21 kB
metadata
title: Py Code Analyzer
emoji: πŸ“ˆ
colorFrom: red
colorTo: yellow
sdk: streamlit
sdk_version: 1.9.0
app_file: app.py
pinned: false
license: mit

Check out the configuration reference at https://huggingface.co/docs/hub/spaces#reference

Python Code Analyzer

Motivation

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.

Setup

  • Python version: 3.8
  • pipenv install
  • cp .env.example .env: fill in your GitHub username and personal access token if you need to increase GitHub API requests rate limiting
  • make run
  • Also refer to References to understand settings behind the project

Thoughts on solving the problem

  1. Build a prototype without UI interface to show dependencies among files included in the directory(output) given user's input to one GitHub public repo's URL(input)
  2. Build a streamlit app to show results using some network visualization tools

Used technologies

  • networkx: network analysis
  • pyvis: network visualization
  • streamlit: web app

TODOs

  • Build a prototype
    • Finish generate_imports_graph implementation
    • Fetch python files given public GitHub repo url(owner, repo, path, ref)
    • Use ast to parse imports among given python files
    • Generate a basic networkx graph given python imports
    • Visualize a basic networkx graph using pyvis
  • Build a streamlit app
  • Performance optimization
    • requests to aiohttp
    • change fetching GitHub repository content api from preventing querying multiple times
    • ...
  • Network analysis
  • Enhance network visualization UI

References