Skip to main content

Structured Concurrency visualizer for trio

Project description

trio-vis

trio-vis is a plugin for visualizing the scope history of your Trio project.

showcase

How to use

  1. Install trio-vis via pip install trio-vis (trio-vis-pip)

  2. In your source code, register SC_Monitor() as an Instrument while running trio

    from trio_vis import SC_Monitor
    trio.run(my_main_funciton, instruments=[SC_Monitor()])
    
  3. After your program finished(or exited), the scope history would be stored in ./sc-logs.json

  4. Upload your log file to sc-visualizer, this is a twin project which focuses on visualization work.

  5. See your visualization result and help us improve.

Configuration

Import VisConfig from trio_vis, and provide it as an argument while making your SC_Monitor object.

from trio_vis import SC_Monitor, VisConfig
cfg = VisConfig(print_task_tree=True)
trio.run(my_main_funciton, instruments=[SC_Monitor(config=cfg)])

What does it do

trio-vis utilize the Instrument API to monitor the lifetime of scopes (Task,Nursery). Since the Instrument API doesn't provide callbacks for Nursery, we make inferences on our own.

Why visualize

Derived from curio, trio combines the idea of Structured Concurrency with existing single-threaded event-driven architecture. Which does make concurrent programs more manageable.

To make trio comparable with curio, contributors of trio also want to mimic the feature of curio-monitor to monitor the current system running state. This idea could be traced back to trio-issue-413.

Since then, projects have been developed (shown below).

However, trio is not curio, at least lifetimes of scopes are structured by nature. I argue that by utilizing the feature of Structured Concurrency, we could visualize programs better. Developers could easily conceptualize their program, and bring their developing experience to the next level.

Previous work

Future plan

This project is in an early developing stage. Stay tuned for future update.

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

trio-vis-0.1.0.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

trio_vis-0.1.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file trio-vis-0.1.0.tar.gz.

File metadata

  • Download URL: trio-vis-0.1.0.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.11 CPython/3.9.7 Darwin/21.1.0

File hashes

Hashes for trio-vis-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a582d1e30a2e8fc26c821020ca30042175af38068bb11fef22f9d2410552ee5e
MD5 f800715bfc06d4b72c6e823ce3fb28b3
BLAKE2b-256 62f56ef95a15bcf362e6cf7170724db9ce62a87e71c96f10196a59d57a69578c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: trio_vis-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.11 CPython/3.9.7 Darwin/21.1.0

File hashes

Hashes for trio_vis-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a998feb589fb5ed07cbb06826f8952ffc8bbfd12174720277fa546a4dbca7b5d
MD5 b860ba1601345a2a317e40eb49d5dbb2
BLAKE2b-256 8c9068cc0e32ba96d3216edcbb3fdfa27ab51f587b22ee539fae9486af81543b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page