Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bqplot widgets not triggering observe method when run in voici #121

Open
JuanCab opened this issue Jul 22, 2024 · 3 comments
Open

bqplot widgets not triggering observe method when run in voici #121

JuanCab opened this issue Jul 22, 2024 · 3 comments
Labels
bug Something isn't working

Comments

@JuanCab
Copy link

JuanCab commented Jul 22, 2024

Executive Summary

bqplot widgets when run in voici don't trigger observe when their attributes change so there can be no reaction by external functions to interactions with the bqplot widgets. This only appears to occur when run inside a Voici environment and the same code works properly in JupyterLab and Voila.

Description

I have an interactive plot (generated via bqplot) consisting of a Scatter object and a Line object where the idea is you can drag the points in the Scatter object and the Line object changes to continue connecting those points. The notebook with this plot runs flawlessly in Jupyter lab and voila. However, in voici, I can drag the points in the Scatter object, but the Line connecting the points does NOT update.

Update 7/25/2024: I have now also confirmed that a plot set up with bq.interacts.HandDraw have a similar problem, when hand drawing on the graph, the plot changes but no signal is sent via the observe function, so no other functions can react to the changes.

NOTE: Since this could be a bqplot issue, I have also filed an issue with bqplot, it is issue #1647 in their repo.

Reproduce

I have created a short notebook index.ipynb that illustrates the problem. Since the environment might be crucial, I created a repo containing the notebook as well as the environment.yml file necessary to test it both in voila and voici here.

Expected behavior

The expected behavior (seen in both Jupyter lab and Voila) is that dragging points on the Figure shown should result in not only the points moving, but also the line connecting the points getting updated. The line does NOT update when this same notebook is run in Voici. Again, this appears to be because bqplot widgets run inside of Voici do NOT trigger the observe method and thus can't call outside functions to respond.

Context

  • voila version: 0.5.7
  • Operating System and version: macOS 14.5
  • Browser and version: Safari 17.5 (but also verified to occur in Vivaldi 6.8.3381.48 which is based on Google Chrome)
Troubleshoot Output
$PATH:
	/Users/_username_/miniforge3/envs/test_bqplot_voici/bin
	/Users/_username_/miniforge3/condabin
	/Users/_username_/bin
	/usr/local/bin
	/opt/homebrew/bin
	/opt/homebrew/sbin
	/usr/local/bin
	/System/Cryptexes/App/usr/bin
	/usr/bin
	/bin
	/usr/sbin
	/sbin
	/Applications/GPAC.app/Contents/MacOS
	/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin
	/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin
	/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
	/opt/X11/bin
	/Library/Apple/usr/bin
	/Users/_username_/.cargo/bin
	/usr/local/sbin
	/Applications/iTerm.app/Contents/Resources/utilities
	/usr/X11R6/bin
	/Users/_username_/tools

sys.path:
/Users/username/miniforge3/envs/test_bqplot_voici/bin
/Users/username/miniforge3/envs/test_bqplot_voici/lib/python312.zip
/Users/username/miniforge3/envs/test_bqplot_voici/lib/python3.12
/Users/username/miniforge3/envs/test_bqplot_voici/lib/python3.12/lib-dynload
/Users/username/miniforge3/envs/test_bqplot_voici/lib/python3.12/site-packages

sys.executable:
/Users/username/miniforge3/envs/test_bqplot_voici/bin/python

sys.version:
3.12.4 | packaged by conda-forge | (main, Jun 17 2024, 10:13:44) [Clang 16.0.6 ]

platform.platform():
macOS-14.5-arm64-arm-64bit

which -a jupyter:
/Users/username/miniforge3/envs/test_bqplot_voici/bin/jupyter

