Metadata-Version: 2.4
Name: runmap
Version: 0.1.0
Summary: Python call tree profiler for the terminal
Project-URL: Homepage, https://github.com/nazarhktwitch/runmap
Project-URL: Repository, https://github.com/nazarhktwitch/runmap
Project-URL: Issues, https://github.com/nazarhktwitch/runmap/issues
Author: Nazar Burlai
License-Expression: MIT
License-File: LICENSE
Keywords: call-tree,cli,performance,profiler,tracing
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Debuggers
Classifier: Topic :: Software Development :: Testing
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: rich>=13.0
Provides-Extra: dev
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Description-Content-Type: text/markdown

# runmap

Visualize Python function call trees with timing in the terminal

Run any script through runmap and see a tree of every function call, how long
each took, and where the hot spots are

## Getting Started

```bash
pip install runmap
```

```bash
python -m runmap script.py
python -m runmap script.py --min-ms 5 --depth 3
python -m runmap script.py --out run.trace
python -m runmap diff before.trace after.trace
```

## Features

- Call tree view: shows the full function call hierarchy with per-node timing.
- Time bars: proportional block bars next to each node for quick visual scanning.
- Hot markers: flags functions whose self time exceeds 20% of total runtime.
- Depth and threshold filters: `--depth` and `--min-ms` trim noise from large trees.
- Trace files: `--out` saves a `.trace` JSON file for later comparison.
- Diff mode: `runmap diff A.trace B.trace` shows a delta table (faster/slower/new).
- Sampling mode: `--sample` uses signal-based 100 Hz sampling instead of `sys.settrace` (Unix only).

## Requirements

- Python 3.10+
- [rich](https://github.com/Textualize/rich) >= 13.0

## License

[MIT](LICENSE)
