py-code-analyzer / README.md
cyyeh's picture
fix bug
a7a3247

A newer version of the Streamlit SDK is available: 1.40.2

Upgrade
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

  • pipenv install -r requirements.txt --python=3.8
  • 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

Used technologies

  • networkx: network analysis
  • pyvis: network visualization
  • aiohttp: asynchronous HTTP client
  • pybase64: faster base64 encoding/decoding
  • 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