pip list:
Package Version
------------------------- -------------------
anyio 4.4.0
appdirs 1.4.4
appnope 0.1.4
argon2-cffi 23.1.0
argon2-cffi-bindings 21.2.0
arrow 1.3.0
astropy 6.1.1
astropy-iers-data 0.2024.7.22.0.34.13
asttokens 2.4.1
async-lru 2.0.4
attrs 23.2.0
Babel 2.14.0
beautifulsoup4 4.12.3
bleach 6.1.0
bqplot 0.12.43
Brotli 1.1.0
cached-property 1.5.2
certifi 2024.7.4
cffi 1.16.0
charset-normalizer 3.3.2
click 8.1.7
cloudpickle 3.0.0
comm 0.2.2
contourpy 1.2.1
cycler 0.12.1
debugpy 1.8.2
decorator 5.1.1
defusedxml 0.7.1
doit 0.36.0
empack 4.0.0
entrypoints 0.4
exceptiongroup 1.2.2
executing 2.0.1
fastjsonschema 2.20.0
fonttools 4.53.1
fqdn 1.5.1
h11 0.14.0
h2 4.1.0
hpack 4.0.0
httpcore 1.0.5
httpx 0.27.0
hyperframe 6.0.1
idna 3.7
importlib_metadata 8.0.0
importlib_resources 6.4.0
ipydatawidgets 4.3.2
ipykernel 6.29.5
ipysheet 0.7.0
ipython 8.26.0
ipywidgets 8.1.3
isoduration 20.11.0
jedi 0.19.1
Jinja2 3.1.4
json5 0.9.25
jsonpointer 3.0.0
jsonschema 4.23.0
jsonschema-specifications 2023.12.1
jupyter 1.0.0
jupyter_client 8.6.2
jupyter-console 6.6.3
jupyter_core 5.7.2
jupyter-events 0.10.0
jupyter-lsp 2.2.5
jupyter_server 2.14.2
jupyter_server_terminals 0.5.3
jupyterlab 4.2.4
jupyterlab_pygments 0.3.0
jupyterlab_server 2.27.3
jupyterlab_widgets 3.0.11
jupyterlite-core 0.3.0
jupyterlite_xeus 0.1.9
kiwisolver 1.4.5
markdown-it-py 3.0.0
MarkupSafe 2.1.5
matplotlib 3.9.1
matplotlib-inline 0.1.7
mdurl 0.1.2
mistune 3.0.2
munkres 1.1.4
nbclient 0.10.0
nbconvert 7.16.4
nbformat 5.10.4
nest_asyncio 1.6.0
networkx 3.3
notebook 7.2.1
notebook_shim 0.2.4
numpy 2.0.0
overrides 7.7.0
packaging 24.1
pandas 2.2.2
pandocfilters 1.5.0
parso 0.8.4
pexpect 4.9.0
pickleshare 0.7.5
pillow 10.4.0
pip 24.0
pkgutil_resolve_name 1.3.10
platformdirs 4.2.2
prometheus_client 0.20.0
prompt_toolkit 3.0.47
pscript 0.7.7
psutil 6.0.0
ptyprocess 0.7.0
pure_eval 0.2.3
pycparser 2.22
pyerfa 2.0.1.4
Pygments 2.18.0
pyobjc-core 10.3.1
pyobjc-framework-Cocoa 10.3.1
pyparsing 3.1.2
PySocks 1.7.1
python-dateutil 2.9.0
python-json-logger 2.0.7
pythreejs 2.4.2
pytz 2024.1
PyYAML 6.0.1
pyzmq 26.0.3
qtconsole 5.5.2
QtPy 2.4.1
referencing 0.35.1
requests 2.32.3
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
rich 13.7.1
rpds-py 0.19.0
Send2Trash 1.8.3
setuptools 71.0.4
shellingham 1.5.4
six 1.16.0
sniffio 1.3.1
soupsieve 2.5
stack-data 0.6.2
terminado 0.18.1
tinycss2 1.3.0
tomli 2.0.1
tornado 6.4.1
traitlets 5.14.3
traittypes 0.2.1
typer 0.12.3
typer-slim 0.12.3
types-python-dateutil 2.9.0.20240316
typing_extensions 4.12.2
typing-utils 0.1.0
tzdata 2024.1
uri-template 1.3.0
urllib3 2.2.2
voici 0.6.1
voici-core 0.6.1
voila 0.5.7
wcwidth 0.2.13
webcolors 24.6.0
webencodings 0.5.1
websocket-client 1.8.0
websockets 12.0
wheel 0.43.0
widgetsnbextension 4.0.11
zipp 3.19.2
zstandard 0.23.0

