plopp 25.7.1__tar.gz → 25.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {plopp-25.7.1 → plopp-25.9.0}/.copier-answers.yml +2 -2
- plopp-25.9.0/.github/workflows/python-version-ci +1 -0
- {plopp-25.7.1 → plopp-25.9.0}/.github/workflows/release.yml +2 -2
- {plopp-25.7.1 → plopp-25.9.0}/.pre-commit-config.yaml +0 -1
- plopp-25.9.0/.python-version +1 -0
- {plopp-25.7.1 → plopp-25.9.0}/PKG-INFO +3 -4
- plopp-25.9.0/docs/customization/animations.ipynb +241 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/customization/index.md +7 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/developer/getting-started.md +1 -1
- {plopp-25.7.1 → plopp-25.9.0}/docs/index.md +4 -0
- {plopp-25.7.1 → plopp-25.9.0}/pyproject.toml +2 -3
- {plopp-25.7.1 → plopp-25.9.0}/requirements/base.txt +5 -5
- {plopp-25.7.1 → plopp-25.9.0}/requirements/basetest.in +1 -1
- {plopp-25.7.1 → plopp-25.9.0}/requirements/basetest.txt +16 -21
- {plopp-25.7.1 → plopp-25.9.0}/requirements/ci.txt +5 -11
- {plopp-25.7.1 → plopp-25.9.0}/requirements/dev.txt +11 -7
- {plopp-25.7.1 → plopp-25.9.0}/requirements/docs.in +1 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/docs.txt +5 -5
- {plopp-25.7.1 → plopp-25.9.0}/requirements/mypy.txt +1 -1
- {plopp-25.7.1 → plopp-25.9.0}/requirements/nightly.in +1 -1
- {plopp-25.7.1 → plopp-25.9.0}/requirements/nightly.txt +15 -20
- {plopp-25.7.1 → plopp-25.9.0}/requirements/static.txt +2 -2
- {plopp-25.7.1 → plopp-25.9.0}/requirements/wheels.txt +1 -3
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/matplotlib/tiled.py +5 -1
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/data/examples.py +3 -1
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/graphics/colormapper.py +40 -10
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/plotting/common.py +8 -2
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/slice.py +2 -3
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp.egg-info/PKG-INFO +3 -4
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp.egg-info/SOURCES.txt +1 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp.egg-info/requires.txt +1 -1
- {plopp-25.7.1 → plopp-25.9.0}/tests/backends/matplotlib/mpl_image_test.py +7 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/plotting/plot_1d_test.py +5 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/plotting/plot_2d_test.py +5 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/widgets/slice_test.py +2 -2
- {plopp-25.7.1 → plopp-25.9.0}/tox.ini +1 -1
- plopp-25.7.1/.github/workflows/python-version-ci +0 -1
- plopp-25.7.1/.python-version +0 -1
- {plopp-25.7.1 → plopp-25.9.0}/.github/dependabot.yml +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/.github/workflows/ci.yml +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/.github/workflows/docs.yml +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/.github/workflows/nightly_at_main.yml +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/.github/workflows/nightly_at_main_lower_bound.yml +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/.github/workflows/nightly_at_release.yml +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/.github/workflows/test.yml +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/.github/workflows/unpinned.yml +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/.github/workflows/weekly_windows_macos.yml +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/.gitignore +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/CODE_OF_CONDUCT.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/CONTRIBUTING.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/LICENSE +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/MANIFEST.in +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/README.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/anaconda-icon.js +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/circle-exclamation.svg +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/custom.css +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/customization/custom-interfaces.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/customization/graph-node-tips.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/customization/subplots.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/customization/tweaking-figures.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/favicon.ico +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/gallery/README.txt +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/gallery/peeling-layers-thumbnail.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/gallery/scatter3d-with-slider-thumbnail.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/gallery/scatter3d-with-threshold-thumbnail.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/logo-dark.svg +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/logo-large-dark.svg +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/logo-large.svg +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/logo.svg +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/plotting/image-plot.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/plotting/inspector-plot.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/plotting/line-plot.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/plotting/mesh3d-plot.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/plotting/scatter-plot.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/plotting/scatter3d-plot.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/plotting/slicer-plot.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_static/plotting/super-plot.png +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_templates/class-template.rst +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_templates/doc_version.html +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_templates/module-template.rst +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_templates/scipp-class-template.rst +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/_templates/scipp-module-template.rst +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/about/index.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/api-reference/index.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/api-reference/matplotlib.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/api-reference/plotly.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/api-reference/pythreejs.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/conf.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/customization/custom-interfaces.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/customization/graph-node-tips.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/customization/subplots.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/customization/tweaking-figures.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/developer/coding-conventions.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/developer/dependency-management.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/developer/index.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/index.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/interactive-masking.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/masking-a-range.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/nyc-taxi.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/peeling-layers.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/polar-plots.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/rectangle-selection.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/scatter3d-with-slider.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/scatter3d-with-threshold.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/streaming-plot.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/tiled-random-samples.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/gallery/updating-scatter.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/getting-started/index.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/getting-started/installation.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/getting-started/numpy-pandas-xarray.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/getting-started/overview.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/getting-started/saving-figures.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/plotting/image-plot.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/plotting/index.md +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/plotting/inspector-plot.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/plotting/line-plot.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/plotting/mesh3d-plot.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/plotting/scatter-plot.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/plotting/scatter3d-plot.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/plotting/slicer-plot.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/docs/plotting/super-plot.ipynb +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/base.in +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/ci.in +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/dev.in +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/make_base.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/mini.in +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/mini.txt +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/mypy.in +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/noplotly.in +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/noplotly.txt +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/static.in +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/test.in +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/test.txt +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/requirements/wheels.in +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/resources/logo-plopp-2022.svg +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/setup.cfg +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/__init__.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/__init__.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/common.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/matplotlib/__init__.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/matplotlib/canvas.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/matplotlib/fast_image.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/matplotlib/figure.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/matplotlib/image.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/matplotlib/line.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/matplotlib/mesh_image.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/matplotlib/scatter.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/matplotlib/utils.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/plotly/__init__.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/plotly/canvas.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/plotly/figure.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/plotly/line.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/pythreejs/__init__.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/pythreejs/canvas.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/pythreejs/figure.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/pythreejs/mesh3d.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/pythreejs/outline.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/backends/pythreejs/scatter3d.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/core/__init__.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/core/__init__.pyi +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/core/graph.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/core/helpers.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/core/limits.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/core/node_class.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/core/typing.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/core/utils.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/core/view.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/data/__init__.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/data/factory.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/data/testing.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/graphics/__init__.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/graphics/__init__.pyi +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/graphics/basefig.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/graphics/bbox.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/graphics/camera.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/graphics/figures.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/graphics/graphicalview.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/graphics/tiled.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/plotting/__init__.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/plotting/__init__.pyi +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/plotting/inspector.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/plotting/mesh3d.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/plotting/plot.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/plotting/scatter.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/plotting/scatter3d.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/plotting/slicer.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/plotting/superplot.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/plotting/xyplot.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/py.typed +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/utils.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/__init__.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/__init__.pyi +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/box.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/checkboxes.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/clip3d.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/debounce.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/drawing.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/linesave.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/style.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/toolbar.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp/widgets/tools.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp.egg-info/dependency_links.txt +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/src/plopp.egg-info/top_level.txt +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/backends/matplotlib/mpl_line_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/backends/matplotlib/mpl_plot_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/backends/matplotlib/mpl_scatter_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/backends/matplotlib/mpl_tiled_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/backends/plotly/conftest.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/backends/plotly/plotly_line_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/backends/pythreejs/pythreejs_canvas_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/backends/pythreejs/pythreejs_scatter3d_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/conftest.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/core/graph_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/core/limits_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/core/node_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/core/utils_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/graphics/artists_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/graphics/canvas_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/graphics/colormapper_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/graphics/figures_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/high_level_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/minimal_plot_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/package_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/plotting/common_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/plotting/inspector_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/plotting/mesh3d_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/plotting/scatter3d_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/plotting/scatter_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/plotting/slicer_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/plotting/superplot_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/plotting/xyplot_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/widgets/box_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/widgets/checkboxes_test.py +0 -0
- {plopp-25.7.1 → plopp-25.9.0}/tests/widgets/clip3d_test.py +0 -0
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
|
|
2
|
-
_commit:
|
|
2
|
+
_commit: c3214e6
|
|
3
3
|
_src_path: https://github.com/scipp/copier_template.git
|
|
4
4
|
description: Visualization library for Scipp
|
|
5
5
|
max_python: '3.13'
|
|
6
|
-
min_python: '3.
|
|
6
|
+
min_python: '3.11'
|
|
7
7
|
namespace_package: ''
|
|
8
8
|
nightly_deps: scipp
|
|
9
9
|
orgname: scipp
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.11
|
|
@@ -33,7 +33,7 @@ jobs:
|
|
|
33
33
|
|
|
34
34
|
upload_pypi:
|
|
35
35
|
name: Deploy PyPI
|
|
36
|
-
needs: build_wheels
|
|
36
|
+
needs: [build_wheels]
|
|
37
37
|
runs-on: 'ubuntu-24.04'
|
|
38
38
|
environment: release
|
|
39
39
|
permissions:
|
|
@@ -44,7 +44,7 @@ jobs:
|
|
|
44
44
|
- uses: pypa/gh-action-pypi-publish@v1.12.4
|
|
45
45
|
|
|
46
46
|
docs:
|
|
47
|
-
needs: upload_pypi
|
|
47
|
+
needs: [upload_pypi]
|
|
48
48
|
uses: ./.github/workflows/docs.yml
|
|
49
49
|
with:
|
|
50
50
|
publish: ${{ github.event_name == 'release' && github.event.action == 'published' }}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.11
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: plopp
|
|
3
|
-
Version: 25.
|
|
3
|
+
Version: 25.9.0
|
|
4
4
|
Summary: Visualization library for Scipp
|
|
5
5
|
Author: Scipp contributors
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -12,13 +12,12 @@ Classifier: Natural Language :: English
|
|
|
12
12
|
Classifier: Operating System :: OS Independent
|
|
13
13
|
Classifier: Programming Language :: Python :: 3
|
|
14
14
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
19
18
|
Classifier: Topic :: Scientific/Engineering
|
|
20
19
|
Classifier: Typing :: Typed
|
|
21
|
-
Requires-Python: >=3.
|
|
20
|
+
Requires-Python: >=3.11
|
|
22
21
|
Description-Content-Type: text/markdown
|
|
23
22
|
License-File: LICENSE
|
|
24
23
|
Requires-Dist: lazy-loader>=0.4
|
|
@@ -41,7 +40,7 @@ Requires-Dist: mpltoolbox>=24.6.0; extra == "test"
|
|
|
41
40
|
Requires-Dist: pandas>=2.2.2; extra == "test"
|
|
42
41
|
Requires-Dist: plotly>=5.15.0; extra == "test"
|
|
43
42
|
Requires-Dist: pooch>=1.5; extra == "test"
|
|
44
|
-
Requires-Dist: pyarrow>=
|
|
43
|
+
Requires-Dist: pyarrow>=13.0.0; extra == "test"
|
|
45
44
|
Requires-Dist: pytest>=7.0; extra == "test"
|
|
46
45
|
Requires-Dist: pythreejs>=2.4.1; extra == "test"
|
|
47
46
|
Requires-Dist: scipp>=25.5.0; extra == "test"
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cells": [
|
|
3
|
+
{
|
|
4
|
+
"cell_type": "markdown",
|
|
5
|
+
"id": "0",
|
|
6
|
+
"metadata": {},
|
|
7
|
+
"source": [
|
|
8
|
+
"# Animations\n",
|
|
9
|
+
"\n",
|
|
10
|
+
"To create animations with Plopp, we make use of the [node mechanism](custom-interfaces.ipynb)\n",
|
|
11
|
+
"and leverage [Matplotlib's support for animations](https://matplotlib.org/stable/users/explain/animations/animations.html).\n",
|
|
12
|
+
"\n",
|
|
13
|
+
"## 1D animations"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"cell_type": "code",
|
|
18
|
+
"execution_count": null,
|
|
19
|
+
"id": "1",
|
|
20
|
+
"metadata": {},
|
|
21
|
+
"outputs": [],
|
|
22
|
+
"source": [
|
|
23
|
+
"import plopp as pp\n",
|
|
24
|
+
"from plopp.data.examples import three_bands\n",
|
|
25
|
+
"import matplotlib.animation as animation"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"cell_type": "markdown",
|
|
30
|
+
"id": "2",
|
|
31
|
+
"metadata": {},
|
|
32
|
+
"source": [
|
|
33
|
+
"We load the data and display it in a figure:"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"cell_type": "code",
|
|
38
|
+
"execution_count": null,
|
|
39
|
+
"id": "3",
|
|
40
|
+
"metadata": {},
|
|
41
|
+
"outputs": [],
|
|
42
|
+
"source": [
|
|
43
|
+
"da = three_bands()\n",
|
|
44
|
+
"da.plot(norm=\"log\")"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"cell_type": "markdown",
|
|
49
|
+
"id": "4",
|
|
50
|
+
"metadata": {},
|
|
51
|
+
"source": [
|
|
52
|
+
"We now create an animation where we are scanning the vertical `y` direction of the data,\n",
|
|
53
|
+
"making a plot of each slice in each step of the animation.\n",
|
|
54
|
+
"\n",
|
|
55
|
+
"On every call to the `update` function passed to Matplotlib's `FuncAnimation`,\n",
|
|
56
|
+
"we update the index node and notify the children nodes of the change.\n",
|
|
57
|
+
"This updates the figure at every step.\n",
|
|
58
|
+
"\n",
|
|
59
|
+
"Finally, we save the animation to a `.gif` file.\n",
|
|
60
|
+
"See [here](https://matplotlib.org/stable/users/explain/animations/animations.html#saving-animations)\n",
|
|
61
|
+
"for the possible formats animations can be saved in."
|
|
62
|
+
]
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"cell_type": "code",
|
|
66
|
+
"execution_count": null,
|
|
67
|
+
"id": "5",
|
|
68
|
+
"metadata": {},
|
|
69
|
+
"outputs": [],
|
|
70
|
+
"source": [
|
|
71
|
+
"data_node = pp.Node(da)\n",
|
|
72
|
+
"index_node = pp.Node(0)\n",
|
|
73
|
+
"# Here, 'y' is the dimension you want to slice\n",
|
|
74
|
+
"slice_node = pp.Node(lambda da, ind: da[\"y\", ind], da=data_node, ind=index_node)\n",
|
|
75
|
+
"\n",
|
|
76
|
+
"f = pp.linefigure(slice_node, vmin=-1, vmax=200)\n",
|
|
77
|
+
"\n",
|
|
78
|
+
"\n",
|
|
79
|
+
"def update(frame):\n",
|
|
80
|
+
" index_node.func = lambda: frame\n",
|
|
81
|
+
" index_node.notify_children(\"\")\n",
|
|
82
|
+
"\n",
|
|
83
|
+
"\n",
|
|
84
|
+
"ani = animation.FuncAnimation(fig=f.fig, func=update, frames=200, interval=100)\n",
|
|
85
|
+
"ani.save(filename=\"animation_1d.gif\", writer=\"pillow\")"
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"cell_type": "markdown",
|
|
90
|
+
"id": "6",
|
|
91
|
+
"metadata": {},
|
|
92
|
+
"source": [
|
|
93
|
+
"### Displaying the animation in the notebook\n",
|
|
94
|
+
"\n",
|
|
95
|
+
"There are (at least) three different ways to display the animation directly in the notebook.\n",
|
|
96
|
+
"\n",
|
|
97
|
+
"#### Markdown\n",
|
|
98
|
+
"\n",
|
|
99
|
+
"The first is to create a markdown cell and just display the image (note that refreshing browser window may be required in some cases):\n",
|
|
100
|
+
"\n",
|
|
101
|
+
"```\n",
|
|
102
|
+
"\n",
|
|
103
|
+
"```"
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"cell_type": "markdown",
|
|
108
|
+
"id": "7",
|
|
109
|
+
"metadata": {},
|
|
110
|
+
"source": [
|
|
111
|
+
""
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"cell_type": "markdown",
|
|
116
|
+
"id": "8",
|
|
117
|
+
"metadata": {},
|
|
118
|
+
"source": [
|
|
119
|
+
"#### Display the interactive figure\n",
|
|
120
|
+
"\n",
|
|
121
|
+
"The second method is to simply display the figure `f` define above,\n",
|
|
122
|
+
"but **this only works if `%matplotlib widget` is enabled** (and does not work in the rendered docs, hence not shown here).\n",
|
|
123
|
+
"The advantage of this method is that it does not require first saving the animation to disk.\n",
|
|
124
|
+
"\n",
|
|
125
|
+
"#### Ipywidgets\n",
|
|
126
|
+
"\n",
|
|
127
|
+
"The third method is to use `ipywidgets` to display the image in the file:"
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"cell_type": "code",
|
|
132
|
+
"execution_count": null,
|
|
133
|
+
"id": "9",
|
|
134
|
+
"metadata": {},
|
|
135
|
+
"outputs": [],
|
|
136
|
+
"source": [
|
|
137
|
+
"import ipywidgets as ipw\n",
|
|
138
|
+
"\n",
|
|
139
|
+
"ipw.Image(value=open(\"animation_1d.gif\", \"rb\").read(), format=\"gif\")"
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"cell_type": "markdown",
|
|
144
|
+
"id": "10",
|
|
145
|
+
"metadata": {},
|
|
146
|
+
"source": [
|
|
147
|
+
"## 2D animations\n",
|
|
148
|
+
"\n",
|
|
149
|
+
"We can create a similar animation on 2d images,\n",
|
|
150
|
+
"where instead of slicing the vertical dimension,\n",
|
|
151
|
+
"we collect more and more signal as time progresses.\n",
|
|
152
|
+
"\n",
|
|
153
|
+
"Every time the `update` function is called,\n",
|
|
154
|
+
"new data is created and added to the current data."
|
|
155
|
+
]
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"cell_type": "code",
|
|
159
|
+
"execution_count": null,
|
|
160
|
+
"id": "11",
|
|
161
|
+
"metadata": {},
|
|
162
|
+
"outputs": [],
|
|
163
|
+
"source": [
|
|
164
|
+
"da = three_bands(npeaks=20, per_peak=500, spread=30.0)\n",
|
|
165
|
+
"data_node = pp.Node(da)\n",
|
|
166
|
+
"\n",
|
|
167
|
+
"f = pp.imagefigure(data_node, cbar=True, vmin=30, vmax=400, norm=\"log\")\n",
|
|
168
|
+
"\n",
|
|
169
|
+
"\n",
|
|
170
|
+
"def update(frame):\n",
|
|
171
|
+
" # Make new data and add it to the current data.\n",
|
|
172
|
+
" # The current data is obtained by calling the `data_node()`\n",
|
|
173
|
+
" new = three_bands(npeaks=20, per_peak=500, spread=30.0) + data_node()\n",
|
|
174
|
+
" data_node.func = lambda: new\n",
|
|
175
|
+
" data_node.notify_children(\"\")\n",
|
|
176
|
+
"\n",
|
|
177
|
+
"\n",
|
|
178
|
+
"ani = animation.FuncAnimation(fig=f.fig, func=update, frames=80, interval=100)\n",
|
|
179
|
+
"ani.save(filename=\"animation_2d.gif\", writer=\"pillow\")"
|
|
180
|
+
]
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"cell_type": "markdown",
|
|
184
|
+
"id": "12",
|
|
185
|
+
"metadata": {},
|
|
186
|
+
"source": [
|
|
187
|
+
"We now display the resulting animation (using markdown):\n",
|
|
188
|
+
"\n",
|
|
189
|
+
""
|
|
190
|
+
]
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"cell_type": "markdown",
|
|
194
|
+
"id": "13",
|
|
195
|
+
"metadata": {},
|
|
196
|
+
"source": [
|
|
197
|
+
"## 3D animations\n",
|
|
198
|
+
"\n",
|
|
199
|
+
"Animations on 3D plots are currently not supported.\n",
|
|
200
|
+
"\n",
|
|
201
|
+
"The best way to achieve this would be to record a screencast while interacting with a 3D scene."
|
|
202
|
+
]
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"cell_type": "code",
|
|
206
|
+
"execution_count": null,
|
|
207
|
+
"id": "14",
|
|
208
|
+
"metadata": {
|
|
209
|
+
"nbsphinx": "hidden"
|
|
210
|
+
},
|
|
211
|
+
"outputs": [],
|
|
212
|
+
"source": [
|
|
213
|
+
"# This cell is used to generate the thumbnail for the docs.\n",
|
|
214
|
+
"# It is hidden from the online documentation.\n",
|
|
215
|
+
"import shutil\n",
|
|
216
|
+
"\n",
|
|
217
|
+
"shutil.copyfile(\"animation_2d.gif\", \"../_static/customization/animation_2d.gif\")"
|
|
218
|
+
]
|
|
219
|
+
}
|
|
220
|
+
],
|
|
221
|
+
"metadata": {
|
|
222
|
+
"kernelspec": {
|
|
223
|
+
"display_name": "Python 3 (ipykernel)",
|
|
224
|
+
"language": "python",
|
|
225
|
+
"name": "python3"
|
|
226
|
+
},
|
|
227
|
+
"language_info": {
|
|
228
|
+
"codemirror_mode": {
|
|
229
|
+
"name": "ipython",
|
|
230
|
+
"version": 3
|
|
231
|
+
},
|
|
232
|
+
"file_extension": ".py",
|
|
233
|
+
"mimetype": "text/x-python",
|
|
234
|
+
"name": "python",
|
|
235
|
+
"nbconvert_exporter": "python",
|
|
236
|
+
"pygments_lexer": "ipython3"
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"nbformat": 4,
|
|
240
|
+
"nbformat_minor": 5
|
|
241
|
+
}
|
|
@@ -30,6 +30,12 @@
|
|
|
30
30
|
|
|
31
31
|
:::
|
|
32
32
|
|
|
33
|
+
::::{grid-item-card} Animations
|
|
34
|
+
:link: animations.ipynb
|
|
35
|
+
:img-bottom: ../_static/customization/animation_2d.gif
|
|
36
|
+
|
|
37
|
+
:::
|
|
38
|
+
|
|
33
39
|
::::
|
|
34
40
|
|
|
35
41
|
```{toctree}
|
|
@@ -41,4 +47,5 @@ subplots
|
|
|
41
47
|
tweaking-figures
|
|
42
48
|
custom-interfaces
|
|
43
49
|
graph-node-tips
|
|
50
|
+
animations
|
|
44
51
|
```
|
|
@@ -18,14 +18,13 @@ classifiers = [
|
|
|
18
18
|
"Operating System :: OS Independent",
|
|
19
19
|
"Programming Language :: Python :: 3",
|
|
20
20
|
"Programming Language :: Python :: 3 :: Only",
|
|
21
|
-
"Programming Language :: Python :: 3.10",
|
|
22
21
|
"Programming Language :: Python :: 3.11",
|
|
23
22
|
"Programming Language :: Python :: 3.12",
|
|
24
23
|
"Programming Language :: Python :: 3.13",
|
|
25
24
|
"Topic :: Scientific/Engineering",
|
|
26
25
|
"Typing :: Typed",
|
|
27
26
|
]
|
|
28
|
-
requires-python = ">=3.
|
|
27
|
+
requires-python = ">=3.11"
|
|
29
28
|
|
|
30
29
|
# IMPORTANT:
|
|
31
30
|
# Run 'tox -e deps' after making changes here. This will update requirement files.
|
|
@@ -49,7 +48,7 @@ test = [
|
|
|
49
48
|
"pandas>=2.2.2",
|
|
50
49
|
"plotly>=5.15.0",
|
|
51
50
|
"pooch>=1.5",
|
|
52
|
-
"pyarrow>=
|
|
51
|
+
"pyarrow>=13.0.0",
|
|
53
52
|
"pytest>=7.0",
|
|
54
53
|
"pythreejs>=2.4.1",
|
|
55
54
|
"scipp>=25.5.0",
|
|
@@ -5,19 +5,19 @@
|
|
|
5
5
|
#
|
|
6
6
|
# requirements upgrade
|
|
7
7
|
#
|
|
8
|
-
contourpy==1.3.
|
|
8
|
+
contourpy==1.3.3
|
|
9
9
|
# via matplotlib
|
|
10
10
|
cycler==0.12.1
|
|
11
11
|
# via matplotlib
|
|
12
|
-
fonttools==4.
|
|
12
|
+
fonttools==4.59.0
|
|
13
13
|
# via matplotlib
|
|
14
14
|
kiwisolver==1.4.8
|
|
15
15
|
# via matplotlib
|
|
16
16
|
lazy-loader==0.4
|
|
17
17
|
# via -r base.in
|
|
18
|
-
matplotlib==3.10.
|
|
18
|
+
matplotlib==3.10.5
|
|
19
19
|
# via -r base.in
|
|
20
|
-
numpy==2.2
|
|
20
|
+
numpy==2.3.2
|
|
21
21
|
# via
|
|
22
22
|
# contourpy
|
|
23
23
|
# matplotlib
|
|
@@ -32,7 +32,7 @@ pyparsing==3.2.3
|
|
|
32
32
|
# via matplotlib
|
|
33
33
|
python-dateutil==2.9.0.post0
|
|
34
34
|
# via matplotlib
|
|
35
|
-
scipp==25.
|
|
35
|
+
scipp==25.8.0
|
|
36
36
|
# via -r base.in
|
|
37
37
|
six==1.17.0
|
|
38
38
|
# via python-dateutil
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SHA1:
|
|
1
|
+
# SHA1:9304fdc650b0b353b34a5f31e5b8071be9d3f4e8
|
|
2
2
|
#
|
|
3
3
|
# This file was generated by pip-compile-multi.
|
|
4
4
|
# To update, run:
|
|
@@ -9,25 +9,21 @@ anywidget==0.9.18
|
|
|
9
9
|
# via -r basetest.in
|
|
10
10
|
asttokens==3.0.0
|
|
11
11
|
# via stack-data
|
|
12
|
-
certifi==2025.
|
|
12
|
+
certifi==2025.8.3
|
|
13
13
|
# via requests
|
|
14
14
|
charset-normalizer==3.4.2
|
|
15
15
|
# via requests
|
|
16
|
-
comm==0.2.
|
|
16
|
+
comm==0.2.3
|
|
17
17
|
# via ipywidgets
|
|
18
|
-
contourpy==1.3.
|
|
18
|
+
contourpy==1.3.3
|
|
19
19
|
# via matplotlib
|
|
20
20
|
cycler==0.12.1
|
|
21
21
|
# via matplotlib
|
|
22
22
|
decorator==5.2.1
|
|
23
23
|
# via ipython
|
|
24
|
-
exceptiongroup==1.3.0
|
|
25
|
-
# via
|
|
26
|
-
# ipython
|
|
27
|
-
# pytest
|
|
28
24
|
executing==2.2.0
|
|
29
25
|
# via stack-data
|
|
30
|
-
fonttools==4.
|
|
26
|
+
fonttools==4.59.0
|
|
31
27
|
# via matplotlib
|
|
32
28
|
graphviz==0.21
|
|
33
29
|
# via -r basetest.in
|
|
@@ -41,10 +37,12 @@ ipydatawidgets==4.3.5
|
|
|
41
37
|
# via pythreejs
|
|
42
38
|
ipympl==0.9.7
|
|
43
39
|
# via -r basetest.in
|
|
44
|
-
ipython==
|
|
40
|
+
ipython==9.4.0
|
|
45
41
|
# via
|
|
46
42
|
# ipympl
|
|
47
43
|
# ipywidgets
|
|
44
|
+
ipython-pygments-lexers==1.1.1
|
|
45
|
+
# via ipython
|
|
48
46
|
ipywidgets==8.1.7
|
|
49
47
|
# via
|
|
50
48
|
# -r basetest.in
|
|
@@ -58,7 +56,7 @@ jupyterlab-widgets==3.0.15
|
|
|
58
56
|
# via ipywidgets
|
|
59
57
|
kiwisolver==1.4.8
|
|
60
58
|
# via matplotlib
|
|
61
|
-
matplotlib==3.10.
|
|
59
|
+
matplotlib==3.10.5
|
|
62
60
|
# via
|
|
63
61
|
# ipympl
|
|
64
62
|
# mpltoolbox
|
|
@@ -66,9 +64,9 @@ matplotlib-inline==0.1.7
|
|
|
66
64
|
# via ipython
|
|
67
65
|
mpltoolbox==25.5.0
|
|
68
66
|
# via -r basetest.in
|
|
69
|
-
narwhals==
|
|
67
|
+
narwhals==2.0.1
|
|
70
68
|
# via plotly
|
|
71
|
-
numpy==2.2
|
|
69
|
+
numpy==2.3.2
|
|
72
70
|
# via
|
|
73
71
|
# contourpy
|
|
74
72
|
# h5py
|
|
@@ -115,11 +113,12 @@ ptyprocess==0.7.0
|
|
|
115
113
|
# via pexpect
|
|
116
114
|
pure-eval==0.2.3
|
|
117
115
|
# via stack-data
|
|
118
|
-
pyarrow==
|
|
116
|
+
pyarrow==21.0.0
|
|
119
117
|
# via -r basetest.in
|
|
120
118
|
pygments==2.19.2
|
|
121
119
|
# via
|
|
122
120
|
# ipython
|
|
121
|
+
# ipython-pygments-lexers
|
|
123
122
|
# pytest
|
|
124
123
|
pyparsing==3.2.3
|
|
125
124
|
# via matplotlib
|
|
@@ -135,19 +134,16 @@ pytz==2025.2
|
|
|
135
134
|
# via pandas
|
|
136
135
|
requests==2.32.4
|
|
137
136
|
# via pooch
|
|
138
|
-
scipp==25.
|
|
137
|
+
scipp==25.8.0
|
|
139
138
|
# via -r basetest.in
|
|
140
|
-
scipy==1.
|
|
139
|
+
scipy==1.16.1
|
|
141
140
|
# via -r basetest.in
|
|
142
141
|
six==1.17.0
|
|
143
142
|
# via python-dateutil
|
|
144
143
|
stack-data==0.6.3
|
|
145
144
|
# via ipython
|
|
146
|
-
tomli==2.2.1
|
|
147
|
-
# via pytest
|
|
148
145
|
traitlets==5.14.3
|
|
149
146
|
# via
|
|
150
|
-
# comm
|
|
151
147
|
# ipympl
|
|
152
148
|
# ipython
|
|
153
149
|
# ipywidgets
|
|
@@ -159,7 +155,6 @@ traittypes==0.2.1
|
|
|
159
155
|
typing-extensions==4.14.1
|
|
160
156
|
# via
|
|
161
157
|
# anywidget
|
|
162
|
-
# exceptiongroup
|
|
163
158
|
# ipython
|
|
164
159
|
tzdata==2025.2
|
|
165
160
|
# via pandas
|
|
@@ -169,5 +164,5 @@ wcwidth==0.2.13
|
|
|
169
164
|
# via prompt-toolkit
|
|
170
165
|
widgetsnbextension==4.0.14
|
|
171
166
|
# via ipywidgets
|
|
172
|
-
xarray==2025.
|
|
167
|
+
xarray==2025.7.1
|
|
173
168
|
# via -r basetest.in
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
#
|
|
8
8
|
cachetools==6.1.0
|
|
9
9
|
# via tox
|
|
10
|
-
certifi==2025.
|
|
10
|
+
certifi==2025.8.3
|
|
11
11
|
# via requests
|
|
12
12
|
chardet==5.2.0
|
|
13
13
|
# via tox
|
|
@@ -15,7 +15,7 @@ charset-normalizer==3.4.2
|
|
|
15
15
|
# via requests
|
|
16
16
|
colorama==0.4.6
|
|
17
17
|
# via tox
|
|
18
|
-
distlib==0.
|
|
18
|
+
distlib==0.4.0
|
|
19
19
|
# via virtualenv
|
|
20
20
|
filelock==3.18.0
|
|
21
21
|
# via
|
|
@@ -23,7 +23,7 @@ filelock==3.18.0
|
|
|
23
23
|
# virtualenv
|
|
24
24
|
gitdb==4.0.12
|
|
25
25
|
# via gitpython
|
|
26
|
-
gitpython==3.1.
|
|
26
|
+
gitpython==3.1.45
|
|
27
27
|
# via -r ci.in
|
|
28
28
|
idna==3.10
|
|
29
29
|
# via requests
|
|
@@ -44,15 +44,9 @@ requests==2.32.4
|
|
|
44
44
|
# via -r ci.in
|
|
45
45
|
smmap==5.0.2
|
|
46
46
|
# via gitdb
|
|
47
|
-
|
|
48
|
-
# via
|
|
49
|
-
# pyproject-api
|
|
50
|
-
# tox
|
|
51
|
-
tox==4.27.0
|
|
47
|
+
tox==4.28.4
|
|
52
48
|
# via -r ci.in
|
|
53
|
-
typing-extensions==4.14.1
|
|
54
|
-
# via tox
|
|
55
49
|
urllib3==2.5.0
|
|
56
50
|
# via requests
|
|
57
|
-
virtualenv==20.
|
|
51
|
+
virtualenv==20.33.1
|
|
58
52
|
# via tox
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
-r static.txt
|
|
13
13
|
-r test.txt
|
|
14
14
|
-r wheels.txt
|
|
15
|
-
anyio==4.
|
|
15
|
+
anyio==4.10.0
|
|
16
16
|
# via
|
|
17
17
|
# httpx
|
|
18
18
|
# jupyter-server
|
|
19
19
|
argon2-cffi==25.1.0
|
|
20
20
|
# via jupyter-server
|
|
21
|
-
argon2-cffi-bindings==
|
|
21
|
+
argon2-cffi-bindings==25.1.0
|
|
22
22
|
# via argon2-cffi
|
|
23
23
|
arrow==1.3.0
|
|
24
24
|
# via isoduration
|
|
@@ -30,7 +30,7 @@ click==8.2.1
|
|
|
30
30
|
# via
|
|
31
31
|
# pip-compile-multi
|
|
32
32
|
# pip-tools
|
|
33
|
-
copier==9.
|
|
33
|
+
copier==9.9.0
|
|
34
34
|
# via -r dev.in
|
|
35
35
|
dunamai==1.25.0
|
|
36
36
|
# via copier
|
|
@@ -52,14 +52,14 @@ json5==0.12.0
|
|
|
52
52
|
# via jupyterlab-server
|
|
53
53
|
jsonpointer==3.0.0
|
|
54
54
|
# via jsonschema
|
|
55
|
-
jsonschema[format-nongpl]==4.
|
|
55
|
+
jsonschema[format-nongpl]==4.25.0
|
|
56
56
|
# via
|
|
57
57
|
# jupyter-events
|
|
58
58
|
# jupyterlab-server
|
|
59
59
|
# nbformat
|
|
60
60
|
jupyter-events==0.12.0
|
|
61
61
|
# via jupyter-server
|
|
62
|
-
jupyter-lsp==2.2.
|
|
62
|
+
jupyter-lsp==2.2.6
|
|
63
63
|
# via jupyterlab
|
|
64
64
|
jupyter-server==2.16.0
|
|
65
65
|
# via
|
|
@@ -69,17 +69,19 @@ jupyter-server==2.16.0
|
|
|
69
69
|
# notebook-shim
|
|
70
70
|
jupyter-server-terminals==0.5.3
|
|
71
71
|
# via jupyter-server
|
|
72
|
-
jupyterlab==4.4.
|
|
72
|
+
jupyterlab==4.4.5
|
|
73
73
|
# via -r dev.in
|
|
74
74
|
jupyterlab-server==2.27.3
|
|
75
75
|
# via jupyterlab
|
|
76
|
+
lark==1.2.2
|
|
77
|
+
# via rfc3987-syntax
|
|
76
78
|
notebook-shim==0.2.4
|
|
77
79
|
# via jupyterlab
|
|
78
80
|
overrides==7.7.0
|
|
79
81
|
# via jupyter-server
|
|
80
82
|
pip-compile-multi==3.2.1
|
|
81
83
|
# via -r dev.in
|
|
82
|
-
pip-tools==7.
|
|
84
|
+
pip-tools==7.5.0
|
|
83
85
|
# via pip-compile-multi
|
|
84
86
|
plumbum==1.9.0
|
|
85
87
|
# via copier
|
|
@@ -99,6 +101,8 @@ rfc3986-validator==0.1.1
|
|
|
99
101
|
# via
|
|
100
102
|
# jsonschema
|
|
101
103
|
# jupyter-events
|
|
104
|
+
rfc3987-syntax==1.1.0
|
|
105
|
+
# via jsonschema
|
|
102
106
|
send2trash==1.8.3
|
|
103
107
|
# via jupyter-server
|
|
104
108
|
sniffio==1.3.1
|