Skip to main content

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

Project description

VizzPy

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 or Mermaid flowchart from the command line (SVG 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

Mermaid output has no extra dependencies.

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 rendering

# SVG (default) — requires Graphviz
vizzpy --headless ./myproject
vizzpy --headless ./myproject --output call_tree.svg

# Mermaid markdown — no extra dependencies
vizzpy --headless ./myproject --format mermaid
vizzpy --headless ./myproject --format mermaid --output call_tree.md

Options

vizzpy --serve   [--host HOST] [--port PORT]
vizzpy --headless PROJECT_PATH [--format svg|mermaid] [--output OUTPUT]

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.2.0.tar.gz (289.3 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.2.0-py3-none-any.whl (286.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for vizzpy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 07d6486ce2b8ea8ecc4096faf1b817cc709510170ad43a85cea26d966e67661e
MD5 c9ff58556c0f01779e0fc3bcc427b5e8
BLAKE2b-256 8ce24e511a7a40371c342a3f6cee5830f377893a7b1d51ce4ff27fc2bd570d31

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vizzpy-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 286.9 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7587e71785f4c4e6e9148863f6758e5c718e4ce188d6d1740c2153b32135440c
MD5 2d426ce7c999cd2578eaf59dc800668d
BLAKE2b-256 98ac9519e598dba1ba2b2c07978917291a4f05d83148989825952a45760ae49b

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