Skip to main content

Visualize the dependency graph of any Python project — internal imports, cloud SDKs and HTTP calls.

Project description

synaptic demo

synaptic

Visualize the dependency graph of any Python project.
Internal imports · Cloud SDKs · HTTP clients · Circular deps — all in one command.

Python License Built with Typer Powered by Rich


Features

  • Static AST analysis — no runtime execution needed
  • Internal imports — maps every import and from X import Y across your codebase
  • Cloud SDK detection — identifies AWS (boto3), GCP (google.cloud, firebase_admin) and Azure (azure.*) usage
  • HTTP client detection — flags modules using requests, httpx, aiohttp, urllib3 and more
  • Circular dependency highlighting — broken cycles rendered in red
  • Two output formats — interactive HTML (pyvis) or static SVG/PNG (graphviz)
  • Rich terminal output — live progress, color-coded summary

Installation

pip install synaptic

Or from source:

git clone https://github.com/your-username/synaptic
cd synaptic
pip install -e .

Requirements: Python 3.10+, graphviz binary installed on your system (apt install graphviz / brew install graphviz).


Quick start

# Interactive HTML graph (default)
synaptic scan ./my-project

# Custom output path
synaptic scan ./my-project --output architecture.html

# SVG with circular dependency highlighting
synaptic scan ./my-project --output graph.svg --circular

# Skip cloud and HTTP detection, filter stdlib
synaptic scan ./my-project --no-cloud --no-http --filter-stdlib

# Include test files in the scan
synaptic scan ./my-project --tests

Options

Flag Default Description
--output, -o synaptic_graph.html Output file (.html or .svg)
--cloud / --no-cloud on Detect AWS / GCP / Azure SDKs
--http / --no-http on Detect HTTP client libraries
--tests / --no-tests off Include test files
--filter-stdlib / --no-filter-stdlib on Exclude Python stdlib from graph
--filter-external / --no-filter-external off Exclude third-party packages
--circular, -c off Highlight circular dependencies in red
--version, -v Show version and exit

Architecture

synaptic/
├── cli.py             # Typer CLI + Rich output
├── scanner.py         # Recursive .py file discovery
├── parser.py          # AST-based import analysis
├── cloud_detector.py  # AWS / GCP / Azure SDK detection
├── http_detector.py   # HTTP client library detection
├── graph.py           # networkx graph + graphviz / pyvis rendering
└── utils.py           # Shared helpers

Node types

Color Meaning
🔵 Blue Internal project module
🟠 Orange AWS / GCP / Azure SDK
🩷 Pink HTTP client (requests, httpx…)
⚫ Grey Stdlib / external package
🔴 Red edge Circular dependency

License

MIT © 2024

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

synaptic_graph-0.1.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

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

synaptic_graph-0.1.0-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: synaptic_graph-0.1.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for synaptic_graph-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3f52d067626db381129d6e6dad2b8c1f5585b115202274be1f525c210027227d
MD5 e18be7d8f12d74506972437d308e3bff
BLAKE2b-256 5924c31d610fb0899d0d317e53baa55de8fcd544e730a170204990907c08b765

See more details on using hashes here.

Provenance

The following attestation bundles were made for synaptic_graph-0.1.0.tar.gz:

Publisher: publish.yml on Darkvus/synaptic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: synaptic_graph-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for synaptic_graph-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ebca1cef563e7a29c5c03e00784305df35ff8f317ec6c406052cae91fca157a5
MD5 693e65c8eb2f1d3e70c80338d312eb48
BLAKE2b-256 7ca7949a67a3fb33a8d1c60d5d13fdfcb693c7067bf0da90f3539da31a2e3b50

See more details on using hashes here.

Provenance

The following attestation bundles were made for synaptic_graph-0.1.0-py3-none-any.whl:

Publisher: publish.yml on Darkvus/synaptic

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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