conda list:
# packages in environment at /Users/username/miniforge3/envs/test_bqplot_voici:
#
# Name Version Build Channel
anyio 4.4.0 pyhd8ed1ab_0 conda-forge
appdirs 1.4.4 pyh9f0ad1d_0 conda-forge
appnope 0.1.4 pyhd8ed1ab_0 conda-forge
argon2-cffi 23.1.0 pyhd8ed1ab_0 conda-forge
argon2-cffi-bindings 21.2.0 py312h02f2b3b_4 conda-forge
arrow 1.3.0 pyhd8ed1ab_0 conda-forge
astropy 6.1.1 py312hbebd99a_0 conda-forge
astropy-iers-data 0.2024.7.22.0.34.13 pyhd8ed1ab_0 conda-forge
asttokens 2.4.1 pyhd8ed1ab_0 conda-forge
async-lru 2.0.4 pyhd8ed1ab_0 conda-forge
attrs 23.2.0 pyh71513ae_0 conda-forge
babel 2.14.0 pyhd8ed1ab_0 conda-forge
beautifulsoup4 4.12.3 pyha770c72_0 conda-forge
bleach 6.1.0 pyhd8ed1ab_0 conda-forge
bqplot 0.12.43 pyhd8ed1ab_0 conda-forge
brotli 1.1.0 hb547adb_1 conda-forge
brotli-bin 1.1.0 hb547adb_1 conda-forge
brotli-python 1.1.0 py312h9f69965_1 conda-forge
bzip2 1.0.8 h99b78c6_7 conda-forge
ca-certificates 2024.7.4 hf0a4a13_0 conda-forge
cached-property 1.5.2 hd8ed1ab_1 conda-forge
cached_property 1.5.2 pyha770c72_1 conda-forge
certifi 2024.7.4 pyhd8ed1ab_0 conda-forge
cffi 1.16.0 py312h8e38eb3_0 conda-forge
charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge
click 8.1.7 unix_pyh707e725_0 conda-forge
cloudpickle 3.0.0 pyhd8ed1ab_0 conda-forge
comm 0.2.2 pyhd8ed1ab_0 conda-forge
contourpy 1.2.1 py312h0fef576_0 conda-forge
cycler 0.12.1 pyhd8ed1ab_0 conda-forge
debugpy 1.8.2 py312h5c2e7bc_0 conda-forge
decorator 5.1.1 pyhd8ed1ab_0 conda-forge
defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
doit 0.36.0 pyhd8ed1ab_0 conda-forge
empack 4.0.0 pyhd8ed1ab_0 conda-forge
entrypoints 0.4 pyhd8ed1ab_0 conda-forge
exceptiongroup 1.2.2 pyhd8ed1ab_0 conda-forge
executing 2.0.1 pyhd8ed1ab_0 conda-forge
fonttools 4.53.1 py312h7e5086c_0 conda-forge
fqdn 1.5.1 pyhd8ed1ab_0 conda-forge
freetype 2.12.1 hadb7bae_2 conda-forge
h11 0.14.0 pyhd8ed1ab_0 conda-forge
h2 4.1.0 pyhd8ed1ab_0 conda-forge
hpack 4.0.0 pyh9f0ad1d_0 conda-forge
httpcore 1.0.5 pyhd8ed1ab_0 conda-forge
httpx 0.27.0 pyhd8ed1ab_0 conda-forge
hyperframe 6.0.1 pyhd8ed1ab_0 conda-forge
idna 3.7 pyhd8ed1ab_0 conda-forge
importlib-metadata 8.0.0 pyha770c72_0 conda-forge
importlib_metadata 8.0.0 hd8ed1ab_0 conda-forge
importlib_resources 6.4.0 pyhd8ed1ab_0 conda-forge
ipydatawidgets 4.3.2 pyhc268e32_0 conda-forge
ipykernel 6.29.5 pyh57ce528_0 conda-forge
ipysheet 0.7.0 pyhd8ed1ab_0 conda-forge
ipython 8.26.0 pyh707e725_0 conda-forge
ipywidgets 8.1.3 pyhd8ed1ab_0 conda-forge
isoduration 20.11.0 pyhd8ed1ab_0 conda-forge
jedi 0.19.1 pyhd8ed1ab_0 conda-forge
jinja2 3.1.4 pyhd8ed1ab_0 conda-forge
json5 0.9.25 pyhd8ed1ab_0 conda-forge
jsonpointer 3.0.0 py312h81bd7bf_0 conda-forge
jsonschema 4.23.0 pyhd8ed1ab_0 conda-forge
jsonschema-specifications 2023.12.1 pyhd8ed1ab_0 conda-forge
jsonschema-with-format-nongpl 4.23.0 hd8ed1ab_0 conda-forge
jupyter 1.0.0 pyhd8ed1ab_10 conda-forge
jupyter-lsp 2.2.5 pyhd8ed1ab_0 conda-forge
jupyter_client 8.6.2 pyhd8ed1ab_0 conda-forge
jupyter_console 6.6.3 pyhd8ed1ab_0 conda-forge
jupyter_core 5.7.2 py312h81bd7bf_0 conda-forge
jupyter_events 0.10.0 pyhd8ed1ab_0 conda-forge
jupyter_server 2.14.2 pyhd8ed1ab_0 conda-forge
jupyter_server_terminals 0.5.3 pyhd8ed1ab_0 conda-forge
jupyterlab 4.2.4 pyhd8ed1ab_0 conda-forge
jupyterlab_pygments 0.3.0 pyhd8ed1ab_1 conda-forge
jupyterlab_server 2.27.3 pyhd8ed1ab_0 conda-forge
jupyterlab_widgets 3.0.11 pyhd8ed1ab_0 conda-forge
jupyterlite-core 0.3.0 pyhd8ed1ab_0 conda-forge
jupyterlite-xeus 0.1.9 pyhd8ed1ab_0 conda-forge
kiwisolver 1.4.5 py312h389731b_1 conda-forge
krb5 1.21.3 h237132a_0 conda-forge
lcms2 2.16 ha0e7c42_0 conda-forge
lerc 4.0.0 h9a09cb3_0 conda-forge
libblas 3.9.0 22_osxarm64_openblas conda-forge
libbrotlicommon 1.1.0 hb547adb_1 conda-forge
libbrotlidec 1.1.0 hb547adb_1 conda-forge
libbrotlienc 1.1.0 hb547adb_1 conda-forge
libcblas 3.9.0 22_osxarm64_openblas conda-forge
libcxx 18.1.8 h167917d_0 conda-forge
libdeflate 1.20 h93a5062_0 conda-forge
libedit 3.1.20191231 hc8eb9b7_2 conda-forge
libexpat 2.6.2 hebf3989_0 conda-forge
libffi 3.4.2 h3422bc3_5 conda-forge
libgfortran 5.0.0 13_2_0_hd922786_3 conda-forge
libgfortran5 13.2.0 hf226fd6_3 conda-forge
libjpeg-turbo 3.0.0 hb547adb_1 conda-forge
liblapack 3.9.0 22_osxarm64_openblas conda-forge
libopenblas 0.3.27 openmp_h517c56d_1 conda-forge
libpng 1.6.43 h091b4b1_0 conda-forge
libsodium 1.0.18 h27ca646_1 conda-forge
libsqlite 3.46.0 hfb93653_0 conda-forge
libtiff 4.6.0 h07db509_3 conda-forge
libwebp-base 1.4.0 h93a5062_0 conda-forge
libxcb 1.16 hf2054a2_0 conda-forge
libzlib 1.3.1 hfb2fe0b_1 conda-forge
llvm-openmp 18.1.8 hde57baf_0 conda-forge
markdown-it-py 3.0.0 pyhd8ed1ab_0 conda-forge
markupsafe 2.1.5 py312he37b823_0 conda-forge
matplotlib 3.9.1 py312h1f38498_0 conda-forge
matplotlib-base 3.9.1 py312h32d6e5a_0 conda-forge
matplotlib-inline 0.1.7 pyhd8ed1ab_0 conda-forge
mdurl 0.1.2 pyhd8ed1ab_0 conda-forge
micromamba 1.5.8 0 conda-forge
mistune 3.0.2 pyhd8ed1ab_0 conda-forge
munkres 1.1.4 pyh9f0ad1d_0 conda-forge
nbclient 0.10.0 pyhd8ed1ab_0 conda-forge
nbconvert 7.16.4 hd8ed1ab_1 conda-forge
nbconvert-core 7.16.4 pyhd8ed1ab_1 conda-forge
nbconvert-pandoc 7.16.4 hd8ed1ab_1 conda-forge
nbformat 5.10.4 pyhd8ed1ab_0 conda-forge
ncurses 6.5 hb89a1cb_0 conda-forge
nest-asyncio 1.6.0 pyhd8ed1ab_0 conda-forge
networkx 3.3 pyhd8ed1ab_1 conda-forge
notebook 7.2.1 pyhd8ed1ab_0 conda-forge
notebook-shim 0.2.4 pyhd8ed1ab_0 conda-forge
numpy 2.0.0 py312hb544834_0 conda-forge
openjpeg 2.5.2 h9f1df11_0 conda-forge
openssl 3.3.1 hfb2fe0b_2 conda-forge
overrides 7.7.0 pyhd8ed1ab_0 conda-forge
packaging 24.1 pyhd8ed1ab_0 conda-forge
pandas 2.2.2 py312h8ae5369_1 conda-forge
pandoc 3.2.1 hce30654_0 conda-forge
pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge
parso 0.8.4 pyhd8ed1ab_0 conda-forge
pexpect 4.9.0 pyhd8ed1ab_0 conda-forge
pickleshare 0.7.5 py_1003 conda-forge
pillow 10.4.0 py312h39b1d8d_0 conda-forge
pip 24.0 pyhd8ed1ab_0 conda-forge
pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge
platformdirs 4.2.2 pyhd8ed1ab_0 conda-forge
prometheus_client 0.20.0 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.47 pyha770c72_0 conda-forge
prompt_toolkit 3.0.47 hd8ed1ab_0 conda-forge
pscript 0.7.7 pyhd8ed1ab_0 conda-forge
psutil 6.0.0 py312h7e5086c_0 conda-forge
pthread-stubs 0.4 h27ca646_1001 conda-forge
ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge
pure_eval 0.2.3 pyhd8ed1ab_0 conda-forge
pycparser 2.22 pyhd8ed1ab_0 conda-forge
pyerfa 2.0.1.4 py312hbebd99a_1 conda-forge
pygments 2.18.0 pyhd8ed1ab_0 conda-forge
pyobjc-core 10.3.1 py312hbb55c70_0 conda-forge
pyobjc-framework-cocoa 10.3.1 py312hbb55c70_0 conda-forge
pyparsing 3.1.2 pyhd8ed1ab_0 conda-forge
pysocks 1.7.1 pyha2e5f31_6 conda-forge
python 3.12.4 h30c5eda_0_cpython conda-forge
python-dateutil 2.9.0 pyhd8ed1ab_0 conda-forge
python-fastjsonschema 2.20.0 pyhd8ed1ab_0 conda-forge
python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge
python-tzdata 2024.1 pyhd8ed1ab_0 conda-forge
python_abi 3.12 4_cp312 conda-forge
pythreejs 2.4.2 pyh1d7be83_0 conda-forge
pytz 2024.1 pyhd8ed1ab_0 conda-forge
pyyaml 6.0.1 py312h02f2b3b_1 conda-forge
pyzmq 26.0.3 py312hfa13136_0 conda-forge
qhull 2020.2 h420ef59_5 conda-forge
qtconsole-base 5.5.2 pyha770c72_0 conda-forge
qtpy 2.4.1 pyhd8ed1ab_0 conda-forge
readline 8.2 h92ec313_1 conda-forge
referencing 0.35.1 pyhd8ed1ab_0 conda-forge
requests 2.32.3 pyhd8ed1ab_0 conda-forge
rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge
rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge
rich 13.7.1 pyhd8ed1ab_0 conda-forge
rpds-py 0.19.0 py312h552d48e_0 conda-forge
send2trash 1.8.3 pyh31c8845_0 conda-forge
setuptools 71.0.4 pyhd8ed1ab_0 conda-forge
shellingham 1.5.4 pyhd8ed1ab_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
sniffio 1.3.1 pyhd8ed1ab_0 conda-forge
soupsieve 2.5 pyhd8ed1ab_1 conda-forge
stack_data 0.6.2 pyhd8ed1ab_0 conda-forge
terminado 0.18.1 pyh31c8845_0 conda-forge
tinycss2 1.3.0 pyhd8ed1ab_0 conda-forge
tk 8.6.13 h5083fa2_1 conda-forge
tomli 2.0.1 pyhd8ed1ab_0 conda-forge
tornado 6.4.1 py312h7e5086c_0 conda-forge
traitlets 5.14.3 pyhd8ed1ab_0 conda-forge
traittypes 0.2.1 pyh9f0ad1d_2 conda-forge
typer 0.12.3 pyhd8ed1ab_0 conda-forge
typer-slim 0.12.3 pyhd8ed1ab_0 conda-forge
typer-slim-standard 0.12.3 hd8ed1ab_0 conda-forge
types-python-dateutil 2.9.0.20240316 pyhd8ed1ab_0 conda-forge
typing-extensions 4.12.2 hd8ed1ab_0 conda-forge
typing_extensions 4.12.2 pyha770c72_0 conda-forge
typing_utils 0.1.0 pyhd8ed1ab_0 conda-forge
tzdata 2024a h0c530f3_0 conda-forge
uri-template 1.3.0 pyhd8ed1ab_0 conda-forge
urllib3 2.2.2 pyhd8ed1ab_1 conda-forge
voici 0.6.1 pyhd8ed1ab_0 conda-forge
voici_core 0.6.1 pyhd8ed1ab_0 conda-forge
voila 0.5.7 pyhd8ed1ab_1 conda-forge
wcwidth 0.2.13 pyhd8ed1ab_0 conda-forge
webcolors 24.6.0 pyhd8ed1ab_0 conda-forge
webencodings 0.5.1 pyhd8ed1ab_2 conda-forge
websocket-client 1.8.0 pyhd8ed1ab_0 conda-forge
websockets 12.0 py312he37b823_0 conda-forge
wheel 0.43.0 pyhd8ed1ab_1 conda-forge
widgetsnbextension 4.0.11 pyhd8ed1ab_0 conda-forge
xorg-libxau 1.0.11 hb547adb_0 conda-forge
xorg-libxdmcp 1.1.3 h27ca646_0 conda-forge
xz 5.2.6 h57fd34a_0 conda-forge
yaml 0.2.5 h3422bc3_2 conda-forge
zeromq 4.3.5 hcc0f68c_4 conda-forge
zipp 3.19.2 pyhd8ed1ab_0 conda-forge
zstandard 0.23.0 py312h721a963_0 conda-forge
zstd 1.5.6 hb46c0d2_0 conda-forge

