Skip to main content

Python OS 3.8, 3.9, 3.10 PyPI version GitHub release

pydebugviz

Visual Time-Travel Debugging for Python
Trace everything. Watch everything. Export everything.


Overview

pydebugviz captures your Python function’s execution step-by-step and lets you explore it in:

  • Jupyter
  • Terminal (CLI)
  • IDEs

Now in v1.0.1:

  • ✅ DebugSession interactive navigator
  • ✅ live_watch() for real-time variable display
  • ✅ show_summary() for CLI/Jupyter-friendly overview
  • ✅ export_html() for trace visualization
  • ✅ Validation tools, safe evaluation, and large var protection

Installation

pip install pydebugviz

Feature Matrix

Feature Jupyter CLI IDE
debug() ✅ ✅ ✅
DebugSession ✅ ✅ ✅
show_summary() ✅ ✅ ✅
export_html() ✅ ✅ ✅
live_watch() ✅ ✅ ✅
validate_trace() ✅ ✅ ✅

Quick Start

from pydebugviz import debug, show_summary

def test():
    x = 0
    for i in range(4):
        x += i
    return x

trace = debug(test, breakpoints=["x > 3"], max_steps=100)
show_summary(trace)

Example Output:

[pydebugviz] Trace Summary: 6 steps
 - step: 0 | event: call | function: test | line_no: 3
 - step: 1 | event: line | function: test | line_no: 4
 - step: 2 | event: line | function: test | line_no: 5
 - step: 3 | event: line | function: test | line_no: 4
 - step: 4 | event: line | function: test | line_no: 5
 - step: 5 | event: return | function: test | line_no: 6

Interactive DebugSession

from pydebugviz import DebugSession

session = DebugSession(trace)
session.jump_to(3)
print(session.current())
session.show_summary()

Example Output:

{'event': 'line', 'function': 'test', 'line_no': 4, 'locals': {'x': '3', 'i': '2'}, ...}
[pydebugviz] Trace Summary: 6 steps
 - step: 0 | event: call | function: test | line_no: 3
 - step: 1 | event: line | function: test | line_no: 4
 ...

Live Watch Mode

from pydebugviz import live_watch

def my_function():
    x = 1
    for i in range(3): x += i

live_watch(my_function, watch=["x", "i"], interval=0.1)

Example Output (CLI or Jupyter):*

[Step 1] my_function:3 | x=1, i=<not defined>
[Step 2] my_function:3 | x=1, i=0
[Step 3] my_function:3 | x=1, i=1
[Step 4] my_function:3 | x=2, i=2

Export HTML

from pydebugviz import export_html

export_html(trace, filepath="trace_output.html")

Creates:
A self-contained HTML file with a table of steps, functions, line numbers, and variables.
Just open trace_output.html in your browser.


Validation + Safe Eval

from pydebugviz import validate_expressions, safe_eval

print(validate_expressions(["x > 3", "bad =="]))   # syntax check
print(safe_eval("x > 5", {"x": 7}))                # safely evaluate

Example Output:

['bad ==']
True

Trace Schema Enforcement

from pydebugviz import normalize_trace, check_trace_schema

normalized = normalize_trace(trace)
issues = check_trace_schema(normalized)
print("Schema issues:", issues)

Example Output:

Schema issues: []

License

MIT License
(c) 2025 pydebugviz contributors

Release files for pydebugviz 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydebugviz 1.1.0
File Size Uploaded
pydebugviz-1.1.0.tar.gz 14.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pydebugviz 1.1.0
File Interpreter ABI Platform
pydebugviz-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.5 kB

Release files / pydebugviz-1.1.0.tar.gz

Download URL pydebugviz-1.1.0.tar.gz
Size 14.7 kB
Tags Source
SHA-256 checksum
How to use checksums
70f6d825c217d0650bf0009bf3a4d7bdbcaaa1c88214f86f92e9a9134063bceb
BLAKE2b-256 checksum
How to use checksums
76c3bd54d017aeec757a2f4b75d1d8e9894d9e29f3c0c63d85ba09ba722efa55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.22

Release files / pydebugviz-1.1.0-py3-none-any.whl

Download URL pydebugviz-1.1.0-py3-none-any.whl
Size 12.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d4862cbebd8f7a6b17c694119137832237807a9a727d897dcbc3846fb6d340bf
BLAKE2b-256 checksum
How to use checksums
8a37e2470c54d118b78959e7dc25a76b93c13408752a0abecce41c487123a1c4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.22

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page