K3D-tools / K3D-jupyter

K3D lets you create 3D plots backed by WebGL with high-level API (surfaces, isosurfaces, voxels, mesh, cloud points, vtk objects, volume renderer, colormaps, etc). The primary aim of K3D-jupyter is to be easy for use as stand alone package like matplotlib, but also to allow interoperation with existing libraries as VTK.
MIT License
916 stars 123 forks source link

"Uncaught ReferenceError: intersect is not defined" when using Callback function (k3d>=2.15.3) #438

Closed CagtayFabry closed 6 months ago

CagtayFabry commented 7 months ago

Hi everyone,

I am having trouble getting the Callback function to work. I remember it working in some of my earlier setups. Update: the error seems to appear starting with k3d version 2.15.3 and newer. It works with 2.15.2 and lower, see my posts below.

I tried a few variations with Juypterlab=3/4, k3d=2.15.3/2.16, ipywidgets=7.*/8.*, juypterlab_widgets=1.*/3.* but haven't found a working combination.

If anyone could provide a conda environment with working callbacks that would be very helpful to investigate further.

Description

Running the callback example fails with Uncaught ReferenceError: intersect is not defined.

The callback function does not get executed.

What I Did

create conda environment

conda create -n k3d python=3.11 jupyterlab=3.6.6 k3d=2.16.0
example `conda list` output ```bash conda list # packages in environment at envs\k3d: # # Name Version Build Channel aiofiles 22.1.0 pyhd8ed1ab_0 conda-forge aiosqlite 0.19.0 pyhd8ed1ab_0 conda-forge anyio 4.1.0 pyhd8ed1ab_0 conda-forge argon2-cffi 23.1.0 pyhd8ed1ab_0 conda-forge argon2-cffi-bindings 21.2.0 py311ha68e1ae_4 conda-forge arrow 1.3.0 pyhd8ed1ab_0 conda-forge asttokens 2.4.1 pyhd8ed1ab_0 conda-forge attrs 23.1.0 pyh71513ae_1 conda-forge babel 2.13.1 pyhd8ed1ab_0 conda-forge beautifulsoup4 4.12.2 pyha770c72_0 conda-forge bleach 6.1.0 pyhd8ed1ab_0 conda-forge brotli-python 1.1.0 py311h12c1d0e_1 conda-forge bzip2 1.0.8 hcfcfb64_5 conda-forge ca-certificates 2023.11.17 h56e8100_0 conda-forge cached-property 1.5.2 hd8ed1ab_1 conda-forge cached_property 1.5.2 pyha770c72_1 conda-forge certifi 2023.11.17 pyhd8ed1ab_0 conda-forge cffi 1.16.0 py311ha68e1ae_0 conda-forge charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge comm 0.1.4 pyhd8ed1ab_0 conda-forge debugpy 1.8.0 py311h12c1d0e_1 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge entrypoints 0.4 pyhd8ed1ab_0 conda-forge exceptiongroup 1.2.0 pyhd8ed1ab_0 conda-forge executing 2.0.1 pyhd8ed1ab_0 conda-forge fqdn 1.5.1 pyhd8ed1ab_0 conda-forge idna 3.6 pyhd8ed1ab_0 conda-forge importlib-metadata 6.8.0 pyha770c72_0 conda-forge importlib_metadata 6.8.0 hd8ed1ab_0 conda-forge importlib_resources 6.1.1 pyhd8ed1ab_0 conda-forge intel-openmp 2023.2.0 h57928b3_50497 conda-forge ipykernel 6.26.0 pyha63f2e9_0 conda-forge ipython 8.18.1 pyh5737063_1 conda-forge ipython_genutils 0.2.0 py_1 conda-forge ipywidgets 8.1.1 pyhd8ed1ab_0 conda-forge isoduration 20.11.0 pyhd8ed1ab_0 conda-forge jedi 0.19.1 pyhd8ed1ab_0 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge json5 0.9.14 pyhd8ed1ab_0 conda-forge jsonpointer 2.4 py311h1ea47a8_3 conda-forge jsonschema 4.20.0 pyhd8ed1ab_0 conda-forge jsonschema-specifications 2023.11.1 pyhd8ed1ab_0 conda-forge jsonschema-with-format-nongpl 4.20.0 pyhd8ed1ab_0 conda-forge jupyter_client 7.4.9 pyhd8ed1ab_0 conda-forge jupyter_core 5.5.0 py311h1ea47a8_0 conda-forge jupyter_events 0.9.0 pyhd8ed1ab_0 conda-forge jupyter_server 2.11.1 pyhd8ed1ab_0 conda-forge jupyter_server_fileid 0.9.0 pyhd8ed1ab_0 conda-forge jupyter_server_terminals 0.4.4 pyhd8ed1ab_1 conda-forge jupyter_server_ydoc 0.8.0 pyhd8ed1ab_0 conda-forge jupyter_ydoc 0.2.4 pyhd8ed1ab_0 conda-forge jupyterlab 3.6.6 pyhd8ed1ab_0 conda-forge jupyterlab_pygments 0.3.0 pyhd8ed1ab_0 conda-forge jupyterlab_server 2.25.2 pyhd8ed1ab_0 conda-forge jupyterlab_widgets 3.0.9 pyhd8ed1ab_0 conda-forge k3d 2.16.0 pyhd8ed1ab_0 conda-forge libblas 3.9.0 20_win64_mkl conda-forge libcblas 3.9.0 20_win64_mkl conda-forge libexpat 2.5.0 h63175ca_1 conda-forge libffi 3.4.2 h8ffe710_5 conda-forge libhwloc 2.9.3 default_haede6df_1009 conda-forge libiconv 1.17 h8ffe710_0 conda-forge liblapack 3.9.0 20_win64_mkl conda-forge libsodium 1.0.18 h8d14728_1 conda-forge libsqlite 3.44.2 hcfcfb64_0 conda-forge libxml2 2.11.6 hc3477c8_0 conda-forge libzlib 1.2.13 hcfcfb64_5 conda-forge markupsafe 2.1.3 py311ha68e1ae_1 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mistune 3.0.2 pyhd8ed1ab_0 conda-forge mkl 2023.2.0 h6a75c08_50497 conda-forge msgpack-python 1.0.7 py311h005e61a_0 conda-forge nbclassic 1.0.0 pyhb4ecaf3_1 conda-forge nbclient 0.8.0 pyhd8ed1ab_0 conda-forge nbconvert 7.11.0 pyhd8ed1ab_0 conda-forge nbconvert-core 7.11.0 pyhd8ed1ab_0 conda-forge nbconvert-pandoc 7.11.0 pyhd8ed1ab_0 conda-forge nbformat 5.9.2 pyhd8ed1ab_0 conda-forge nest-asyncio 1.5.8 pyhd8ed1ab_0 conda-forge notebook 6.5.6 pyha770c72_0 conda-forge notebook-shim 0.2.3 pyhd8ed1ab_0 conda-forge numpy 1.26.2 py311h0b4df5a_0 conda-forge openssl 3.2.0 hcfcfb64_1 conda-forge overrides 7.4.0 pyhd8ed1ab_0 conda-forge packaging 23.2 pyhd8ed1ab_0 conda-forge pandoc 3.1.3 h57928b3_0 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge pickleshare 0.7.5 py_1003 conda-forge pip 23.3.1 pyhd8ed1ab_0 conda-forge pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge platformdirs 4.0.0 pyhd8ed1ab_0 conda-forge prometheus_client 0.19.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.41 pyha770c72_0 conda-forge psutil 5.9.5 py311ha68e1ae_1 conda-forge pthreads-win32 2.9.1 hfa6e2cd_3 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pygments 2.17.2 pyhd8ed1ab_0 conda-forge pysocks 1.7.1 pyh0701188_6 conda-forge python 3.11.6 h2628c8c_0_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-fastjsonschema 2.19.0 pyhd8ed1ab_0 conda-forge python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge python_abi 3.11 4_cp311 conda-forge pytz 2023.3.post1 pyhd8ed1ab_0 conda-forge pywin32 306 py311h12c1d0e_2 conda-forge pywinpty 2.0.12 py311h12c1d0e_0 conda-forge pyyaml 6.0.1 py311ha68e1ae_1 conda-forge pyzmq 24.0.1 py311h7b3f143_1 conda-forge referencing 0.31.1 pyhd8ed1ab_0 conda-forge requests 2.31.0 pyhd8ed1ab_0 conda-forge rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge rpds-py 0.13.2 py311hc37eb10_0 conda-forge send2trash 1.8.2 pyh08f2357_0 conda-forge setuptools 68.2.2 pyhd8ed1ab_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge sniffio 1.3.0 pyhd8ed1ab_0 conda-forge soupsieve 2.5 pyhd8ed1ab_1 conda-forge stack_data 0.6.2 pyhd8ed1ab_0 conda-forge tbb 2021.10.0 h91493d7_2 conda-forge terminado 0.18.0 pyh5737063_0 conda-forge tinycss2 1.2.1 pyhd8ed1ab_0 conda-forge tk 8.6.13 h5226925_1 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge tornado 6.3.3 py311ha68e1ae_1 conda-forge traitlets 5.14.0 pyhd8ed1ab_0 conda-forge traittypes 0.2.1 pyh9f0ad1d_2 conda-forge types-python-dateutil 2.8.19.14 pyhd8ed1ab_0 conda-forge typing-extensions 4.8.0 hd8ed1ab_0 conda-forge typing_extensions 4.8.0 pyha770c72_0 conda-forge typing_utils 0.1.0 pyhd8ed1ab_0 conda-forge tzdata 2023c h71feb2d_0 conda-forge ucrt 10.0.22621.0 h57928b3_0 conda-forge uri-template 1.3.0 pyhd8ed1ab_0 conda-forge urllib3 2.1.0 pyhd8ed1ab_0 conda-forge vc 14.3 h64f974e_17 conda-forge vc14_runtime 14.36.32532 hdcecf7f_17 conda-forge vs2015_runtime 14.36.32532 h05e6639_17 conda-forge wcwidth 0.2.12 pyhd8ed1ab_0 conda-forge webcolors 1.13 pyhd8ed1ab_0 conda-forge webencodings 0.5.1 pyhd8ed1ab_2 conda-forge websocket-client 1.6.4 pyhd8ed1ab_0 conda-forge wheel 0.42.0 pyhd8ed1ab_0 conda-forge widgetsnbextension 4.0.9 pyhd8ed1ab_0 conda-forge win_inet_pton 1.1.0 pyhd8ed1ab_6 conda-forge winpty 0.4.3 4 conda-forge xz 5.2.6 h8d14728_0 conda-forge y-py 0.5.9 py311hc37eb10_0 conda-forge yaml 0.2.5 h8ffe710_2 conda-forge ypy-websocket 0.8.2 pyhd8ed1ab_0 conda-forge zeromq 4.3.4 h0e60522_1 conda-forge zipp 3.17.0 pyhd8ed1ab_0 conda-forge ```

