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/adapters/functualize-flow-viz/tests/ -v

Release files for functualize-flow-viz 0.4.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 functualize-flow-viz 0.4.0
File Size Uploaded
functualize_flow_viz-0.4.0.tar.gz 16.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for functualize-flow-viz 0.4.0
File Interpreter ABI Platform
functualize_flow_viz-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.2 kB

Release files / functualize_flow_viz-0.4.0.tar.gz

Download URL functualize_flow_viz-0.4.0.tar.gz
Size 16.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2be823ce003ad041cd3b4dc23683684d01328cd6790f0f5a816216808549c578
BLAKE2b-256 checksum
How to use checksums
b876db14496ff5f4e3969720332146a2706a82eed10b94bbddd5d64801f4ac8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / functualize_flow_viz-0.4.0-py3-none-any.whl

Download URL functualize_flow_viz-0.4.0-py3-none-any.whl
Size 13.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7ee72ad04e81abd2394d40d5eeee570dca4e1d49d7a2753599d763d6e9785ae3
BLAKE2b-256 checksum
How to use checksums
53d910cbefcf685cf14b9dec5d902987e1b14b913c0746bb852635c7c56075be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.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