Skip to main content

A client for IDOM implemented using Jupyter widgets

Project description

idom-jupyter

A client for IDOM implemented using Jupyter widgets

Try It Now!

Check out some live examples by clicking the badge below:

Binder

Getting Started

To install use pip:

pip install idom_jupyter

Then, before anything else, do one of the following:

  1. At the top of your notebook run

    import idom_jupyter
    
  2. Register idom_jupyter as a permanant IPython extension in your config file:

    c.InteractiveShellApp.extensions = [
        'idom_jupyter'
    ]
    

Usage

Once you're done getting started, you can author and display IDOM layouts natively in your Jupyter Notebook:

import idom

@idom.component
def ClickCount():
    count, set_count = idom.hooks.use_state(0)
    return idom.html.button(
        {"onClick": lambda event: set_count(count + 1)},
        [f"Click count: {count}"],
    )

ClickCount()

You can also turn an idom element constructor into one that returns an ipywidget with the idom_juptyer.widgetize function. This is useful if you wish to use IDOM in combination with other Jupyter Widgets as in the following example:

ClickCountWidget = idom_jupyter.widgetize(ClickCount)
ipywidgets.Box(
    [
        ClickCountWidget(),
        ClickCountWidget(),
    ]
)

Alternatively just wrap an idom element instance in an idom_jupyter.LayoutWidget:

ipywidgets.Box(
    [
        idom_jupyter.LayoutWidget(ClickCount()),
        idom_jupyter.LayoutWidget(ClickCount()),
    ]
)

For a more detailed introduction check out this live demo here:

Binder

Development Installation

For a development installation (requires Node.js and Yarn version 1),

$ git clone https://github.com/idom-team/idom-jupyter.git
$ cd idom-jupyter
$ pip install -e .
$ jupyter nbextension install --py --symlink --overwrite --sys-prefix idom_jupyter
$ jupyter nbextension enable --py --sys-prefix idom_jupyter

When actively developing your extension for JupyterLab, run the command:

$ jupyter labextension develop --overwrite idom_jupyter

Then you need to rebuild the JS when you make a code change:

$ cd js
$ yarn run build

You then need to refresh the JupyterLab page when your javascript changes.

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

idom_jupyter-0.7.7.tar.gz (210.4 kB view hashes)

Uploaded Source

Built Distribution

idom_jupyter-0.7.7-py3-none-any.whl (155.9 kB view hashes)

Uploaded Python 3

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