Run the following code in Juypter-Notebook (taken from callback example)

import k3d
import numpy as np
import ipywidgets as widgets
import json 

plot = k3d.plot()
display(plot)

debug_info = widgets.HTML()
display(debug_info)

g = None
def foo(params):
    global g, debug_info

    g = params
    debug_info.value = '<pre>' + json.dumps(params, indent=4) + "</pre>"

x, y = np.meshgrid(np.linspace(-3, 3, 60),np.linspace(-3, 3, 60))
heights = np.sin(x**2 + y**2)
obj = k3d.surface(heights.astype(np.float32), bounds=[-3,3,-3,3])
plot += obj

obj.click_callback = foo
obj.hover_callback = foo

plot.mode = 'callback'
obj = plot.objects[0]

Afterwards I hover the mouse of the object in the k3d plot. The callback does not got executed, the web console shows the below error message.

Web console log / python logs

K3D: (UNMASKED_VENDOR_WEBGL) Google Inc. (Intel)
K3D: (UNMASKED_RENDERER_WEBGL) ANGLE (Intel, Intel(R) UHD Graphics 620 (0x00005917) Direct3D11 vs_5_0 ps_5_0, D3D11)
K3D: (depth bits) 24
K3D: (stencil bits) 8
K3D: Object type "Surface" loaded in:  0.007 s