conda env:
name: test_bqplot_voici
channels:
- conda-forge
dependencies:
- anyio=4.4.0=pyhd8ed1ab_0
- appdirs=1.4.4=pyh9f0ad1d_0
- appnope=0.1.4=pyhd8ed1ab_0
- argon2-cffi=23.1.0=pyhd8ed1ab_0
- argon2-cffi-bindings=21.2.0=py312h02f2b3b_4
- arrow=1.3.0=pyhd8ed1ab_0
- astropy=6.1.1=py312hbebd99a_0
- astropy-iers-data=0.2024.7.22.0.34.13=pyhd8ed1ab_0
- asttokens=2.4.1=pyhd8ed1ab_0
- async-lru=2.0.4=pyhd8ed1ab_0
- attrs=23.2.0=pyh71513ae_0
- babel=2.14.0=pyhd8ed1ab_0
- beautifulsoup4=4.12.3=pyha770c72_0
- bleach=6.1.0=pyhd8ed1ab_0
- bqplot=0.12.43=pyhd8ed1ab_0
- brotli=1.1.0=hb547adb_1
- brotli-bin=1.1.0=hb547adb_1
- brotli-python=1.1.0=py312h9f69965_1
- bzip2=1.0.8=h99b78c6_7
- ca-certificates=2024.7.4=hf0a4a13_0
- cached-property=1.5.2=hd8ed1ab_1
- cached_property=1.5.2=pyha770c72_1
- certifi=2024.7.4=pyhd8ed1ab_0
- cffi=1.16.0=py312h8e38eb3_0
- charset-normalizer=3.3.2=pyhd8ed1ab_0
- click=8.1.7=unix_pyh707e725_0
- cloudpickle=3.0.0=pyhd8ed1ab_0
- comm=0.2.2=pyhd8ed1ab_0
- contourpy=1.2.1=py312h0fef576_0
- cycler=0.12.1=pyhd8ed1ab_0
- debugpy=1.8.2=py312h5c2e7bc_0
- decorator=5.1.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- doit=0.36.0=pyhd8ed1ab_0
- empack=4.0.0=pyhd8ed1ab_0
- entrypoints=0.4=pyhd8ed1ab_0
- exceptiongroup=1.2.2=pyhd8ed1ab_0
- executing=2.0.1=pyhd8ed1ab_0
- fonttools=4.53.1=py312h7e5086c_0
- fqdn=1.5.1=pyhd8ed1ab_0
- freetype=2.12.1=hadb7bae_2
- h11=0.14.0=pyhd8ed1ab_0
- h2=4.1.0=pyhd8ed1ab_0
- hpack=4.0.0=pyh9f0ad1d_0
- httpcore=1.0.5=pyhd8ed1ab_0
- httpx=0.27.0=pyhd8ed1ab_0
- hyperframe=6.0.1=pyhd8ed1ab_0
- idna=3.7=pyhd8ed1ab_0
- importlib-metadata=8.0.0=pyha770c72_0
- importlib_metadata=8.0.0=hd8ed1ab_0
- importlib_resources=6.4.0=pyhd8ed1ab_0
- ipydatawidgets=4.3.2=pyhc268e32_0
- ipykernel=6.29.5=pyh57ce528_0
- ipysheet=0.7.0=pyhd8ed1ab_0
- ipython=8.26.0=pyh707e725_0
- ipywidgets=8.1.3=pyhd8ed1ab_0
- isoduration=20.11.0=pyhd8ed1ab_0
- jedi=0.19.1=pyhd8ed1ab_0
- jinja2=3.1.4=pyhd8ed1ab_0
- json5=0.9.25=pyhd8ed1ab_0
- jsonpointer=3.0.0=py312h81bd7bf_0
- jsonschema=4.23.0=pyhd8ed1ab_0
- jsonschema-specifications=2023.12.1=pyhd8ed1ab_0
- jsonschema-with-format-nongpl=4.23.0=hd8ed1ab_0
- jupyter=1.0.0=pyhd8ed1ab_10
- jupyter-lsp=2.2.5=pyhd8ed1ab_0
- jupyter_client=8.6.2=pyhd8ed1ab_0
- jupyter_console=6.6.3=pyhd8ed1ab_0
- jupyter_core=5.7.2=py312h81bd7bf_0
- jupyter_events=0.10.0=pyhd8ed1ab_0
- jupyter_server=2.14.2=pyhd8ed1ab_0
- jupyter_server_terminals=0.5.3=pyhd8ed1ab_0
- jupyterlab=4.2.4=pyhd8ed1ab_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_1
- jupyterlab_server=2.27.3=pyhd8ed1ab_0
- jupyterlab_widgets=3.0.11=pyhd8ed1ab_0
- jupyterlite-core=0.3.0=pyhd8ed1ab_0
- jupyterlite-xeus=0.1.9=pyhd8ed1ab_0
- kiwisolver=1.4.5=py312h389731b_1
- krb5=1.21.3=h237132a_0
- lcms2=2.16=ha0e7c42_0
- lerc=4.0.0=h9a09cb3_0
- libblas=3.9.0=22_osxarm64_openblas
- libbrotlicommon=1.1.0=hb547adb_1
- libbrotlidec=1.1.0=hb547adb_1
- libbrotlienc=1.1.0=hb547adb_1
- libcblas=3.9.0=22_osxarm64_openblas
- libcxx=18.1.8=h167917d_0
- libdeflate=1.20=h93a5062_0
- libedit=3.1.20191231=hc8eb9b7_2
- libexpat=2.6.2=hebf3989_0
- libffi=3.4.2=h3422bc3_5
- libgfortran=5.0.0=13_2_0_hd922786_3
- libgfortran5=13.2.0=hf226fd6_3
- libjpeg-turbo=3.0.0=hb547adb_1
- liblapack=3.9.0=22_osxarm64_openblas
- libopenblas=0.3.27=openmp_h517c56d_1
- libpng=1.6.43=h091b4b1_0
- libsodium=1.0.18=h27ca646_1
- libsqlite=3.46.0=hfb93653_0
- libtiff=4.6.0=h07db509_3
- libwebp-base=1.4.0=h93a5062_0
- libxcb=1.16=hf2054a2_0
- libzlib=1.3.1=hfb2fe0b_1
- llvm-openmp=18.1.8=hde57baf_0
- markdown-it-py=3.0.0=pyhd8ed1ab_0
- markupsafe=2.1.5=py312he37b823_0
- matplotlib=3.9.1=py312h1f38498_0
- matplotlib-base=3.9.1=py312h32d6e5a_0
- matplotlib-inline=0.1.7=pyhd8ed1ab_0
- mdurl=0.1.2=pyhd8ed1ab_0
- micromamba=1.5.8=0
- mistune=3.0.2=pyhd8ed1ab_0
- munkres=1.1.4=pyh9f0ad1d_0
- nbclient=0.10.0=pyhd8ed1ab_0
- nbconvert=7.16.4=hd8ed1ab_1
- nbconvert-core=7.16.4=pyhd8ed1ab_1
- nbconvert-pandoc=7.16.4=hd8ed1ab_1
- nbformat=5.10.4=pyhd8ed1ab_0
- ncurses=6.5=hb89a1cb_0
- nest-asyncio=1.6.0=pyhd8ed1ab_0
- networkx=3.3=pyhd8ed1ab_1
- notebook=7.2.1=pyhd8ed1ab_0
- notebook-shim=0.2.4=pyhd8ed1ab_0
- numpy=2.0.0=py312hb544834_0
- openjpeg=2.5.2=h9f1df11_0
- openssl=3.3.1=hfb2fe0b_2
- overrides=7.7.0=pyhd8ed1ab_0
- packaging=24.1=pyhd8ed1ab_0
- pandas=2.2.2=py312h8ae5369_1
- pandoc=3.2.1=hce30654_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- parso=0.8.4=pyhd8ed1ab_0
- pexpect=4.9.0=pyhd8ed1ab_0
- pickleshare=0.7.5=py_1003
- pillow=10.4.0=py312h39b1d8d_0
- pip=24.0=pyhd8ed1ab_0
- pkgutil-resolve-name=1.3.10=pyhd8ed1ab_1
- platformdirs=4.2.2=pyhd8ed1ab_0
- prometheus_client=0.20.0=pyhd8ed1ab_0
- prompt-toolkit=3.0.47=pyha770c72_0
- prompt_toolkit=3.0.47=hd8ed1ab_0
- pscript=0.7.7=pyhd8ed1ab_0
- psutil=6.0.0=py312h7e5086c_0
- pthread-stubs=0.4=h27ca646_1001
- ptyprocess=0.7.0=pyhd3deb0d_0
- pure_eval=0.2.3=pyhd8ed1ab_0
- pycparser=2.22=pyhd8ed1ab_0
- pyerfa=2.0.1.4=py312hbebd99a_1
- pygments=2.18.0=pyhd8ed1ab_0
- pyobjc-core=10.3.1=py312hbb55c70_0
- pyobjc-framework-cocoa=10.3.1=py312hbb55c70_0
- pyparsing=3.1.2=pyhd8ed1ab_0
- pysocks=1.7.1=pyha2e5f31_6
- python=3.12.4=h30c5eda_0_cpython
- python-dateutil=2.9.0=pyhd8ed1ab_0
- python-fastjsonschema=2.20.0=pyhd8ed1ab_0
- python-json-logger=2.0.7=pyhd8ed1ab_0
- python-tzdata=2024.1=pyhd8ed1ab_0
- python_abi=3.12=4_cp312
- pythreejs=2.4.2=pyh1d7be83_0
- pytz=2024.1=pyhd8ed1ab_0
- pyyaml=6.0.1=py312h02f2b3b_1
- pyzmq=26.0.3=py312hfa13136_0
- qhull=2020.2=h420ef59_5
- qtconsole-base=5.5.2=pyha770c72_0
- qtpy=2.4.1=pyhd8ed1ab_0
- readline=8.2=h92ec313_1
- referencing=0.35.1=pyhd8ed1ab_0
- requests=2.32.3=pyhd8ed1ab_0
- rfc3339-validator=0.1.4=pyhd8ed1ab_0
- rfc3986-validator=0.1.1=pyh9f0ad1d_0
- rich=13.7.1=pyhd8ed1ab_0
- rpds-py=0.19.0=py312h552d48e_0
- send2trash=1.8.3=pyh31c8845_0
- setuptools=71.0.4=pyhd8ed1ab_0
- shellingham=1.5.4=pyhd8ed1ab_0
- six=1.16.0=pyh6c4a22f_0
- sniffio=1.3.1=pyhd8ed1ab_0
- soupsieve=2.5=pyhd8ed1ab_1
- stack_data=0.6.2=pyhd8ed1ab_0
- terminado=0.18.1=pyh31c8845_0
- tinycss2=1.3.0=pyhd8ed1ab_0
- tk=8.6.13=h5083fa2_1
- tomli=2.0.1=pyhd8ed1ab_0
- tornado=6.4.1=py312h7e5086c_0
- traitlets=5.14.3=pyhd8ed1ab_0
- traittypes=0.2.1=pyh9f0ad1d_2
- typer=0.12.3=pyhd8ed1ab_0
- typer-slim=0.12.3=pyhd8ed1ab_0
- typer-slim-standard=0.12.3=hd8ed1ab_0
- types-python-dateutil=2.9.0.20240316=pyhd8ed1ab_0
- typing-extensions=4.12.2=hd8ed1ab_0
- typing_extensions=4.12.2=pyha770c72_0
- typing_utils=0.1.0=pyhd8ed1ab_0
- tzdata=2024a=h0c530f3_0
- uri-template=1.3.0=pyhd8ed1ab_0
- urllib3=2.2.2=pyhd8ed1ab_1
- voici=0.6.1=pyhd8ed1ab_0
- voici_core=0.6.1=pyhd8ed1ab_0
- voila=0.5.7=pyhd8ed1ab_1
- wcwidth=0.2.13=pyhd8ed1ab_0
- webcolors=24.6.0=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_2
- websocket-client=1.8.0=pyhd8ed1ab_0
- websockets=12.0=py312he37b823_0
- wheel=0.43.0=pyhd8ed1ab_1
- widgetsnbextension=4.0.11=pyhd8ed1ab_0
- xorg-libxau=1.0.11=hb547adb_0
- xorg-libxdmcp=1.1.3=h27ca646_0
- xz=5.2.6=h57fd34a_0
- yaml=0.2.5=h3422bc3_2
- zeromq=4.3.5=hcc0f68c_4
- zipp=3.19.2=pyhd8ed1ab_0
- zstandard=0.23.0=py312h721a963_0
- zstd=1.5.6=hb46c0d2_0
prefix: /Users/username/miniforge3/envs/test_bqplot_voici

