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
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
Built Distribution
File details
Details for the file jupyter_anywidget_graphviz-0.1.2.tar.gz
.
File metadata
- Download URL: jupyter_anywidget_graphviz-0.1.2.tar.gz
- Upload date:
- Size: 531.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 991f5a2095fa5bcf80bd19f154250e7b3e66bea8aeb39471e65323774db9ffb8 |
|
MD5 | cc9b00bf3e76ee4e7f5d969909ad0167 |
|
BLAKE2b-256 | f2370eac26b294ff81f2dcbc06f04f88d0a25f8744e56388f9fa28fad37d5754 |
File details
Details for the file jupyter_anywidget_graphviz-0.1.2-py2.py3-none-any.whl
.
File metadata
- Download URL: jupyter_anywidget_graphviz-0.1.2-py2.py3-none-any.whl
- Upload date:
- Size: 533.6 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0ddd480cc6295eb6994754f13e457b4280f173dbb0106f5ac3dc04179756f93 |
|
MD5 | d3b29ea441ea5d31f4b289342a8bcdd7 |
|
BLAKE2b-256 | e8f7f6ef6d86f8787a44dde480d11a4f7447425a5fc9193484420e7f4c56a88d |