Uncaught ReferenceError: intersect is not defined
    at Object.f (573.8ab2cfe6c0651f67cce0.js?v=8ab2cfe6c0651f67cce0:1:207741)
    at Object.<anonymous> (573.8ab2cfe6c0651f67cce0.js?v=8ab2cfe6c0651f67cce0:1:209499)
    at 573.8ab2cfe6c0651f67cce0.js?v=8ab2cfe6c0651f67cce0:1:45056
    at Array.forEach (<anonymous>)
    at S.L [as dispatch] (573.8ab2cfe6c0651f67cce0.js?v=8ab2cfe6c0651f67cce0:1:45036)
    at HTMLCanvasElement.u (573.8ab2cfe6c0651f67cce0.js?v=8ab2cfe6c0651f67cce0:1:192572)

I also get some ipywidgets warning whens starting jupyterlab, not sure if this is relevant in this case (the widgets are loading):

Failed to fetch ipywidgets through the "jupyter.widget.control" comm channel, fallback to fetching individual model state. Reason: Control comm was closed too early
CagtayFabry commented 7 months ago

For reference, the following environment works for me using k3d==2.14.5

name: k3d
channels:
  - conda-forge
dependencies:
  - ipywidgets=7.8
  - jupyterlab=3.6
  - k3d=2.14.5
