Python project analyzer and visualization tool
Project description
PyFlowMapper
PyFlowMapper is a lightweight Python static-analysis tool that helps you understand how functions connect and how data flows across your codebase — without running your code.
It is designed for developers who want fast architectural insight into new or existing Python projects.
What It Does
- Reads Python source files using AST (no execution)
- Detects which functions call which others
- Tracks return-value–based data flow between functions
- Generates clear Mermaid diagrams
- Works with Python 3.12+
- Automatically ignores virtual environments
Quick Install
# Clone and install
git clone https://github.com/ArunKoundinya/py-flow-mapper.git
cd py-flow-mapper
pip install -e .
# Or install directly
pip install py-flow-mapper
How to Use
Analyze Your Project
pyflow analyze /path/to/your/project
This creates a project_meta.json file with all the analysis results.
Create Diagrams
pyflow diagram /path/to/your/project/project_meta.json
See Project Structure
pyflow structure /path/to/your/project
Shows a clean tree view of your project folders and files.
What You Get
Metadata File — project_meta.json
Contains:
- List of all functions and where they are
- Which functions call which others
- How data moves between functions
- All imports and dependencies
One Types of Diagram
- Detailed Flow Graph - Shows modules and data flow
Requirements
- Python 3.12 or higher
Common Commands
| Command | What it does |
|---|---|
pyflow analyze /path/to/project |
Analyze a project |
pyflow diagram /path/to/project/project_meta.json |
Make diagrams |
pyflow structure /path/to/project |
Show folder structure |
pyflow --help |
Get help |
pyflow version |
Check version |
Features
✅ Works with any Python 3.12+ project
✅ No need to run your code
✅ Creates visual diagrams
✅ Shows data flow between functions
✅ Handles imports correctly
✅ Excludes virtual environments automatically
Tips
- Start with a small project to see how it works
- Use
--entry-pointif your main file isn'tmain.py - View diagrams in VS Code or GitHub for best results
- The tool ignores
venv/,.venv/, and other common exclude folders
Full Documentation
Full documentation (including examples and architecture diagrams) is available in the docs/ folder and built using Quarto.
⚠ Limitations
PyFlowMapper uses static analysis. It may not fully resolve:
- Runtime imports
- Heavy metaprogramming
- Highly dynamic call patterns
Despite this, it provides a strong and reliable architectural baseline for most Python projects.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file py_flow_mapper-0.1.0b3.dev0.tar.gz.
File metadata
- Download URL: py_flow_mapper-0.1.0b3.dev0.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb1aa9ccf9ae42b148a6120a790984f6f7d2f05095ecd331012e4d818e89448a
|
|
| MD5 |
d47800e4148a8ab67ef1027ab67cfbf2
|
|
| BLAKE2b-256 |
6eba9ae7956c98370dfaaad337253ac9562db24666cfc88e4272222d70df86f9
|
File details
Details for the file py_flow_mapper-0.1.0b3.dev0-py3-none-any.whl.
File metadata
- Download URL: py_flow_mapper-0.1.0b3.dev0-py3-none-any.whl
- Upload date:
- Size: 17.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89bb4034f324d40853a49fa5bf2e542800af1b19bf76ffbe6f57d2dea5a93788
|
|
| MD5 |
d6b4bdd4af663df80de566b299e244b2
|
|
| BLAKE2b-256 |
9182d728b051856f396e51d4b76d4429bbaf4c3202cd8c51a63fce1e09574970
|