Skip to main content

Interactive Python call tree visualizer — upload a project, explore its call graph in the browser

Project description

VizPy

Interactive Python call tree visualizer. Upload a Python project and explore its function call graph in the browser.

Features

  • Interactive web UI — zoom, pan, drag nodes, collapse subtrees
  • Cross-module resolution — follows imports across files to draw edges between modules
  • Dark mode — toggle with one click
  • Headless mode — render a static SVG from the command line (requires Graphviz)
  • Folder or zip upload — drag-and-drop a .zip or browse for a local folder

Installation

pip install vizzpy

Headless SVG rendering additionally requires the Graphviz system package:

# macOS
brew install graphviz

# Debian/Ubuntu
apt install graphviz

Usage

Web UI (recommended)

vizzpy --serve
# open http://127.0.0.1:8000

Upload a .zip of your Python project or select a local folder, then click Analyze.

  • Scroll / pinch to zoom
  • Drag background to pan
  • Drag nodes to rearrange
  • Double-click a node to collapse/expand its call subtree
  • Hover a node to see its docstring

Headless SVG

vizzpy --headless ./myproject --output call_tree.svg

Options

vizzpy --serve   [--host HOST] [--port PORT]
vizzpy --headless PROJECT_PATH [--output OUTPUT.svg]

How it works

VizPy uses Python's ast module to do a two-pass analysis of your source files:

  1. Scope pass — collects every top-level function and class method with its qualified name (module.ClassName.method)
  2. Edge pass — walks each file again, resolves self.method(), cls.method(), imported names, and direct calls to project-internal functions

Results are rendered in the browser with dagre-d3 (vendored, works offline). Calls to stdlib or third-party libraries are silently excluded.

Development

git clone https://github.com/atulsaurav/vizzpy
cd vizzpy
pip install -e ".[dev]"

# run tests
pytest

# run with coverage
pytest --cov=vizzpy --cov-report=term-missing

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vizzpy-0.1.0.tar.gz (287.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vizzpy-0.1.0-py3-none-any.whl (286.3 kB view details)

Uploaded Python 3

File details

Details for the file vizzpy-0.1.0.tar.gz.

File metadata

  • Download URL: vizzpy-0.1.0.tar.gz
  • Upload date:
  • Size: 287.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for vizzpy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dbdd02522f6a10a5eb3caa1d3aff9d354bc9059a775c59bf1ff330f7eb97fe9d
MD5 e0cbf88665b0f627203a60e4c0dd7325
BLAKE2b-256 23e53f02403c3ef0034cb70f6af2dcce9d2fbd84cd6b243bb0e94ebd4befd87f

See more details on using hashes here.

File details

Details for the file vizzpy-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: vizzpy-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 286.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for vizzpy-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71860034f753d700ad8900297272919af978afc3b8b84dfafd573a9ee1c104b1
MD5 255435c48e655a38ef4a6bb654aae75f
BLAKE2b-256 7c072c31cc18b1f77ea89e0c15dfcc2c56caf5622f02fa4faf8755183d6f021d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page