`conda list` output ``` # Name Version Build Channel aiofiles 22.1.0 pyhd8ed1ab_0 conda-forge aiosqlite 0.19.0 pyhd8ed1ab_0 conda-forge anyio 4.1.0 pyhd8ed1ab_0 conda-forge argon2-cffi 23.1.0 pyhd8ed1ab_0 conda-forge argon2-cffi-bindings 21.2.0 py311ha68e1ae_4 conda-forge arrow 1.3.0 pyhd8ed1ab_0 conda-forge asttokens 2.4.1 pyhd8ed1ab_0 conda-forge attrs 23.1.0 pyh71513ae_1 conda-forge babel 2.13.1 pyhd8ed1ab_0 conda-forge beautifulsoup4 4.12.2 pyha770c72_0 conda-forge bleach 6.1.0 pyhd8ed1ab_0 conda-forge brotli-python 1.1.0 py311h12c1d0e_1 conda-forge bzip2 1.0.8 hcfcfb64_5 conda-forge ca-certificates 2023.11.17 h56e8100_0 conda-forge cached-property 1.5.2 hd8ed1ab_1 conda-forge cached_property 1.5.2 pyha770c72_1 conda-forge certifi 2023.11.17 pyhd8ed1ab_0 conda-forge cffi 1.16.0 py311ha68e1ae_0 conda-forge charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge comm 0.1.4 pyhd8ed1ab_0 conda-forge debugpy 1.8.0 py311h12c1d0e_1 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge entrypoints 0.4 pyhd8ed1ab_0 conda-forge exceptiongroup 1.2.0 pyhd8ed1ab_0 conda-forge executing 2.0.1 pyhd8ed1ab_0 conda-forge fqdn 1.5.1 pyhd8ed1ab_0 conda-forge idna 3.6 pyhd8ed1ab_0 conda-forge importlib-metadata 6.8.0 pyha770c72_0 conda-forge importlib_metadata 6.8.0 hd8ed1ab_0 conda-forge importlib_resources 6.1.1 pyhd8ed1ab_0 conda-forge intel-openmp 2023.2.0 h57928b3_50497 conda-forge ipykernel 6.26.0 pyha63f2e9_0 conda-forge ipython 8.18.1 pyh5737063_1 conda-forge ipython_genutils 0.2.0 py_1 conda-forge ipywidgets 7.8.0 pyhd8ed1ab_0 conda-forge isoduration 20.11.0 pyhd8ed1ab_0 conda-forge jedi 0.19.1 pyhd8ed1ab_0 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge json5 0.9.14 pyhd8ed1ab_0 conda-forge jsonpointer 2.4 py311h1ea47a8_3 conda-forge jsonschema 4.20.0 pyhd8ed1ab_0 conda-forge jsonschema-specifications 2023.11.1 pyhd8ed1ab_0 conda-forge jsonschema-with-format-nongpl 4.20.0 pyhd8ed1ab_0 conda-forge jupyter_client 8.6.0 pyhd8ed1ab_0 conda-forge jupyter_core 5.5.0 py311h1ea47a8_0 conda-forge jupyter_events 0.9.0 pyhd8ed1ab_0 conda-forge jupyter_server 2.11.1 pyhd8ed1ab_0 conda-forge jupyter_server_fileid 0.9.0 pyhd8ed1ab_0 conda-forge jupyter_server_terminals 0.4.4 pyhd8ed1ab_1 conda-forge jupyter_server_ydoc 0.8.0 pyhd8ed1ab_0 conda-forge jupyter_ydoc 0.2.4 pyhd8ed1ab_0 conda-forge jupyterlab 3.6.6 pyhd8ed1ab_0 conda-forge jupyterlab_pygments 0.3.0 pyhd8ed1ab_0 conda-forge jupyterlab_server 2.25.2 pyhd8ed1ab_0 conda-forge jupyterlab_widgets 1.1.7 pyhd8ed1ab_0 conda-forge k3d 2.14.5 pyhd8ed1ab_0 conda-forge libblas 3.9.0 20_win64_mkl conda-forge libcblas 3.9.0 20_win64_mkl conda-forge libexpat 2.5.0 h63175ca_1 conda-forge libffi 3.4.2 h8ffe710_5 conda-forge libhwloc 2.9.3 default_haede6df_1009 conda-forge libiconv 1.17 h8ffe710_0 conda-forge liblapack 3.9.0 20_win64_mkl conda-forge libsodium 1.0.18 h8d14728_1 conda-forge libsqlite 3.44.2 hcfcfb64_0 conda-forge libxml2 2.11.6 hc3477c8_0 conda-forge libzlib 1.2.13 hcfcfb64_5 conda-forge markupsafe 2.1.3 py311ha68e1ae_1 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mistune 3.0.2 pyhd8ed1ab_0 conda-forge mkl 2023.2.0 h6a75c08_50497 conda-forge msgpack-python 1.0.7 py311h005e61a_0 conda-forge nbclassic 1.0.0 pyhb4ecaf3_1 conda-forge nbclient 0.8.0 pyhd8ed1ab_0 conda-forge nbconvert 7.11.0 pyhd8ed1ab_0 conda-forge nbconvert-core 7.11.0 pyhd8ed1ab_0 conda-forge nbconvert-pandoc 7.11.0 pyhd8ed1ab_0 conda-forge nbformat 5.9.2 pyhd8ed1ab_0 conda-forge nest-asyncio 1.5.8 pyhd8ed1ab_0 conda-forge notebook 6.5.4 pyha770c72_0 conda-forge notebook-shim 0.2.3 pyhd8ed1ab_0 conda-forge numpy 1.26.2 py311h0b4df5a_0 conda-forge openssl 3.2.0 hcfcfb64_1 conda-forge overrides 7.4.0 pyhd8ed1ab_0 conda-forge packaging 23.2 pyhd8ed1ab_0 conda-forge pandoc 3.1.3 h57928b3_0 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge pickleshare 0.7.5 py_1003 conda-forge pip 23.3.1 pyhd8ed1ab_0 conda-forge pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge platformdirs 4.0.0 pyhd8ed1ab_0 conda-forge prometheus_client 0.19.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.41 pyha770c72_0 conda-forge psutil 5.9.5 py311ha68e1ae_1 conda-forge pthreads-win32 2.9.1 hfa6e2cd_3 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pygments 2.17.2 pyhd8ed1ab_0 conda-forge pysocks 1.7.1 pyh0701188_6 conda-forge python 3.11.6 h2628c8c_0_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-fastjsonschema 2.19.0 pyhd8ed1ab_0 conda-forge python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge python_abi 3.11 4_cp311 conda-forge pytz 2023.3.post1 pyhd8ed1ab_0 conda-forge pywin32 306 py311h12c1d0e_2 conda-forge pywinpty 2.0.12 py311h12c1d0e_0 conda-forge pyyaml 6.0.1 py311ha68e1ae_1 conda-forge pyzmq 25.1.1 py311h9250fbb_2 conda-forge referencing 0.31.1 pyhd8ed1ab_0 conda-forge requests 2.31.0 pyhd8ed1ab_0 conda-forge rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge rpds-py 0.13.2 py311hc37eb10_0 conda-forge send2trash 1.8.2 pyh08f2357_0 conda-forge setuptools 68.2.2 pyhd8ed1ab_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge sniffio 1.3.0 pyhd8ed1ab_0 conda-forge soupsieve 2.5 pyhd8ed1ab_1 conda-forge stack_data 0.6.2 pyhd8ed1ab_0 conda-forge tbb 2021.10.0 h91493d7_2 conda-forge terminado 0.18.0 pyh5737063_0 conda-forge tinycss2 1.2.1 pyhd8ed1ab_0 conda-forge tk 8.6.13 h5226925_1 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge tornado 6.3.3 py311ha68e1ae_1 conda-forge traitlets 5.9.0 pyhd8ed1ab_0 conda-forge traittypes 0.2.1 pyh9f0ad1d_2 conda-forge types-python-dateutil 2.8.19.14 pyhd8ed1ab_0 conda-forge typing-extensions 4.8.0 hd8ed1ab_0 conda-forge typing_extensions 4.8.0 pyha770c72_0 conda-forge typing_utils 0.1.0 pyhd8ed1ab_0 conda-forge tzdata 2023c h71feb2d_0 conda-forge ucrt 10.0.22621.0 h57928b3_0 conda-forge uri-template 1.3.0 pyhd8ed1ab_0 conda-forge urllib3 2.1.0 pyhd8ed1ab_0 conda-forge vc 14.3 h64f974e_17 conda-forge vc14_runtime 14.36.32532 hdcecf7f_17 conda-forge vs2015_runtime 14.36.32532 h05e6639_17 conda-forge wcwidth 0.2.12 pyhd8ed1ab_0 conda-forge webcolors 1.13 pyhd8ed1ab_0 conda-forge webencodings 0.5.1 pyhd8ed1ab_2 conda-forge websocket-client 1.6.4 pyhd8ed1ab_0 conda-forge wheel 0.42.0 pyhd8ed1ab_0 conda-forge widgetsnbextension 3.6.6 pyhd8ed1ab_0 conda-forge win_inet_pton 1.1.0 pyhd8ed1ab_6 conda-forge winpty 0.4.3 4 conda-forge xz 5.2.6 h8d14728_0 conda-forge y-py 0.5.9 py311hc37eb10_0 conda-forge yaml 0.2.5 h8ffe710_2 conda-forge ypy-websocket 0.8.2 pyhd8ed1ab_0 conda-forge zeromq 4.3.5 h63175ca_0 conda-forge zipp 3.17.0 pyhd8ed1ab_0 conda-forge ```

