Skip to content

please do reactive python binding via anywidget #129

Description

@joelb123

icn3d has a lot of state, but icn3dpy is a simple non-reactive one-way passthru code. There are a lot of applications (e.g. menu buttons) for which passing state and allowing callbacks to python notebooks would be highly useful, as shown on NCBI's own icn3d page.

In addition, many of the well-known problems with Jupyter notebooks (e.g., issues with state in notebook repositories) are solved by marimo notebooks, which icn3dpy does not support. marimo also enables some nice capabilities such as compiling notebooks via WASM to HTML web pages that require no python backend.

The recommended mechanism for creating Jupyter widgets is anywidget. Reactive widgets developed with anywidget are supported by both jupyterlab and marimo notebooks. Javascript and python variables can be synced to each other via a simple call to traitlets. The only requirement put on icn3d is that it exports initialize or render widget lifecycle hooks. It's also straightforward to create custom consoles using anywidget #that allow passing of commands to JS after initialization.

Please add a reactive anywidget binding to icn3dpy.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions