Skip to main content

No project description provided

Project description

jupyter_anywidget_graphviz

Jupyter anywidget for rendering diagrams from .dot language to SVG using Graphviz Wasm (hpcc-systems/hpcc-js-wasm).

Install as:

pip install jupyter_anywidget_graphviz

Example of graphviz anywidget

Usage

This runs in a browser based Jupyter environment and uses the browser machinery to run the wasm application.

# Import package
from jupyter_anywidget_graphviz import graphviz_headless, graphviz_panel, graphviz_inline

# Create a headless widget
# - works in: Jupyter Lab, Jupyter Notebook, VS Code
g = graphviz_headless()

# Inline mode
# Preview output as cell output from initialising cell
# - works in: Jupyter Lab, Jupyter Notebook, VS Code
# g = graphviz_inline()

# Create a widget panel with a handle
# - uses jupyter sidecar (Jupyter Lab only)
#g = graphviz_panel()

# Load magic
%load_ext jupyter_anywidget_graphviz

We can now write dot code in a magicked code cell (%%graphviz_magic WIDGET_HANDLE):

%%graphviz_magic -w g
  strict graph {
    a -- b
    a -- b
    b -- a [color=blue]
  }

The -w / --widget-name setting can be used to set the widget within the magic and it does not need to be passed again.

The widget can also be set via line magic: %setwidget g

The output is previewed in the UI panel, if rendered.

Retrieve the SVG diagram as WIDGET_HANDLE.svg.

We can display the diagram in the notebook e.g. as:

from IPython.display import SVG

SVG(g.svg)

In its base form, the way the Jupyter event loop runs means we canlt directly generate an output from the magic cell. However, setting the -e/--embed flag, or setting a timeout -t/--timeout SECONDS (default 5s), we can force a blocking action on the cell that waits for the asynchronous graphviz object to return the gernerated SVG, and then render it.

The .blocking_reply() method on the object will also block until the response status is set to completed.

Alternative solutions

viz.js [repo] also seems to offer in browser graphviz rendering. KrunkZhou/jupyterlab-viz-krunk is a JupyterLab extension (untested) that seems to support backticked ```graphviz blocks in markdown cells.

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

jupyter_anywidget_graphviz-0.1.2.tar.gz (531.6 kB view details)

Uploaded Source

Built Distribution

jupyter_anywidget_graphviz-0.1.2-py2.py3-none-any.whl (533.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file jupyter_anywidget_graphviz-0.1.2.tar.gz.

File metadata

File hashes

Hashes for jupyter_anywidget_graphviz-0.1.2.tar.gz
Algorithm Hash digest
SHA256 991f5a2095fa5bcf80bd19f154250e7b3e66bea8aeb39471e65323774db9ffb8
MD5 cc9b00bf3e76ee4e7f5d969909ad0167
BLAKE2b-256 f2370eac26b294ff81f2dcbc06f04f88d0a25f8744e56388f9fa28fad37d5754

See more details on using hashes here.

File details

Details for the file jupyter_anywidget_graphviz-0.1.2-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for jupyter_anywidget_graphviz-0.1.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a0ddd480cc6295eb6994754f13e457b4280f173dbb0106f5ac3dc04179756f93
MD5 d3b29ea441ea5d31f4b289342a8bcdd7
BLAKE2b-256 e8f7f6ef6d86f8787a44dde480d11a4f7447425a5fc9193484420e7f4c56a88d

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