same environment throws the error with 2.15.3

name: k3d
channels:
  - conda-forge
dependencies:
  - ipywidgets=7.8
  - jupyterlab=3.6
  - k3d=2.15.3
`conda list` output ``` # # Name Version Build Channel aiofiles 22.1.0 pyhd8ed1ab_0 conda-forge aiosqlite 0.19.0 pyhd8ed1ab_0 conda-forge anyio 4.1.0 pyhd8ed1ab_0 conda-forge argon2-cffi 23.1.0 pyhd8ed1ab_0 conda-forge argon2-cffi-bindings 21.2.0 py311ha68e1ae_4 conda-forge arrow 1.3.0 pyhd8ed1ab_0 conda-forge asttokens 2.4.1 pyhd8ed1ab_0 conda-forge attrs 23.1.0 pyh71513ae_1 conda-forge babel 2.13.1 pyhd8ed1ab_0 conda-forge beautifulsoup4 4.12.2 pyha770c72_0 conda-forge bleach 6.1.0 pyhd8ed1ab_0 conda-forge brotli-python 1.1.0 py311h12c1d0e_1 conda-forge bzip2 1.0.8 hcfcfb64_5 conda-forge ca-certificates 2023.11.17 h56e8100_0 conda-forge cached-property 1.5.2 hd8ed1ab_1 conda-forge cached_property 1.5.2 pyha770c72_1 conda-forge certifi 2023.11.17 pyhd8ed1ab_0 conda-forge cffi 1.16.0 py311ha68e1ae_0 conda-forge charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge comm 0.1.4 pyhd8ed1ab_0 conda-forge debugpy 1.8.0 py311h12c1d0e_1 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge entrypoints 0.4 pyhd8ed1ab_0 conda-forge exceptiongroup 1.2.0 pyhd8ed1ab_0 conda-forge executing 2.0.1 pyhd8ed1ab_0 conda-forge fqdn 1.5.1 pyhd8ed1ab_0 conda-forge idna 3.6 pyhd8ed1ab_0 conda-forge importlib-metadata 6.8.0 pyha770c72_0 conda-forge importlib_metadata 6.8.0 hd8ed1ab_0 conda-forge importlib_resources 6.1.1 pyhd8ed1ab_0 conda-forge intel-openmp 2023.2.0 h57928b3_50497 conda-forge ipykernel 6.26.0 pyha63f2e9_0 conda-forge ipython 8.18.1 pyh5737063_1 conda-forge ipython_genutils 0.2.0 py_1 conda-forge ipywidgets 7.8.0 pyhd8ed1ab_0 conda-forge isoduration 20.11.0 pyhd8ed1ab_0 conda-forge jedi 0.19.1 pyhd8ed1ab_0 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge json5 0.9.14 pyhd8ed1ab_0 conda-forge jsonpointer 2.4 py311h1ea47a8_3 conda-forge jsonschema 4.20.0 pyhd8ed1ab_0 conda-forge jsonschema-specifications 2023.11.1 pyhd8ed1ab_0 conda-forge jsonschema-with-format-nongpl 4.20.0 pyhd8ed1ab_0 conda-forge jupyter_client 7.4.9 pyhd8ed1ab_0 conda-forge jupyter_core 5.5.0 py311h1ea47a8_0 conda-forge jupyter_events 0.9.0 pyhd8ed1ab_0 conda-forge jupyter_server 2.11.1 pyhd8ed1ab_0 conda-forge jupyter_server_fileid 0.9.0 pyhd8ed1ab_0 conda-forge jupyter_server_terminals 0.4.4 pyhd8ed1ab_1 conda-forge jupyter_server_ydoc 0.8.0 pyhd8ed1ab_0 conda-forge jupyter_ydoc 0.2.4 pyhd8ed1ab_0 conda-forge jupyterlab 3.6.6 pyhd8ed1ab_0 conda-forge jupyterlab_pygments 0.3.0 pyhd8ed1ab_0 conda-forge jupyterlab_server 2.25.2 pyhd8ed1ab_0 conda-forge jupyterlab_widgets 1.1.7 pyhd8ed1ab_0 conda-forge k3d 2.15.3 pyhd8ed1ab_0 conda-forge libblas 3.9.0 20_win64_mkl conda-forge libcblas 3.9.0 20_win64_mkl conda-forge libexpat 2.5.0 h63175ca_1 conda-forge libffi 3.4.2 h8ffe710_5 conda-forge libhwloc 2.9.3 default_haede6df_1009 conda-forge libiconv 1.17 h8ffe710_0 conda-forge liblapack 3.9.0 20_win64_mkl conda-forge libsodium 1.0.18 h8d14728_1 conda-forge libsqlite 3.44.2 hcfcfb64_0 conda-forge libxml2 2.11.6 hc3477c8_0 conda-forge libzlib 1.2.13 hcfcfb64_5 conda-forge markupsafe 2.1.3 py311ha68e1ae_1 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mistune 3.0.2 pyhd8ed1ab_0 conda-forge mkl 2023.2.0 h6a75c08_50497 conda-forge msgpack-python 1.0.7 py311h005e61a_0 conda-forge nbclassic 1.0.0 pyhb4ecaf3_1 conda-forge nbclient 0.8.0 pyhd8ed1ab_0 conda-forge nbconvert 7.11.0 pyhd8ed1ab_0 conda-forge nbconvert-core 7.11.0 pyhd8ed1ab_0 conda-forge nbconvert-pandoc 7.11.0 pyhd8ed1ab_0 conda-forge nbformat 5.9.2 pyhd8ed1ab_0 conda-forge nest-asyncio 1.5.8 pyhd8ed1ab_0 conda-forge notebook 6.5.6 pyha770c72_0 conda-forge notebook-shim 0.2.3 pyhd8ed1ab_0 conda-forge numpy 1.26.2 py311h0b4df5a_0 conda-forge openssl 3.2.0 hcfcfb64_1 conda-forge overrides 7.4.0 pyhd8ed1ab_0 conda-forge packaging 23.2 pyhd8ed1ab_0 conda-forge pandoc 3.1.3 h57928b3_0 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge pickleshare 0.7.5 py_1003 conda-forge pip 23.3.1 pyhd8ed1ab_0 conda-forge pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge platformdirs 4.0.0 pyhd8ed1ab_0 conda-forge prometheus_client 0.19.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.41 pyha770c72_0 conda-forge psutil 5.9.5 py311ha68e1ae_1 conda-forge pthreads-win32 2.9.1 hfa6e2cd_3 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pygments 2.17.2 pyhd8ed1ab_0 conda-forge pysocks 1.7.1 pyh0701188_6 conda-forge python 3.11.6 h2628c8c_0_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-fastjsonschema 2.19.0 pyhd8ed1ab_0 conda-forge python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge python_abi 3.11 4_cp311 conda-forge pytz 2023.3.post1 pyhd8ed1ab_0 conda-forge pywin32 306 py311h12c1d0e_2 conda-forge pywinpty 2.0.12 py311h12c1d0e_0 conda-forge pyyaml 6.0.1 py311ha68e1ae_1 conda-forge pyzmq 24.0.1 py311h7b3f143_1 conda-forge referencing 0.31.1 pyhd8ed1ab_0 conda-forge requests 2.31.0 pyhd8ed1ab_0 conda-forge rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge rpds-py 0.13.2 py311hc37eb10_0 conda-forge send2trash 1.8.2 pyh08f2357_0 conda-forge setuptools 68.2.2 pyhd8ed1ab_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge sniffio 1.3.0 pyhd8ed1ab_0 conda-forge soupsieve 2.5 pyhd8ed1ab_1 conda-forge stack_data 0.6.2 pyhd8ed1ab_0 conda-forge tbb 2021.10.0 h91493d7_2 conda-forge terminado 0.18.0 pyh5737063_0 conda-forge tinycss2 1.2.1 pyhd8ed1ab_0 conda-forge tk 8.6.13 h5226925_1 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge tornado 6.3.3 py311ha68e1ae_1 conda-forge traitlets 5.14.0 pyhd8ed1ab_0 conda-forge traittypes 0.2.1 pyh9f0ad1d_2 conda-forge types-python-dateutil 2.8.19.14 pyhd8ed1ab_0 conda-forge typing-extensions 4.8.0 hd8ed1ab_0 conda-forge typing_extensions 4.8.0 pyha770c72_0 conda-forge typing_utils 0.1.0 pyhd8ed1ab_0 conda-forge tzdata 2023c h71feb2d_0 conda-forge ucrt 10.0.22621.0 h57928b3_0 conda-forge uri-template 1.3.0 pyhd8ed1ab_0 conda-forge urllib3 2.1.0 pyhd8ed1ab_0 conda-forge vc 14.3 h64f974e_17 conda-forge vc14_runtime 14.36.32532 hdcecf7f_17 conda-forge vs2015_runtime 14.36.32532 h05e6639_17 conda-forge wcwidth 0.2.12 pyhd8ed1ab_0 conda-forge webcolors 1.13 pyhd8ed1ab_0 conda-forge webencodings 0.5.1 pyhd8ed1ab_2 conda-forge websocket-client 1.6.4 pyhd8ed1ab_0 conda-forge wheel 0.42.0 pyhd8ed1ab_0 conda-forge widgetsnbextension 3.6.6 pyhd8ed1ab_0 conda-forge win_inet_pton 1.1.0 pyhd8ed1ab_6 conda-forge winpty 0.4.3 4 conda-forge xz 5.2.6 h8d14728_0 conda-forge y-py 0.5.9 py311hc37eb10_0 conda-forge yaml 0.2.5 h8ffe710_2 conda-forge ypy-websocket 0.8.2 pyhd8ed1ab_0 conda-forge zeromq 4.3.4 h0e60522_1 conda-forge zipp 3.17.0 pyhd8ed1ab_0 conda-forge ```

Here is the diff between both environments (old=2.14.5, new=2.15.3)

   - jsonschema=4.20.0
   - jsonschema-specifications=2023.11.1
   - jsonschema-with-format-nongpl=4.20.0
-  - jupyter_client=8.6.0
+  - jupyter_client=7.4.9
   - jupyter_core=5.5.0
   - jupyter_events=0.9.0
   - jupyter_server=2.11.1
@@ -60,7 +60,7 @@ dependencies:
   - jupyterlab_pygments=0.3.0
   - jupyterlab_server=2.25.2
   - jupyterlab_widgets=1.1.7
-  - k3d=2.14.5
+  - k3d=2.15.3
   - libblas=3.9.0
   - libcblas=3.9.0
   - libexpat=2.5.0
@@ -84,7 +84,7 @@ dependencies:
   - nbconvert-pandoc=7.11.0
   - nbformat=5.9.2
   - nest-asyncio=1.5.8
-  - notebook=6.5.4
+  - notebook=6.5.6
   - notebook-shim=0.2.3
   - numpy=1.26.2
   - openssl=3.2.0
@@ -114,7 +114,7 @@ dependencies:
   - pywin32=306
   - pywinpty=2.0.12
   - pyyaml=6.0.1
-  - pyzmq=25.1.1
+  - pyzmq=24.0.1
   - referencing=0.31.1
   - requests=2.31.0
   - rfc3339-validator=0.1.4
