Skip to main content

Visualizer components for the Sayou Data Platform

Project description

sayou-visualizer

PyPI version License

The Interactive Observability Engine for Sayou Fabric.

sayou-visualizer provides a transparent layer to monitor and visualize the execution flow of Sayou components. By attaching to any pipeline, it transforms invisible execution logs into intuitive, interactive HTML Knowledge Graphs.

It separates the logic of Observation (Tracer) from Presentation (Renderer), allowing you to debug complex pipelines and visualize data lineage without modifying your core logic.

💡 Core Philosophy

"Trace the Process, Render the Insight."

Observability should not be an afterthought. We decouple the responsibility into two roles:

  1. Tracer (Recorder): The "Camera". It silently observes events (on_start, on_finish) from the pipeline via the Callback system and builds an internal graph structure.

  2. Renderer (Painter): The "Canvas". It takes the recorded graph and generates human-readable artifacts (e.g., Interactive HTML, Static Images).

This separation enables a Non-intrusive Monitoring experience, where visualization is just a plug-and-play feature.

📦 Installation

pip install sayou-visualizer

⚡ Quick Start

The VisualizerPipeline acts as a facade, easily attaching to other pipelines to generate reports.

from sayou.connector.pipeline import ConnectorPipeline
from sayou.visualizer.pipeline import VisualizerPipeline

def main():
    connector = ConnectorPipeline()

    viz = VisualizerPipeline()
    viz.attach_to(connector)

    print("🚀 Running Pipeline...")
    iterator = connector.run("http://example.com")
    for packet in iterator:
        print(f"Processed: {packet.task.uri}")

    print("🎨 Generating Report...")
    viz.report("examples/pipeline_flow.html")

if __name__ == "__main__":
    main()

🔑 Key Concepts

Tracers

  • GraphTracer: Listens to pipeline events and constructs a NetworkX Directed Acyclic Graph (DAG) in real-time. It distinguishes between Components (Generator/Fetcher) and Data (Tasks).

Renderers

  • PyVisRenderer: Converts the internal graph into an interactive HTML file powered by Vis.js. Features physics-based layout and modern dark UI.
  • RichRenderer (Planned): Displays a tree-structure summary directly in the console using the Rich library.

🤝 Contributing

We welcome contributions for new Renderers (e.g., MatplotlibRenderer, StreamlitRenderer) or specialized Tracers for new components!

📜 License

Apache 2.0 License © 2025 Sayouzone

Project details


Download files

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

Source Distribution

sayou_visualizer-0.0.12.tar.gz (21.3 kB view details)

Uploaded Source

Built Distribution

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

sayou_visualizer-0.0.12-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

Details for the file sayou_visualizer-0.0.12.tar.gz.

File metadata

  • Download URL: sayou_visualizer-0.0.12.tar.gz
  • Upload date:
  • Size: 21.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sayou_visualizer-0.0.12.tar.gz
Algorithm Hash digest
SHA256 690d17e8afee604874d63913f93bb4c3338e7c7b988a688512ec5a6b3b502a4a
MD5 e397181a1cf59f7ff24d89b35471243f
BLAKE2b-256 9c6252d25c6344a3831ef5908659d0e5a9c1083358f677f5f2d98cd8df60e69a

See more details on using hashes here.

File details

Details for the file sayou_visualizer-0.0.12-py3-none-any.whl.

File metadata

File hashes

Hashes for sayou_visualizer-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 0485c7f584668a9c90751efb2d37cef279e8f2778aabbe9d1c3bbdc854b78d73
MD5 2843424ffb651d4fa2f382b4e851b4d7
BLAKE2b-256 532be9a54ce3191a487f18e6311ae19fd72cc2f721ff43ee4d98dbc2a1551f85

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