Skip to main content

functualize-flow-viz

Status: Published — Independently installable from PyPI.

Inline execution tree visualization plugin for functualize. Renders a live job execution tree in the terminal showing step status, durations, and nested invocations updating in real time. Automatically detects TTY capabilities and falls back to structured plain-text output for non-interactive terminals.

Installation

pip install functualize-flow-viz

Quick Start

from functualize_flow_viz import FlowVizPlugin

# Register the plugin with your functualize app
plugin = FlowVizPlugin()
plugin.on_job_start("deploy", {"env": "production"})
plugin.on_log("info", "Starting deployment...")
plugin.on_invoke_start("migrate", {"target": "latest"})
plugin.on_invoke_end("migrate", None)
plugin.on_job_end("deploy", None)

Features

  • Live execution tree — Renders a real-time tree of job execution with status icons (⏳ running, ✓ success, ✗ failure, ○ pending, ⊘ timeout)
  • Nested invocation tracking — Shows rc.invoke() calls as indented children in the tree, preserving parent-child relationships
  • Real-time duration refresh — Background thread updates elapsed durations at ≤1s intervals for running nodes
  • TTY auto-detection — Uses ANSI inline rendering on interactive terminals; falls back to plain-text output for piped/CI environments
  • Custom event handling — Renders domain-specific visualizations including progress bars for events with progress payloads
  • Log streaming — Buffers log messages and prints them above the inline tree widget to avoid visual corruption

API Reference

Public classes and functions exported by this plugin:

  • FlowVizPlugin — Main plugin class implementing the OutputRenderer protocol. Auto-selects between TTY and plain-text rendering. Methods:
    • on_job_start(job_name, metadata) — Initialize the execution tree for a job
    • on_log(level, message) — Render a log message
    • on_status_change(old_status, new_status, message) — Handle status transitions
    • on_phase_change(step, action) — Add or update a job phase node
    • on_invoke_start(child_job_name, kwargs) — Begin tracking a nested invocation
    • on_invoke_end(child_job_name, result) — Complete a nested invocation
    • on_job_end(job_name, result) — Finalize the tree and render final state
    • on_event(event) — Handle custom structured events
    • render_log(message, level) — OutputRenderer protocol: render log
    • render_phase(phase, status) — OutputRenderer protocol: render phase update
    • render_progress(current, total, label) — OutputRenderer protocol: render progress

Internal (non-public) classes used by FlowVizPlugin:

  • TreeNode — Dataclass representing a node in the execution tree with label, status, timing, and children
  • InlineTTYRenderer — ANSI-based renderer for interactive terminals with background refresh
  • PlainTextRenderer — Fallback renderer producing structured plain-text without escape sequences

Development

Run plugin tests:

uv run pytest plugins/functualize-flow-viz/tests/ -v

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

functualize_flow_viz-0.1.0.tar.gz (10.7 kB view details)

Uploaded Source

Built Distribution

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

functualize_flow_viz-0.1.0-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: functualize_flow_viz-0.1.0.tar.gz
  • Upload date:
  • Size: 10.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for functualize_flow_viz-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d7d3ce818cbe223d3d8543aec56d8d2f3c01c42a35d4dc38910230f278ac7cc7
MD5 f181ae13c6c387a6af4914320276bd9b
BLAKE2b-256 e21f274f612c3f647753700385ac6b2c04e2dac85ce75f1ad15d1be683eb9185

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for functualize_flow_viz-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 017b32aa58267c538cadac8f0006467fdfea55fd269fb99615003a07204dcb0b
MD5 0483bdae436c8f278d35c4d3d4fbff10
BLAKE2b-256 64fd591ec3977c2b01d70232c78afd47f4e7a56de885809e420f19d76691cc96

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