Browser Output The following messages appear in the Javascript Console linked to `python.js:8`:
ERROR: received bad message: No such comm registered: ce4c666c-9c57-4620-8bce-9a00befc2777
xpython.js:8 Message type: comm_msg

If using JupyterLab

  • JupyterLab version: 4.2.4
Installed Labextensions
JupyterLab v4.2.4
/Users/juan/miniforge3/envs/test_bqplot_voici/share/jupyter/labextensions
        jupyterlab_pygments v0.3.0 enabled OK (python, jupyterlab_pygments)
        bqplot v0.5.44 enabled  X (python, bqplot)
        jupyterlab-datawidgets v7.1.2 enabled OK
        jupyter-threejs v2.4.1 enabled OK (python, pythreejs)
        ipysheet v0.7.0 enabled  X (python, ipysheet)
        @jupyter-notebook/lab-extension v7.2.1 enabled OK
        @voila-dashboards/jupyterlab-preview v2.3.7 enabled OK (python, voila)
        @jupyter-widgets/jupyterlab-manager v5.0.11 enabled OK (python, jupyterlab_widgets)
        @jupyterlite/xeus v0.1.9 enabled OK (python, jupyterlite_xeus)

The following extensions may be outdated or specify dependencies that are incompatible with the current version of jupyterlab:
bqplot
ipysheet

