diff --git a/pyproject.toml b/pyproject.toml index 7bbed679..74cfb1d4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ dynamic = ["version"] [project.optional-dependencies] scipp = ["scipp>=25.5.0"] -all = ["scipp>=25.5.0", "ipympl>0.8.4", "pythreejs>=2.4.1", "mpltoolbox>=24.6.0", "ipywidgets>=8.1.0", "graphviz>=0.20.3"] +all = ["scipp>=25.5.0", "ipympl>0.8.4", "anythreejs>=0.0.1", "mpltoolbox>=24.6.0", "ipywidgets>=8.1.0", "graphviz>=0.20.3"] test = [ "graphviz>=0.20.3", "h5py>=3.12", @@ -51,7 +51,7 @@ test = [ "pooch>=1.5", "pyarrow>=13.0.0", "pytest>=7.0", - "pythreejs>=2.4.1", + "anythreejs>=0.0.1", "scipp>=25.5.0", "scipy>=1.10.0", "xarray>=v2024.05.0", diff --git a/requirements/base.txt b/requirements/base.txt index 9ad8a28a..4cd73d36 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -9,15 +9,15 @@ contourpy==1.3.3 # via matplotlib cycler==0.12.1 # via matplotlib -fonttools==4.60.1 +fonttools==4.61.0 # via matplotlib kiwisolver==1.4.9 # via matplotlib lazy-loader==0.4 # via -r base.in -matplotlib==3.10.7 +matplotlib==3.10.8 # via -r base.in -numpy==2.3.4 +numpy==2.3.5 # via # contourpy # matplotlib diff --git a/requirements/basetest.in b/requirements/basetest.in index e2271b5c..a94ec0e1 100644 --- a/requirements/basetest.in +++ b/requirements/basetest.in @@ -11,14 +11,14 @@ graphviz>=0.20.3 h5py>=3.12 ipympl>=0.8.4 ipywidgets>=8.1.0 -ipykernel<7 +ipykernel>=6.26,<7 mpltoolbox>=24.6.0 pandas>=2.2.2 plotly>=5.15.0 pooch>=1.5 pyarrow>=13.0.0 pytest>=7.0 -pythreejs>=2.4.1 +anythreejs>=0.0.1 scipp>=25.5.0 scipy>=1.10.0 xarray>=v2024.05.0 diff --git a/requirements/basetest.txt b/requirements/basetest.txt index b2a11665..299c172f 100644 --- a/requirements/basetest.txt +++ b/requirements/basetest.txt @@ -1,13 +1,19 @@ -# SHA1:eff444d8d041c4eef361a60c609465ef93018436 +# SHA1:f3174c50928061e1447e2514e70d2c25b12b62f4 # # This file was generated by pip-compile-multi. # To update, run: # # requirements upgrade # -anywidget==0.9.21 +anythreejs==0.0.1 # via -r basetest.in -asttokens==3.0.0 +anywidget==0.9.21 + # via + # -r basetest.in + # anythreejs +appnope==0.1.4 + # via ipykernel +asttokens==3.0.1 # via stack-data certifi==2025.11.12 # via requests @@ -21,13 +27,13 @@ contourpy==1.3.3 # via matplotlib cycler==0.12.1 # via matplotlib -debugpy==1.8.17 +debugpy==1.8.18 # via ipykernel decorator==5.2.1 # via ipython executing==2.2.1 # via stack-data -fonttools==4.60.1 +fonttools==4.61.0 # via matplotlib graphviz==0.21 # via -r basetest.in @@ -37,13 +43,11 @@ idna==3.11 # via requests iniconfig==2.3.0 # via pytest -ipydatawidgets==4.3.5 - # via pythreejs ipykernel==6.31.0 # via -r basetest.in ipympl==0.9.8 # via -r basetest.in -ipython==9.7.0 +ipython==9.8.0 # via # ipykernel # ipympl @@ -54,12 +58,10 @@ ipywidgets==8.1.8 # via # -r basetest.in # anywidget - # ipydatawidgets # ipympl - # pythreejs jedi==0.19.2 # via ipython -jupyter-client==8.6.3 +jupyter-client==8.7.0 # via ipykernel jupyter-core==5.9.1 # via @@ -69,7 +71,7 @@ jupyterlab-widgets==3.0.16 # via ipywidgets kiwisolver==1.4.9 # via matplotlib -matplotlib==3.10.7 +matplotlib==3.10.8 # via # ipympl # mpltoolbox @@ -79,19 +81,18 @@ matplotlib-inline==0.2.1 # ipython mpltoolbox==25.10.0 # via -r basetest.in -narwhals==2.11.0 +narwhals==2.13.0 # via plotly nest-asyncio==1.6.0 # via ipykernel -numpy==2.3.4 +numpy==2.3.5 # via + # anythreejs # contourpy # h5py - # ipydatawidgets # ipympl # matplotlib # pandas - # pythreejs # scipp # scipy # xarray @@ -115,11 +116,11 @@ pillow==12.0.0 # via # ipympl # matplotlib -platformdirs==4.5.0 +platformdirs==4.5.1 # via # jupyter-core # pooch -plotly==6.4.0 +plotly==6.5.0 # via -r basetest.in pluggy==1.6.0 # via pytest @@ -144,15 +145,13 @@ pygments==2.19.2 # pytest pyparsing==3.2.5 # via matplotlib -pytest==9.0.1 +pytest==9.0.2 # via -r basetest.in python-dateutil==2.9.0.post0 # via # jupyter-client # matplotlib # pandas -pythreejs==2.4.2 - # via -r basetest.in pytz==2025.2 # via pandas pyzmq==27.1.0 @@ -169,12 +168,13 @@ six==1.17.0 # via python-dateutil stack-data==0.6.3 # via ipython -tornado==6.5.2 +tornado==6.5.3 # via # ipykernel # jupyter-client traitlets==5.14.3 # via + # anythreejs # ipykernel # ipympl # ipython @@ -182,21 +182,15 @@ traitlets==5.14.3 # jupyter-client # jupyter-core # matplotlib-inline - # pythreejs - # traittypes -traittypes==0.2.3 - # via ipydatawidgets typing-extensions==4.15.0 - # via - # anywidget - # ipython + # via anywidget tzdata==2025.2 # via pandas -urllib3==2.5.0 +urllib3==2.6.2 # via requests wcwidth==0.2.14 # via prompt-toolkit widgetsnbextension==4.0.15 # via ipywidgets -xarray==2025.10.1 +xarray==2025.12.0 # via -r basetest.in diff --git a/requirements/ci.txt b/requirements/ci.txt index 4b49511f..61709049 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -32,7 +32,7 @@ packaging==25.0 # -r ci.in # pyproject-api # tox -platformdirs==4.5.0 +platformdirs==4.5.1 # via # tox # virtualenv @@ -46,7 +46,7 @@ smmap==5.0.2 # via gitdb tox==4.32.0 # via -r ci.in -urllib3==2.5.0 +urllib3==2.6.2 # via requests virtualenv==20.35.4 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index b881c6a0..b2b78c20 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -12,7 +12,7 @@ -r static.txt -r test.txt -r wheels.txt -anyio==4.11.0 +anyio==4.12.0 # via # httpx # jupyter-server @@ -26,11 +26,11 @@ async-lru==2.0.5 # via jupyterlab cffi==2.0.0 # via argon2-cffi-bindings -click==8.3.0 +click==8.3.1 # via # pip-compile-multi # pip-tools -copier==9.10.3 +copier==9.11.0 # via -r dev.in dunamai==1.25.0 # via copier @@ -69,7 +69,7 @@ jupyter-server==2.17.0 # notebook-shim jupyter-server-terminals==0.5.3 # via jupyter-server -jupyterlab==4.4.10 +jupyterlab==4.5.0 # via -r dev.in jupyterlab-server==2.28.0 # via jupyterlab @@ -77,8 +77,6 @@ lark==1.3.1 # via rfc3987-syntax notebook-shim==0.2.4 # via jupyterlab -overrides==7.7.0 - # via jupyter-server pip-compile-multi==3.2.2 # via -r dev.in pip-tools==7.5.2 @@ -105,8 +103,6 @@ rfc3987-syntax==1.1.0 # via jsonschema send2trash==1.8.3 # via jupyter-server -sniffio==1.3.1 - # via anyio terminado==0.18.1 # via # jupyter-server diff --git a/requirements/docs.txt b/requirements/docs.txt index c05fd23d..a012d10b 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -23,7 +23,7 @@ babel==2.17.0 # via # pydata-sphinx-theme # sphinx -beautifulsoup4==4.14.2 +beautifulsoup4==4.14.3 # via # nbconvert # pydata-sphinx-theme @@ -82,11 +82,11 @@ nbformat==5.10.4 # nbclient # nbconvert # nbsphinx -nbsphinx==0.9.7 +nbsphinx==0.9.8 # via -r docs.in pandocfilters==1.5.1 # via nbconvert -pydantic==2.12.4 +pydantic==2.12.5 # via # autodoc-pydantic # pydantic-settings @@ -104,7 +104,9 @@ referencing==0.37.0 # via # jsonschema # jsonschema-specifications -rpds-py==0.28.0 +roman-numerals-py==3.1.0 + # via sphinx +rpds-py==0.30.0 # via # jsonschema # referencing @@ -114,7 +116,7 @@ snowballstemmer==3.0.1 # via sphinx soupsieve==2.8 # via beautifulsoup4 -sphinx==8.1.3 +sphinx==8.2.3 # via # -r docs.in # autodoc-pydantic @@ -125,13 +127,13 @@ sphinx==8.1.3 # sphinx-copybutton # sphinx-design # sphinx-gallery -sphinx-autodoc-typehints==3.0.1 +sphinx-autodoc-typehints==3.5.2 # via -r docs.in sphinx-copybutton==0.5.2 # via -r docs.in sphinx-design==0.6.1 # via -r docs.in -sphinx-gallery==0.19.0 +sphinx-gallery==0.20.0 # via -r docs.in sphinxcontrib-applehelp==2.0.0 # via sphinx diff --git a/requirements/mypy.txt b/requirements/mypy.txt index 088d0c28..67ba9295 100644 --- a/requirements/mypy.txt +++ b/requirements/mypy.txt @@ -6,7 +6,9 @@ # requirements upgrade # -r test.txt -mypy==1.18.2 +librt==0.7.3 + # via mypy +mypy==1.19.0 # via -r mypy.in mypy-extensions==1.1.0 # via mypy diff --git a/requirements/nightly.in b/requirements/nightly.in index ebad52fc..9dd34a92 100644 --- a/requirements/nightly.in +++ b/requirements/nightly.in @@ -7,14 +7,14 @@ graphviz>=0.20.3 h5py>=3.12 ipympl>=0.8.4 ipywidgets>=8.1.0 -ipykernel<7 +ipykernel>=6.26,<7 mpltoolbox>=24.6.0 pandas>=2.2.2 plotly>=5.15.0 pooch>=1.5 pyarrow>=13.0.0 pytest>=7.0 -pythreejs>=2.4.1 +anythreejs>=0.0.1 scipy>=1.10.0 xarray>=v2024.05.0 anywidget>=0.9.0 diff --git a/requirements/nightly.txt b/requirements/nightly.txt index af8f119a..e6b7e71c 100644 --- a/requirements/nightly.txt +++ b/requirements/nightly.txt @@ -1,4 +1,4 @@ -# SHA1:82f8612a176d2476402910ca1e4c454190b21b86 +# SHA1:564e8cc29358cc7e246832e3e247e576d31335bb # # This file was generated by pip-compile-multi. # To update, run: @@ -8,9 +8,15 @@ --index-url https://pypi.anaconda.org/scipp-nightly-wheels/simple/ --extra-index-url https://pypi.org/simple -anywidget==0.9.21 +anythreejs==0.0.1 # via -r nightly.in -asttokens==3.0.0 +anywidget==0.9.21 + # via + # -r nightly.in + # anythreejs +appnope==0.1.4 + # via ipykernel +asttokens==3.0.1 # via stack-data certifi==2025.11.12 # via requests @@ -24,13 +30,13 @@ contourpy==1.3.3 # via matplotlib cycler==0.12.1 # via matplotlib -debugpy==1.8.17 +debugpy==1.8.18 # via ipykernel decorator==5.2.1 # via ipython executing==2.2.1 # via stack-data -fonttools==4.60.1 +fonttools==4.61.0 # via matplotlib graphviz==0.21 # via -r nightly.in @@ -40,13 +46,11 @@ idna==3.11 # via requests iniconfig==2.3.0 # via pytest -ipydatawidgets==4.3.5 - # via pythreejs ipykernel==6.31.0 # via -r nightly.in ipympl==0.9.8 # via -r nightly.in -ipython==9.7.0 +ipython==9.8.0 # via # ipykernel # ipympl @@ -57,12 +61,10 @@ ipywidgets==8.1.8 # via # -r nightly.in # anywidget - # ipydatawidgets # ipympl - # pythreejs jedi==0.19.2 # via ipython -jupyter-client==8.6.3 +jupyter-client==8.7.0 # via ipykernel jupyter-core==5.9.1 # via @@ -74,7 +76,7 @@ kiwisolver==1.4.10rc0 # via matplotlib lazy-loader==0.4 # via -r nightly.in -matplotlib==3.10.7 +matplotlib==3.10.8 # via # -r nightly.in # ipympl @@ -85,19 +87,18 @@ matplotlib-inline==0.2.1 # ipython mpltoolbox==25.10.0 # via -r nightly.in -narwhals==2.11.0 +narwhals==2.13.0 # via plotly nest-asyncio==1.6.0 # via ipykernel -numpy==2.3.4 +numpy==2.4.0rc1 # via + # anythreejs # contourpy # h5py - # ipydatawidgets # ipympl # matplotlib # pandas - # pythreejs # scipp # scipy # xarray @@ -110,7 +111,7 @@ packaging==25.0 # pooch # pytest # xarray -pandas==2.3.3 +pandas==3.0.0rc0 # via # -r nightly.in # xarray @@ -122,11 +123,11 @@ pillow==12.0.0 # via # ipympl # matplotlib -platformdirs==4.5.0 +platformdirs==4.5.1 # via # jupyter-core # pooch -plotly==6.4.0 +plotly==6.5.0 # via -r nightly.in pluggy==1.6.0 # via pytest @@ -149,19 +150,15 @@ pygments==2.19.2 # ipython # ipython-pygments-lexers # pytest -pyparsing==3.3.0a1 +pyparsing==3.3.0b1 # via matplotlib -pytest==9.0.1 +pytest==9.0.2 # via -r nightly.in python-dateutil==2.9.0.post0 # via # jupyter-client # matplotlib # pandas -pythreejs==2.4.2 - # via -r nightly.in -pytz==2025.2 - # via pandas pyzmq==27.1.0 # via # ipykernel @@ -170,18 +167,19 @@ requests==2.32.5 # via pooch scipp==100.0.0.dev0 # via -r nightly.in -scipy==1.16.3 +scipy==1.17.0rc1 # via -r nightly.in six==1.17.0 # via python-dateutil stack-data==0.6.3 # via ipython -tornado==6.5.2 +tornado==6.5.3 # via # ipykernel # jupyter-client traitlets==5.14.3 # via + # anythreejs # ipykernel # ipympl # ipython @@ -189,21 +187,15 @@ traitlets==5.14.3 # jupyter-client # jupyter-core # matplotlib-inline - # pythreejs - # traittypes -traittypes==0.2.3 - # via ipydatawidgets typing-extensions==4.15.0 - # via - # anywidget - # ipython + # via anywidget tzdata==2025.2 # via pandas -urllib3==2.5.0 +urllib3==2.6.2 # via requests wcwidth==0.2.14 # via prompt-toolkit widgetsnbextension==4.0.15 # via ipywidgets -xarray==2025.10.1 +xarray==2025.12.0 # via -r nightly.in diff --git a/requirements/static.txt b/requirements/static.txt index 6e237b24..2a110d83 100644 --- a/requirements/static.txt +++ b/requirements/static.txt @@ -5,7 +5,7 @@ # # requirements upgrade # -cfgv==3.4.0 +cfgv==3.5.0 # via pre-commit distlib==0.4.0 # via virtualenv @@ -15,9 +15,9 @@ identify==2.6.15 # via pre-commit nodeenv==1.9.1 # via pre-commit -platformdirs==4.5.0 +platformdirs==4.5.1 # via virtualenv -pre-commit==4.4.0 +pre-commit==4.5.0 # via -r static.in pyyaml==6.0.3 # via pre-commit diff --git a/src/plopp/backends/pythreejs/canvas.py b/src/plopp/backends/pythreejs/canvas.py index 4701d6f5..e941fca8 100644 --- a/src/plopp/backends/pythreejs/canvas.py +++ b/src/plopp/backends/pythreejs/canvas.py @@ -40,7 +40,7 @@ def __init__( camera: Camera | None = None, **ignored, ): - import pythreejs as p3 + import anythreejs as p3 self.dims = {} self.units = {} diff --git a/src/plopp/backends/pythreejs/mesh3d.py b/src/plopp/backends/pythreejs/mesh3d.py index 6f4e0332..1e5277a8 100644 --- a/src/plopp/backends/pythreejs/mesh3d.py +++ b/src/plopp/backends/pythreejs/mesh3d.py @@ -59,7 +59,7 @@ def __init__( artist_number: int = 0, **ignored, ): - import pythreejs as p3 + import anythreejs as p3 self.uid = uid if uid is not None else uuid.uuid4().hex self._data = data diff --git a/src/plopp/backends/pythreejs/outline.py b/src/plopp/backends/pythreejs/outline.py index 3f59afb1..bd61994e 100644 --- a/src/plopp/backends/pythreejs/outline.py +++ b/src/plopp/backends/pythreejs/outline.py @@ -2,8 +2,8 @@ # Copyright (c) 2023 Scipp contributors (https://github.com/scipp) +import anythreejs as p3 import numpy as np -import pythreejs as p3 from matplotlib import ticker from scipp import Variable diff --git a/src/plopp/backends/pythreejs/scatter3d.py b/src/plopp/backends/pythreejs/scatter3d.py index d532e1c1..85fec9f0 100644 --- a/src/plopp/backends/pythreejs/scatter3d.py +++ b/src/plopp/backends/pythreejs/scatter3d.py @@ -66,7 +66,7 @@ def __init__( pixel_size: sc.Variable | float | None = None, mask_color: str | None = None, ): - import pythreejs as p3 + import anythreejs as p3 check_ndim(data, ndim=1, origin='Scatter3d') self.uid = uid if uid is not None else uuid.uuid4().hex diff --git a/src/plopp/widgets/clip3d.py b/src/plopp/widgets/clip3d.py index cb414ab3..648745cb 100644 --- a/src/plopp/widgets/clip3d.py +++ b/src/plopp/widgets/clip3d.py @@ -79,7 +79,7 @@ def __init__( width = (self._limits[w_axis][1] - self._limits[w_axis][0]).value height = (self._limits[h_axis][1] - self._limits[h_axis][0]).value - import pythreejs as p3 + import anythreejs as p3 self.outlines = [ p3.LineSegments(