@@ -132,7 +132,7 @@ dependencies:
   - tk=8.6.13
   - tomli=2.0.1
   - tornado=6.3.3
-  - traitlets=5.9.0
+  - traitlets=5.14.0
   - traittypes=0.2.1
   - types-python-dateutil=2.8.19.14
   - typing-extensions=4.8.0
@@ -157,6 +157,6 @@ dependencies:
   - y-py=0.5.9
   - yaml=0.2.5
   - ypy-websocket=0.8.2
-  - zeromq=4.3.5
+  - zeromq=4.3.4
   - zipp=3.17.0
CagtayFabry commented 7 months ago

The following simple environment works with version 2.15.2 (using ipywidgets=8.1.1)

name: k3d
channels:
  - conda-forge
dependencies:
  - jupyterlab=3.6
  - k3d=2.15.2
conda list ``` # # Name Version Build Channel aiofiles 22.1.0 pyhd8ed1ab_0 conda-forge aiosqlite 0.19.0 pyhd8ed1ab_0 conda-forge anyio 4.1.0 pyhd8ed1ab_0 conda-forge argon2-cffi 23.1.0 pyhd8ed1ab_0 conda-forge argon2-cffi-bindings 21.2.0 py311ha68e1ae_4 conda-forge arrow 1.3.0 pyhd8ed1ab_0 conda-forge asttokens 2.4.1 pyhd8ed1ab_0 conda-forge attrs 23.1.0 pyh71513ae_1 conda-forge babel 2.13.1 pyhd8ed1ab_0 conda-forge beautifulsoup4 4.12.2 pyha770c72_0 conda-forge bleach 6.1.0 pyhd8ed1ab_0 conda-forge brotli-python 1.1.0 py311h12c1d0e_1 conda-forge bzip2 1.0.8 hcfcfb64_5 conda-forge ca-certificates 2023.11.17 h56e8100_0 conda-forge cached-property 1.5.2 hd8ed1ab_1 conda-forge cached_property 1.5.2 pyha770c72_1 conda-forge certifi 2023.11.17 pyhd8ed1ab_0 conda-forge cffi 1.16.0 py311ha68e1ae_0 conda-forge charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge comm 0.1.4 pyhd8ed1ab_0 conda-forge debugpy 1.8.0 py311h12c1d0e_1 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge entrypoints 0.4 pyhd8ed1ab_0 conda-forge exceptiongroup 1.2.0 pyhd8ed1ab_0 conda-forge executing 2.0.1 pyhd8ed1ab_0 conda-forge fqdn 1.5.1 pyhd8ed1ab_0 conda-forge idna 3.6 pyhd8ed1ab_0 conda-forge importlib-metadata 6.8.0 pyha770c72_0 conda-forge importlib_metadata 6.8.0 hd8ed1ab_0 conda-forge importlib_resources 6.1.1 pyhd8ed1ab_0 conda-forge intel-openmp 2023.2.0 h57928b3_50497 conda-forge ipykernel 6.26.0 pyha63f2e9_0 conda-forge ipython 8.18.1 pyh5737063_1 conda-forge ipython_genutils 0.2.0 py_1 conda-forge ipywidgets 8.1.1 pyhd8ed1ab_0 conda-forge isoduration 20.11.0 pyhd8ed1ab_0 conda-forge jedi 0.19.1 pyhd8ed1ab_0 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge json5 0.9.14 pyhd8ed1ab_0 conda-forge jsonpointer 2.4 py311h1ea47a8_3 conda-forge jsonschema 4.20.0 pyhd8ed1ab_0 conda-forge jsonschema-specifications 2023.11.1 pyhd8ed1ab_0 conda-forge jsonschema-with-format-nongpl 4.20.0 pyhd8ed1ab_0 conda-forge jupyter_client 7.4.9 pyhd8ed1ab_0 conda-forge jupyter_core 5.5.0 py311h1ea47a8_0 conda-forge jupyter_events 0.9.0 pyhd8ed1ab_0 conda-forge jupyter_server 2.11.1 pyhd8ed1ab_0 conda-forge jupyter_server_fileid 0.9.0 pyhd8ed1ab_0 conda-forge jupyter_server_terminals 0.4.4 pyhd8ed1ab_1 conda-forge jupyter_server_ydoc 0.8.0 pyhd8ed1ab_0 conda-forge jupyter_ydoc 0.2.4 pyhd8ed1ab_0 conda-forge jupyterlab 3.6.6 pyhd8ed1ab_0 conda-forge jupyterlab_pygments 0.3.0 pyhd8ed1ab_0 conda-forge jupyterlab_server 2.25.2 pyhd8ed1ab_0 conda-forge jupyterlab_widgets 3.0.9 pyhd8ed1ab_0 conda-forge k3d 2.15.2 pyhd8ed1ab_0 conda-forge libblas 3.9.0 20_win64_mkl conda-forge libcblas 3.9.0 20_win64_mkl conda-forge libexpat 2.5.0 h63175ca_1 conda-forge libffi 3.4.2 h8ffe710_5 conda-forge libhwloc 2.9.3 default_haede6df_1009 conda-forge libiconv 1.17 h8ffe710_0 conda-forge liblapack 3.9.0 20_win64_mkl conda-forge libsodium 1.0.18 h8d14728_1 conda-forge libsqlite 3.44.2 hcfcfb64_0 conda-forge libxml2 2.11.6 hc3477c8_0 conda-forge libzlib 1.2.13 hcfcfb64_5 conda-forge markupsafe 2.1.3 py311ha68e1ae_1 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mistune 3.0.2 pyhd8ed1ab_0 conda-forge mkl 2023.2.0 h6a75c08_50497 conda-forge msgpack-python 1.0.7 py311h005e61a_0 conda-forge nbclassic 1.0.0 pyhb4ecaf3_1 conda-forge nbclient 0.8.0 pyhd8ed1ab_0 conda-forge nbconvert 7.11.0 pyhd8ed1ab_0 conda-forge nbconvert-core 7.11.0 pyhd8ed1ab_0 conda-forge nbconvert-pandoc 7.11.0 pyhd8ed1ab_0 conda-forge nbformat 5.9.2 pyhd8ed1ab_0 conda-forge nest-asyncio 1.5.8 pyhd8ed1ab_0 conda-forge notebook 6.5.6 pyha770c72_0 conda-forge notebook-shim 0.2.3 pyhd8ed1ab_0 conda-forge numpy 1.26.2 py311h0b4df5a_0 conda-forge openssl 3.2.0 hcfcfb64_1 conda-forge overrides 7.4.0 pyhd8ed1ab_0 conda-forge packaging 23.2 pyhd8ed1ab_0 conda-forge pandoc 3.1.3 h57928b3_0 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge pickleshare 0.7.5 py_1003 conda-forge pip 23.3.1 pyhd8ed1ab_0 conda-forge pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge platformdirs 4.0.0 pyhd8ed1ab_0 conda-forge prometheus_client 0.19.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.41 pyha770c72_0 conda-forge psutil 5.9.5 py311ha68e1ae_1 conda-forge pthreads-win32 2.9.1 hfa6e2cd_3 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pygments 2.17.2 pyhd8ed1ab_0 conda-forge pysocks 1.7.1 pyh0701188_6 conda-forge python 3.11.6 h2628c8c_0_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-fastjsonschema 2.19.0 pyhd8ed1ab_0 conda-forge python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge python_abi 3.11 4_cp311 conda-forge pytz 2023.3.post1 pyhd8ed1ab_0 conda-forge pywin32 306 py311h12c1d0e_2 conda-forge pywinpty 2.0.12 py311h12c1d0e_0 conda-forge pyyaml 6.0.1 py311ha68e1ae_1 conda-forge pyzmq 24.0.1 py311h7b3f143_1 conda-forge referencing 0.31.1 pyhd8ed1ab_0 conda-forge requests 2.31.0 pyhd8ed1ab_0 conda-forge rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge rpds-py 0.13.2 py311hc37eb10_0 conda-forge send2trash 1.8.2 pyh08f2357_0 conda-forge setuptools 68.2.2 pyhd8ed1ab_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge sniffio 1.3.0 pyhd8ed1ab_0 conda-forge soupsieve 2.5 pyhd8ed1ab_1 conda-forge stack_data 0.6.2 pyhd8ed1ab_0 conda-forge tbb 2021.10.0 h91493d7_2 conda-forge terminado 0.18.0 pyh5737063_0 conda-forge tinycss2 1.2.1 pyhd8ed1ab_0 conda-forge tk 8.6.13 h5226925_1 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge tornado 6.3.3 py311ha68e1ae_1 conda-forge traitlets 5.14.0 pyhd8ed1ab_0 conda-forge traittypes 0.2.1 pyh9f0ad1d_2 conda-forge types-python-dateutil 2.8.19.14 pyhd8ed1ab_0 conda-forge typing-extensions 4.8.0 hd8ed1ab_0 conda-forge typing_extensions 4.8.0 pyha770c72_0 conda-forge typing_utils 0.1.0 pyhd8ed1ab_0 conda-forge tzdata 2023c h71feb2d_0 conda-forge ucrt 10.0.22621.0 h57928b3_0 conda-forge uri-template 1.3.0 pyhd8ed1ab_0 conda-forge urllib3 2.1.0 pyhd8ed1ab_0 conda-forge vc 14.3 h64f974e_17 conda-forge vc14_runtime 14.36.32532 hdcecf7f_17 conda-forge vs2015_runtime 14.36.32532 h05e6639_17 conda-forge wcwidth 0.2.12 pyhd8ed1ab_0 conda-forge webcolors 1.13 pyhd8ed1ab_0 conda-forge webencodings 0.5.1 pyhd8ed1ab_2 conda-forge websocket-client 1.6.4 pyhd8ed1ab_0 conda-forge wheel 0.42.0 pyhd8ed1ab_0 conda-forge widgetsnbextension 4.0.9 pyhd8ed1ab_0 conda-forge win_inet_pton 1.1.0 pyhd8ed1ab_6 conda-forge winpty 0.4.3 4 conda-forge xz 5.2.6 h8d14728_0 conda-forge y-py 0.5.9 py311hc37eb10_0 conda-forge yaml 0.2.5 h8ffe710_2 conda-forge ypy-websocket 0.8.2 pyhd8ed1ab_0 conda-forge zeromq 4.3.4 h0e60522_1 conda-forge zipp 3.17.0 pyhd8ed1ab_0 conda-forge ```

So I am wondering what changed in 2.15.3?

artur-trzesiok commented 6 months ago

Hi @CagtayFabry

Thanks for spoting it. I'm starting a investigation

artur-trzesiok commented 6 months ago

seems that this is regression during:

Click callback functions #409 Implementing click_callback Functionality(Lack of clarity/focused example script) #408

artur-trzesiok commented 6 months ago

Hi! Please check https://pypi.org/project/k3d/2.16.1/ :)

CagtayFabry commented 6 months ago

Hi! Please check https://pypi.org/project/k3d/2.16.1/ :)

just installed it, callbacks working now with 2.16.1, thank you for the quick fix ! 🚀