yw-jupyter
yw-jupyter is a JupyterLab extension that visualizes notebook code cell execution states and relationships as an
interactive dependency graph.
- The graph reflects the current Python execution state, including both executed cells and those that have not yet been run.
- A node represents a unit of code that is either executed or not yet executed (idle). Since Jupyter runs the code cell by cell, a node typically corresponds to a notebook cell. (See the warning below for explanations.)
- A directed edge represents a dependency between nodes, showing the relationship between different units of code.
Static analysis via yw-core predicts data flow between cells from source code alone, letting users understand notebook structure before execution.
Dynamic analysis via ipyflow tracks actual runtime cell dependencies as they execute, producing precise dependency edges.
Features
Graph Visualization for Notebook Cells and Execution States
- Open the extension through sidebar or cell toolbar.
- Side-by-side view of notebook cells and graph, and cells and graph nodes are in sync:
- Editing cells updates the contents in the node and vice versa.
- The colored sidebar of the node indicates the status of the cell.
- The graph shows notebook cells as nodes and data flow between them as edges:
- Dashed edges show predicted dependencies from static analysis.
- Solid edges show definite dependencies from dynamic dataflow tracking.
- Selecting a node highlights its full upstream dependencies.
- Reproducing a leaf node's output by exporting the code of its upstream dependencies.
Untangling the Output Results
- Showing the upstream dependencies that contribute to a node's output.
Install
PyPI
pip install yw-jupyter
Install from source
- Requirements:
JupyterLab>= 4.0.0yw-core>= 0.1.0, < 1.0.0ipyflow
git clone https://github.com/CIRSS/yw-jupyter.git yw-jupyter
cd yw-jupyter
jlpm install
jlpm build:lib
jlpm build:prod
jupyter labextension develop . --overwrite
Troubleshooting
Make sure we see yw-jupyter is enabled in JupyterLab extensions list:
>>> jupyter labextension list
JupyterLab v4.5.3
~/Documents/GitHub/yw-jupyter/.venv/share/jupyter/labextensions
jupyterlab_pygments v0.3.0 enabled OK (python, jupyterlab_pygments)
yw-jupyter v1.0.0 enabled OK
Known Issues and Future Work
- Code block's cursor in graph node not matching the actual cursor position.
- Bugs when multiple notebooks and yw-jupyter extensions are open in JupyterLab simultaneously.
- Supporting more general kernels.
Metadata
Release files for yw-jupyter 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| yw_jupyter-1.0.0.tar.gz | 10.9 MB | Without provenance | Details for yw_jupyter-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| yw_jupyter-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for yw_jupyter-1.0.0-py3-none-any.whl |
Total release size: 11.9 MB
Release files / yw_jupyter-1.0.0.tar.gz
| Download URL | yw_jupyter-1.0.0.tar.gz |
|---|---|
| Size | 10.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a4e7e4843c88480281c8bb354d13bf51a110f0431fb4288e5a62a6151f97c0b4
|
|
BLAKE2b-256 checksum How to use checksums |
3da6663cc651edf2d69039a3be81279973cac016c4f34299854a3c9a7338b3ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / yw_jupyter-1.0.0-py3-none-any.whl
| Download URL | yw_jupyter-1.0.0-py3-none-any.whl |
|---|---|
| Size | 1.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e8c2c7f57556e8f1a41b1bf9a1d373cb3675976a9ef92ef59d4f686b8c3c2370
|
|
BLAKE2b-256 checksum How to use checksums |
cb143582c76e39f90d8f5cdfad44373006c51338ef1f4a36f4496ff663e5e772
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Security for yw-jupyter 1.0.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.