Skip to main content

ImJoy Jupyter Extension

Try the demo here: Binder

Using ImJoy with Jupyter notebooks

The imjoy-rpc library enables bidirectional RPC calls between the ImJoy core and your python plugin.

The library has an abstract transport interface that can support different types of transport. For now, we support Jupyter comms message which is a custom message protocol used in Jupyter notebooks (for example powers jupyter widgets).

To use it, you need to install the imjoy-rpc library in Python and the notebook extension in javascript.

Install ImJoy RPC and Jupyter notebook extension

pip install -U imjoy-rpc imjoy-jupyter-extension

Use ImJoy plugins inside Jupyter notebooks

Now you can start a jupyter notebook via for example jupyter notebook command, you should be able to see an ImJoy icon in the toolbar if everything goes well.

imjoy in the notebook toolbar

Now run ImJoy plugins in a cell, see an example that uses itk-vtk-viewer to visualize images:

import imageio
import numpy as np
from imjoy_rpc import api

class ImJoyPlugin():
    def setup(self):
        api.log('plugin initialized')

    async def run(self, ctx):
        viewer = await api.showDialog(type="itk-vtk-viewer",
                                      src="https://oeway.github.io/itk-vtk-viewer/")
        # show a 3D volume
        image_array = np.random.randint(0, 255, [10,10,10], dtype='uint8')

        # show a 2D image
        # image_array = imageio.imread('imageio:chelsea.png')

        await viewer.imshow(image_array)

api.export(ImJoyPlugin())

With the above code, you created an ImJoy plugin. To run it, click the Run button with the ImJoy icon. It will then call the run function of your plugin.

Run Jupyter notebook inside ImJoy

You can also do the reverse by running a notebook inside ImJoy, to do that, please first create an empty jupyter notebook. Then copy and paste the url into the "+ PLUGINS" dialog, press enter and install the plugin. Click the newly installed plugin and you will get a notebook page open in ImJoy.

Try to copy and paste the itk-vtk-viewer example to a cell and execute it. Similarily, if you now click the run ImJoy button in the toolbar, you will get the viewer open insided ImJoy.

Metadata

Release files for imjoy-jupyter-extension 0.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for imjoy-jupyter-extension 0.2.5
File Size Uploaded
imjoy-jupyter-extension-0.2.5.tar.gz 21.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for imjoy-jupyter-extension 0.2.5
File Interpreter ABI Platform
imjoy_jupyter_extension-0.2.5-py3-none-any.whl Python 3 none any Details

Total release size: 57.9 kB

Release files / imjoy-jupyter-extension-0.2.5.tar.gz

Download URL imjoy-jupyter-extension-0.2.5.tar.gz
Size 21.3 kB
Tags Source
SHA-256 checksum
How to use checksums
18c3dddb9310cf085c6d329dde2803f07c58d9f5afc22b50a8c828327a8b3768
BLAKE2b-256 checksum
How to use checksums
11e11e38b1c1a101ebfcec73e92ed43abc0eb0cfb6dc314eb9077d70a167f4cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.1

Release files / imjoy_jupyter_extension-0.2.5-py3-none-any.whl

Download URL imjoy_jupyter_extension-0.2.5-py3-none-any.whl
Size 36.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
62ae95e479a3f9e557292a479e610b5a1065ab061b18389d72852bba49c3e2b8
BLAKE2b-256 checksum
How to use checksums
03879e60cd6018a48f7d95ad0d489c20aacef1a8b9d98b18c7472d3adb69e375
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.1

Release history Release notifications | RSS feed

0.3.0

2 release files

0.2.17

2 release files

0.2.16

2 release files

0.2.15

2 release files

0.2.12

2 release files

0.2.10

2 release files

0.2.9

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

This release

0.2.5 This release

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page