If you are a user, check if an update is available for these packages.
If you are a developer, re-run with --verbose flag for more details.

Other labextensions (built into JupyterLab)
app dir: /Users/juan/miniforge3/envs/test_bqplot_voici/share/jupyter/lab

@JuanCab JuanCab added the bug Something isn't working label Jul 22, 2024
@JuanCab JuanCab changed the title bqplot not behaving properly in voici bqplot widgets not triggering observe method when run in voici Jul 25, 2024
@lhegstrom
Copy link

lhegstrom commented Sep 3, 2024

Any updates or thoughts on this?

I ran into a nearly identical error when using toggle buttons to control a matplotlib plot. It works perfectly in a normal ipynb as well as with voila. But, does not work after compiling(?not sure if that's technically correct) to a voici project. Weirdly - every other widget works as expected when attaching observers -- it's only these toggle boxes that seem to be not attaching.

Browser console output attached:
Screenshot 2024-09-03 at 14 01 52

@martinRenou
Copy link
Member

@jtpio looking at the traceback here, could it be related to the coincident error we had?

@jtpio
Copy link
Member

jtpio commented Sep 4, 2024

@jtpio looking at the traceback here, could it be related to the coincident error we had?

It is indeed the same error message as originally reported in jupyterlite/jupyterlite#1424. Although not sure if it's just noise, there is another error coming from xpython.js it seems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants