jupyter-widgets / ipywidgets

Interactive Widgets for the Jupyter Notebook
https://ipywidgets.readthedocs.io
BSD 3-Clause "New" or "Revised" License
3.17k stars 949 forks source link

Inconsistent values when setting FloatSlider through code multiple times #3951

Open zyzzyxdonta opened 2 months ago

zyzzyxdonta commented 2 months ago

Description

When setting and getting a slider's value multiple times, the values are inconsistent.

inconsistency.webm

Reproduce

FloatSlider.ipynb.txt

  1. Create a new environment and install jupyter and ipywidgets: python -m venv .; source bin/activate; python -m pip install jupyter ipywidgets
  2. Run Jupyter notebook attached to this bug report: jupyter notebook Floatslider.ipynb. Evaluate all cells.
  3. Click button to change the widget value to 0.7000001. Print the value of the slider: It shows 0.7.
  4. Click button again. Print the value again. This time it shows 0.7000001 as expected.

Expected behavior

The widget holds the same value every time.

Context

Troubleshoot Output
$PATH:
        /tmp/tmp.iTKG16rSSR/bin
        /home/me/.local/bin
        /usr/local/bin
        /usr/bin
        /bin
        /usr/local/sbin
        /usr/sbin
        /sbin

sys.path:
        /tmp/tmp.iTKG16rSSR/bin
        /usr/lib64/python312.zip
        /usr/lib64/python3.12
        /usr/lib64/python3.12/lib-dynload
        /tmp/tmp.iTKG16rSSR/lib64/python3.12/site-packages
        /tmp/tmp.iTKG16rSSR/lib/python3.12/site-packages

sys.executable:
        /tmp/tmp.iTKG16rSSR/bin/python

sys.version:
        3.12.5 (main, Aug 23 2024, 00:00:00) [GCC 14.2.1 20240801 (Red Hat 14.2.1-1)]

platform.platform():
        Linux-6.10.9-200.fc40.x86_64-x86_64-with-glibc2.39

which -a jupyter:
        /tmp/tmp.iTKG16rSSR/bin/jupyter
        /usr/bin/jupyter
        /bin/jupyter

pip list:
        Package                   Version
        ------------------------- --------------
        anyio                     4.4.0
        argon2-cffi               23.1.0
        argon2-cffi-bindings      21.2.0
        arrow                     1.3.0
        asttokens                 2.4.1
        async-lru                 2.0.4
        attrs                     24.2.0
        babel                     2.16.0
        beautifulsoup4            4.12.3
        bleach                    6.1.0
        certifi                   2024.8.30
        cffi                      1.17.1
        charset-normalizer        3.3.2
        comm                      0.2.2
        debugpy                   1.8.5
        decorator                 5.1.1
        defusedxml                0.7.1
        executing                 2.1.0
        fastjsonschema            2.20.0
        fqdn                      1.5.1
        h11                       0.14.0
        httpcore                  1.0.5
        httpx                     0.27.2
        idna                      3.10
        ipykernel                 6.29.5
        ipython                   8.27.0
        ipywidgets                8.1.5
        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.1.1
        jupyter_client            8.6.3
        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.5
        jupyterlab_pygments       0.3.0
        jupyterlab_server         2.27.3
        jupyterlab_widgets        3.0.13
        MarkupSafe                2.1.5
        matplotlib-inline         0.1.7
        mistune                   3.0.2
        nbclient                  0.10.0
        nbconvert                 7.16.4
        nbformat                  5.10.4
        nest-asyncio              1.6.0
        notebook                  7.2.2
        notebook_shim             0.2.4
        overrides                 7.7.0
        packaging                 24.1
        pandocfilters             1.5.1
        parso                     0.8.4
        pexpect                   4.9.0
        pip                       23.3.2
        platformdirs              4.3.6
        prometheus_client         0.20.0
        prompt_toolkit            3.0.47
        psutil                    6.0.0
        ptyprocess                0.7.0
        pure_eval                 0.2.3
        pycparser                 2.22
        Pygments                  2.18.0
        python-dateutil           2.9.0.post0
        python-json-logger        2.0.7
        PyYAML                    6.0.2
        pyzmq                     26.2.0
        referencing               0.35.1
        requests                  2.32.3
        rfc3339-validator         0.1.4
        rfc3986-validator         0.1.1
        rpds-py                   0.20.0
        Send2Trash                1.8.3
        setuptools                75.1.0
        six                       1.16.0
        sniffio                   1.3.1
        soupsieve                 2.6
        stack-data                0.6.3
        terminado                 0.18.1
        tinycss2                  1.3.0
        tornado                   6.4.1
        traitlets                 5.14.3
        types-python-dateutil     2.9.0.20240906
        uri-template              1.3.0
        urllib3                   2.2.3
        wcwidth                   0.2.13
        webcolors                 24.8.0
        webencodings              0.5.1
        websocket-client          1.8.0
        widgetsnbextension        4.0.13
Command Line Output
Nothing interesting
Browser Output
Nothing interesting