visgl / deck.gl

WebGL2 powered visualization framework
https://deck.gl
MIT License
12.26k stars 2.08k forks source link

[Bug] Two-way Jupyter binding support (i.e., ipywidgets) #9064

Open cpsievert opened 3 months ago

cpsievert commented 3 months ago

Description

I was surprised to find that v0.9 dropped support for two-way Jupyter bindings (i.e., ipywidgets) entirely (see https://github.com/visgl/deck.gl/pull/8854). There was also no mention of this at all in the release notes.

Flavors

Expected Behavior

No response

Steps to Reproduce

N/A

Environment

N/A

Logs

No response

felixpalmer commented 3 months ago

Due to a change in Jupyter we had to remove the binding support (CHANGELOG entry). We are currently low on resource with the Python bindings, would you be able to contribute here?

donmccurdy commented 3 months ago

It is a good point that our changelog wording, "Jupyter-specific features not currently supported", may not be meaningful to Jupyter users, who might not know which features were never available in other environments. We could include a bit more detail and link to an issue perhaps.

More information about the blocking issues:

I think we're flexible on what the solution could look like (could be a major upgrade to the newer JupyterLab architecture, or a smaller focused fix). But as @felixpalmer mentions, additional support in that area may be needed.

prusswan commented 1 month ago

Ran into this and switched over to lonboard for the time being to work on custom widgets (that possibly could be reused for pydeck if this issue gets fixed)

Regarding https://gist.github.com/donmccurdy/4cb069e73cbb82b6e5f75a0b3a6bb74f, do we know what are the packages that were changed since pydeck 0.8, leading to the breakage? I'm able to use lonboard with notebook=6.4.13, so this is a pretty old setup I can use to compare with pydeck.

prusswan commented 3 weeks ago

Based on info from #8577, I managed to track down the last version of pydeck and matching environment that could run the event handlers example. Below is what worked for me on Windows:

conda create -n py39 python=3.9 ipywidgets=7 notebook=6.4 pydeck=0.8.0
pip install notebook==6.4.13 # conda only has 6.4.12 which does not work with traitlets>5.9.0