plopp 25.7.0__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.0 → plopp-25.9.0}/.copier-answers.yml +2 -2
- plopp-25.9.0/.github/workflows/nightly_at_main_lower_bound.yml +37 -0
- plopp-25.9.0/.github/workflows/python-version-ci +1 -0
- {plopp-25.7.0 → plopp-25.9.0}/.github/workflows/release.yml +2 -2
- {plopp-25.7.0 → plopp-25.9.0}/.pre-commit-config.yaml +2 -1
- plopp-25.9.0/.python-version +1 -0
- plopp-25.9.0/PKG-INFO +71 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/about/index.md +2 -2
- {plopp-25.7.0 → plopp-25.9.0}/docs/conf.py +4 -0
- plopp-25.9.0/docs/customization/animations.ipynb +241 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/customization/index.md +7 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/developer/getting-started.md +1 -1
- {plopp-25.7.0 → plopp-25.9.0}/docs/index.md +6 -2
- {plopp-25.7.0 → plopp-25.9.0}/pyproject.toml +25 -24
- {plopp-25.7.0 → plopp-25.9.0}/requirements/base.in +2 -2
- {plopp-25.7.0 → plopp-25.9.0}/requirements/base.txt +7 -7
- {plopp-25.7.0 → plopp-25.9.0}/requirements/basetest.in +15 -15
- {plopp-25.7.0 → plopp-25.9.0}/requirements/basetest.txt +30 -33
- {plopp-25.7.0 → plopp-25.9.0}/requirements/ci.txt +8 -14
- {plopp-25.7.0 → plopp-25.9.0}/requirements/dev.txt +16 -20
- {plopp-25.7.0 → plopp-25.9.0}/requirements/docs.in +2 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/docs.txt +26 -9
- {plopp-25.7.0 → plopp-25.9.0}/requirements/mypy.txt +1 -1
- plopp-25.9.0/requirements/nightly.in +23 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/nightly.txt +29 -32
- {plopp-25.7.0 → plopp-25.9.0}/requirements/static.txt +2 -2
- {plopp-25.7.0 → plopp-25.9.0}/requirements/wheels.txt +1 -3
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/matplotlib/tiled.py +5 -1
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/data/examples.py +3 -1
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/graphics/colormapper.py +40 -10
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/plotting/common.py +8 -2
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/slice.py +2 -3
- plopp-25.9.0/src/plopp.egg-info/PKG-INFO +71 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp.egg-info/SOURCES.txt +2 -0
- plopp-25.9.0/src/plopp.egg-info/requires.txt +30 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/backends/matplotlib/mpl_image_test.py +7 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/plotting/plot_1d_test.py +5 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/plotting/plot_2d_test.py +5 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/widgets/slice_test.py +2 -2
- {plopp-25.7.0 → plopp-25.9.0}/tox.ini +1 -1
- plopp-25.7.0/.github/workflows/python-version-ci +0 -1
- plopp-25.7.0/.python-version +0 -1
- plopp-25.7.0/PKG-INFO +0 -102
- plopp-25.7.0/requirements/nightly.in +0 -23
- plopp-25.7.0/src/plopp.egg-info/PKG-INFO +0 -102
- plopp-25.7.0/src/plopp.egg-info/requires.txt +0 -30
- {plopp-25.7.0 → plopp-25.9.0}/.github/dependabot.yml +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/.github/workflows/ci.yml +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/.github/workflows/docs.yml +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/.github/workflows/nightly_at_main.yml +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/.github/workflows/nightly_at_release.yml +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/.github/workflows/test.yml +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/.github/workflows/unpinned.yml +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/.github/workflows/weekly_windows_macos.yml +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/.gitignore +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/CODE_OF_CONDUCT.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/CONTRIBUTING.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/LICENSE +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/MANIFEST.in +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/README.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/anaconda-icon.js +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/circle-exclamation.svg +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/custom.css +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/customization/custom-interfaces.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/customization/graph-node-tips.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/customization/subplots.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/customization/tweaking-figures.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/favicon.ico +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/gallery/README.txt +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/gallery/peeling-layers-thumbnail.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/gallery/scatter3d-with-slider-thumbnail.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/gallery/scatter3d-with-threshold-thumbnail.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/logo-dark.svg +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/logo-large-dark.svg +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/logo-large.svg +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/logo.svg +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/plotting/image-plot.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/plotting/inspector-plot.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/plotting/line-plot.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/plotting/mesh3d-plot.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/plotting/scatter-plot.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/plotting/scatter3d-plot.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/plotting/slicer-plot.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_static/plotting/super-plot.png +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_templates/class-template.rst +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_templates/doc_version.html +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_templates/module-template.rst +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_templates/scipp-class-template.rst +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/_templates/scipp-module-template.rst +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/api-reference/index.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/api-reference/matplotlib.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/api-reference/plotly.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/api-reference/pythreejs.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/customization/custom-interfaces.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/customization/graph-node-tips.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/customization/subplots.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/customization/tweaking-figures.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/developer/coding-conventions.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/developer/dependency-management.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/developer/index.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/index.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/interactive-masking.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/masking-a-range.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/nyc-taxi.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/peeling-layers.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/polar-plots.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/rectangle-selection.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/scatter3d-with-slider.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/scatter3d-with-threshold.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/streaming-plot.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/tiled-random-samples.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/gallery/updating-scatter.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/getting-started/index.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/getting-started/installation.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/getting-started/numpy-pandas-xarray.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/getting-started/overview.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/getting-started/saving-figures.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/plotting/image-plot.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/plotting/index.md +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/plotting/inspector-plot.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/plotting/line-plot.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/plotting/mesh3d-plot.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/plotting/scatter-plot.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/plotting/scatter3d-plot.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/plotting/slicer-plot.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/docs/plotting/super-plot.ipynb +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/ci.in +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/dev.in +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/make_base.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/mini.in +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/mini.txt +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/mypy.in +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/noplotly.in +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/noplotly.txt +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/static.in +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/test.in +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/test.txt +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/requirements/wheels.in +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/resources/logo-plopp-2022.svg +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/setup.cfg +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/__init__.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/__init__.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/common.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/matplotlib/__init__.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/matplotlib/canvas.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/matplotlib/fast_image.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/matplotlib/figure.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/matplotlib/image.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/matplotlib/line.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/matplotlib/mesh_image.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/matplotlib/scatter.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/matplotlib/utils.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/plotly/__init__.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/plotly/canvas.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/plotly/figure.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/plotly/line.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/pythreejs/__init__.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/pythreejs/canvas.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/pythreejs/figure.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/pythreejs/mesh3d.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/pythreejs/outline.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/backends/pythreejs/scatter3d.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/core/__init__.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/core/__init__.pyi +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/core/graph.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/core/helpers.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/core/limits.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/core/node_class.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/core/typing.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/core/utils.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/core/view.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/data/__init__.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/data/factory.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/data/testing.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/graphics/__init__.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/graphics/__init__.pyi +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/graphics/basefig.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/graphics/bbox.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/graphics/camera.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/graphics/figures.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/graphics/graphicalview.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/graphics/tiled.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/plotting/__init__.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/plotting/__init__.pyi +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/plotting/inspector.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/plotting/mesh3d.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/plotting/plot.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/plotting/scatter.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/plotting/scatter3d.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/plotting/slicer.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/plotting/superplot.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/plotting/xyplot.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/py.typed +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/utils.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/__init__.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/__init__.pyi +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/box.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/checkboxes.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/clip3d.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/debounce.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/drawing.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/linesave.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/style.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/toolbar.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp/widgets/tools.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp.egg-info/dependency_links.txt +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/src/plopp.egg-info/top_level.txt +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/backends/matplotlib/mpl_line_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/backends/matplotlib/mpl_plot_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/backends/matplotlib/mpl_scatter_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/backends/matplotlib/mpl_tiled_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/backends/plotly/conftest.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/backends/plotly/plotly_line_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/backends/pythreejs/pythreejs_canvas_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/backends/pythreejs/pythreejs_scatter3d_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/conftest.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/core/graph_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/core/limits_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/core/node_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/core/utils_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/graphics/artists_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/graphics/canvas_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/graphics/colormapper_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/graphics/figures_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/high_level_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/minimal_plot_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/package_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/plotting/common_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/plotting/inspector_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/plotting/mesh3d_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/plotting/scatter3d_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/plotting/scatter_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/plotting/slicer_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/plotting/superplot_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/plotting/xyplot_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/widgets/box_test.py +0 -0
- {plopp-25.7.0 → plopp-25.9.0}/tests/widgets/checkboxes_test.py +0 -0
- {plopp-25.7.0 → 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,37 @@
|
|
|
1
|
+
name: Nightly test using lower bound dependencies
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
schedule:
|
|
6
|
+
- cron: '30 1 * * 1-5'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
setup:
|
|
10
|
+
name: Setup variables
|
|
11
|
+
runs-on: 'ubuntu-24.04'
|
|
12
|
+
outputs:
|
|
13
|
+
min_python: ${{ steps.vars.outputs.min_python }}
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v4
|
|
16
|
+
- name: Get Python version for other CI jobs
|
|
17
|
+
id: vars
|
|
18
|
+
run: echo "min_python=$(< .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"
|
|
19
|
+
|
|
20
|
+
tests:
|
|
21
|
+
name: Tests at lower bound
|
|
22
|
+
needs: setup
|
|
23
|
+
strategy:
|
|
24
|
+
matrix:
|
|
25
|
+
os: ['ubuntu-24.04']
|
|
26
|
+
python:
|
|
27
|
+
- version: '${{needs.setup.outputs.min_python}}'
|
|
28
|
+
runs-on: ${{ matrix.os }}
|
|
29
|
+
env:
|
|
30
|
+
ESS_PROTECTED_FILESTORE_USERNAME: ${{ secrets.ESS_PROTECTED_FILESTORE_USERNAME }}
|
|
31
|
+
ESS_PROTECTED_FILESTORE_PASSWORD: ${{ secrets.ESS_PROTECTED_FILESTORE_PASSWORD }}
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@v4
|
|
34
|
+
- uses: astral-sh/setup-uv@v6
|
|
35
|
+
with:
|
|
36
|
+
python-version: ${{ matrix.python.version }}
|
|
37
|
+
- run: uv run --extra=test --resolution=lowest-direct pytest
|
|
@@ -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' }}
|
|
@@ -10,7 +10,6 @@ repos:
|
|
|
10
10
|
- id: check-merge-conflict
|
|
11
11
|
- id: check-toml
|
|
12
12
|
- id: check-yaml
|
|
13
|
-
exclude: conda/meta.yaml
|
|
14
13
|
- id: detect-private-key
|
|
15
14
|
- id: trailing-whitespace
|
|
16
15
|
args: [ --markdown-linebreak-ext=md ]
|
|
@@ -36,6 +35,8 @@ repos:
|
|
|
36
35
|
- id: codespell
|
|
37
36
|
additional_dependencies:
|
|
38
37
|
- tomli
|
|
38
|
+
exclude_types:
|
|
39
|
+
- svg
|
|
39
40
|
- repo: https://github.com/pre-commit/pygrep-hooks
|
|
40
41
|
rev: v1.10.0
|
|
41
42
|
hooks:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.11
|
plopp-25.9.0/PKG-INFO
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: plopp
|
|
3
|
+
Version: 25.9.0
|
|
4
|
+
Summary: Visualization library for Scipp
|
|
5
|
+
Author: Scipp contributors
|
|
6
|
+
License-Expression: BSD-3-Clause
|
|
7
|
+
Project-URL: Bug Tracker, https://github.com/scipp/plopp/issues
|
|
8
|
+
Project-URL: Documentation, https://scipp.github.io/plopp
|
|
9
|
+
Project-URL: Source, https://github.com/scipp/plopp
|
|
10
|
+
Classifier: Intended Audience :: Science/Research
|
|
11
|
+
Classifier: Natural Language :: English
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering
|
|
19
|
+
Classifier: Typing :: Typed
|
|
20
|
+
Requires-Python: >=3.11
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: lazy-loader>=0.4
|
|
24
|
+
Requires-Dist: matplotlib>=3.8
|
|
25
|
+
Provides-Extra: scipp
|
|
26
|
+
Requires-Dist: scipp>=25.5.0; extra == "scipp"
|
|
27
|
+
Provides-Extra: all
|
|
28
|
+
Requires-Dist: scipp>=25.5.0; extra == "all"
|
|
29
|
+
Requires-Dist: ipympl>0.8.4; extra == "all"
|
|
30
|
+
Requires-Dist: pythreejs>=2.4.1; extra == "all"
|
|
31
|
+
Requires-Dist: mpltoolbox>=24.6.0; extra == "all"
|
|
32
|
+
Requires-Dist: ipywidgets>=8.1.0; extra == "all"
|
|
33
|
+
Requires-Dist: graphviz>=0.20.3; extra == "all"
|
|
34
|
+
Provides-Extra: test
|
|
35
|
+
Requires-Dist: graphviz>=0.20.3; extra == "test"
|
|
36
|
+
Requires-Dist: h5py>=3.12; extra == "test"
|
|
37
|
+
Requires-Dist: ipympl>=0.8.4; extra == "test"
|
|
38
|
+
Requires-Dist: ipywidgets>=8.1.0; extra == "test"
|
|
39
|
+
Requires-Dist: mpltoolbox>=24.6.0; extra == "test"
|
|
40
|
+
Requires-Dist: pandas>=2.2.2; extra == "test"
|
|
41
|
+
Requires-Dist: plotly>=5.15.0; extra == "test"
|
|
42
|
+
Requires-Dist: pooch>=1.5; extra == "test"
|
|
43
|
+
Requires-Dist: pyarrow>=13.0.0; extra == "test"
|
|
44
|
+
Requires-Dist: pytest>=7.0; extra == "test"
|
|
45
|
+
Requires-Dist: pythreejs>=2.4.1; extra == "test"
|
|
46
|
+
Requires-Dist: scipp>=25.5.0; extra == "test"
|
|
47
|
+
Requires-Dist: scipy>=1.10.0; extra == "test"
|
|
48
|
+
Requires-Dist: xarray>=v2024.05.0; extra == "test"
|
|
49
|
+
Requires-Dist: anywidget>=0.9.0; extra == "test"
|
|
50
|
+
Dynamic: license-file
|
|
51
|
+
|
|
52
|
+
<img src="docs/_static/logo.svg" width="50%" />
|
|
53
|
+
|
|
54
|
+
[](CODE_OF_CONDUCT.md)
|
|
55
|
+
[](https://pypi.python.org/pypi/plopp)
|
|
56
|
+
[](https://anaconda.org/conda-forge/plopp)
|
|
57
|
+
[](https://scipp.github.io/plopp/)
|
|
58
|
+
[](LICENSE)
|
|
59
|
+
[](https://zenodo.org/badge/latestdoi/528859752)
|
|
60
|
+
|
|
61
|
+
# Plopp
|
|
62
|
+
|
|
63
|
+
## About
|
|
64
|
+
|
|
65
|
+
Visualization library for Scipp
|
|
66
|
+
|
|
67
|
+
## Installation
|
|
68
|
+
|
|
69
|
+
```sh
|
|
70
|
+
python -m pip install plopp
|
|
71
|
+
```
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
## Development
|
|
4
4
|
|
|
5
|
-
Plopp is an open source project by the [European Spallation Source ERIC](https://
|
|
5
|
+
Plopp is an open source project by the [European Spallation Source ERIC](https://ess.eu/) (ESS).
|
|
6
6
|
|
|
7
7
|
## License
|
|
8
8
|
|
|
9
|
-
Plopp is available as open source under the [BSD-3 license](https://opensource.org/
|
|
9
|
+
Plopp is available as open source under the [BSD-3 license](https://opensource.org/license/BSD-3-Clause).
|
|
10
10
|
|
|
11
11
|
## Citing Plopp
|
|
12
12
|
|
|
@@ -32,6 +32,7 @@ extensions = [
|
|
|
32
32
|
'sphinx_autodoc_typehints',
|
|
33
33
|
'sphinx_copybutton',
|
|
34
34
|
'sphinx_design',
|
|
35
|
+
'sphinxcontrib.autodoc_pydantic',
|
|
35
36
|
'nbsphinx',
|
|
36
37
|
'sphinx_gallery.load_style',
|
|
37
38
|
'myst_parser',
|
|
@@ -248,6 +249,9 @@ doctest_default_flags = (
|
|
|
248
249
|
linkcheck_ignore = [
|
|
249
250
|
# Specific lines in Github blobs cannot be found by linkcheck.
|
|
250
251
|
r'https?://github\.com/.*?/blob/[a-f0-9]+/.+?#',
|
|
252
|
+
# Linkcheck seems to be denied access by some DOI resolvers.
|
|
253
|
+
# Since DOIs are supposed to be permanent, we don't need to check them.'
|
|
254
|
+
r'https://doi\.org/',
|
|
251
255
|
]
|
|
252
256
|
|
|
253
257
|
# -- Options for nbsphinx gallery------------------------------------------
|
|
@@ -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
|
```
|
|
@@ -24,10 +24,10 @@
|
|
|
24
24
|
|
|
25
25
|
# {transparent}`Plopp`
|
|
26
26
|
|
|
27
|
-
<
|
|
27
|
+
<div style="font-size:1.2em;font-style:italic;color:var(--pst-color-text-muted);text-align:center;">
|
|
28
28
|
Visualization library for Scipp
|
|
29
29
|
</br></br>
|
|
30
|
-
</
|
|
30
|
+
</div>
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
## Getting started
|
|
@@ -154,6 +154,10 @@
|
|
|
154
154
|
|
|
155
155
|
:::
|
|
156
156
|
|
|
157
|
+
:::{grid-item-card} Animations
|
|
158
|
+
:link: customization/animations.ipynb
|
|
159
|
+
:img-bottom: _static/customization/animation_2d.gif
|
|
160
|
+
|
|
157
161
|
::::
|
|
158
162
|
|
|
159
163
|
```{toctree}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[build-system]
|
|
2
2
|
requires = [
|
|
3
|
-
"setuptools>=
|
|
3
|
+
"setuptools>=77",
|
|
4
4
|
"setuptools_scm[toml]>=8.0",
|
|
5
5
|
]
|
|
6
6
|
build-backend = "setuptools.build_meta"
|
|
@@ -9,53 +9,52 @@ build-backend = "setuptools.build_meta"
|
|
|
9
9
|
name = "plopp"
|
|
10
10
|
description = "Visualization library for Scipp"
|
|
11
11
|
authors = [{ name = "Scipp contributors" }]
|
|
12
|
-
license =
|
|
12
|
+
license = "BSD-3-Clause"
|
|
13
|
+
license-files = ["LICENSE"]
|
|
13
14
|
readme = "README.md"
|
|
14
15
|
classifiers = [
|
|
15
16
|
"Intended Audience :: Science/Research",
|
|
16
|
-
"License :: OSI Approved :: BSD License",
|
|
17
17
|
"Natural Language :: English",
|
|
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.
|
|
32
31
|
# Make sure to list one dependency per line.
|
|
33
32
|
dependencies = [
|
|
34
|
-
"lazy-loader",
|
|
35
|
-
"matplotlib>=3.
|
|
33
|
+
"lazy-loader>=0.4",
|
|
34
|
+
"matplotlib>=3.8",
|
|
36
35
|
]
|
|
37
36
|
|
|
38
37
|
dynamic = ["version"]
|
|
39
38
|
|
|
40
39
|
[project.optional-dependencies]
|
|
41
|
-
scipp = ["scipp"]
|
|
42
|
-
all = ["scipp", "ipympl", "pythreejs", "mpltoolbox", "ipywidgets", "graphviz"]
|
|
40
|
+
scipp = ["scipp>=25.5.0"]
|
|
41
|
+
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"]
|
|
43
42
|
test = [
|
|
44
|
-
"graphviz",
|
|
45
|
-
"h5py",
|
|
46
|
-
"ipympl",
|
|
47
|
-
"ipywidgets",
|
|
48
|
-
"mpltoolbox",
|
|
49
|
-
"pandas",
|
|
50
|
-
"plotly",
|
|
51
|
-
"pooch",
|
|
52
|
-
"pyarrow",
|
|
53
|
-
"pytest",
|
|
54
|
-
"pythreejs",
|
|
55
|
-
"scipp",
|
|
56
|
-
"scipy",
|
|
57
|
-
"xarray",
|
|
58
|
-
"anywidget"
|
|
43
|
+
"graphviz>=0.20.3",
|
|
44
|
+
"h5py>=3.12",
|
|
45
|
+
"ipympl>=0.8.4",
|
|
46
|
+
"ipywidgets>=8.1.0",
|
|
47
|
+
"mpltoolbox>=24.6.0",
|
|
48
|
+
"pandas>=2.2.2",
|
|
49
|
+
"plotly>=5.15.0",
|
|
50
|
+
"pooch>=1.5",
|
|
51
|
+
"pyarrow>=13.0.0",
|
|
52
|
+
"pytest>=7.0",
|
|
53
|
+
"pythreejs>=2.4.1",
|
|
54
|
+
"scipp>=25.5.0",
|
|
55
|
+
"scipy>=1.10.0",
|
|
56
|
+
"xarray>=v2024.05.0",
|
|
57
|
+
"anywidget>=0.9.0"
|
|
59
58
|
]
|
|
60
59
|
|
|
61
60
|
[project.urls]
|
|
@@ -84,6 +83,8 @@ filterwarnings = [
|
|
|
84
83
|
'ignore:There is no current event loop:DeprecationWarning',
|
|
85
84
|
# Should be removed once https://github.com/ipython/ipykernel/pull/1248 is released
|
|
86
85
|
'ignore:Parsing dates involving a day of month without a year:DeprecationWarning',
|
|
86
|
+
# Should be removed once we lower pin a matplotlib version that respects the deprecation
|
|
87
|
+
'ignore:.*parameter is deprecated and will be removed in Pillow 13.*:DeprecationWarning',
|
|
87
88
|
]
|
|
88
89
|
|
|
89
90
|
[tool.ruff]
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
# SHA1:
|
|
1
|
+
# SHA1:fdb11dd5d28bac2a11ab529e4f383611e6e42b57
|
|
2
2
|
#
|
|
3
3
|
# This file was generated by pip-compile-multi.
|
|
4
4
|
# To update, run:
|
|
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
|
|
@@ -26,13 +26,13 @@ packaging==25.0
|
|
|
26
26
|
# via
|
|
27
27
|
# lazy-loader
|
|
28
28
|
# matplotlib
|
|
29
|
-
pillow==11.
|
|
29
|
+
pillow==11.3.0
|
|
30
30
|
# via matplotlib
|
|
31
31
|
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
|
|
@@ -7,18 +7,18 @@
|
|
|
7
7
|
# will not be touched by ``make_base.py``
|
|
8
8
|
# --- END OF CUSTOM SECTION ---
|
|
9
9
|
# The following was generated by 'tox -e deps', DO NOT EDIT MANUALLY!
|
|
10
|
-
graphviz
|
|
11
|
-
h5py
|
|
12
|
-
ipympl
|
|
13
|
-
ipywidgets
|
|
14
|
-
mpltoolbox
|
|
15
|
-
pandas
|
|
16
|
-
plotly
|
|
17
|
-
pooch
|
|
18
|
-
pyarrow
|
|
19
|
-
pytest
|
|
20
|
-
pythreejs
|
|
21
|
-
scipp
|
|
22
|
-
scipy
|
|
23
|
-
xarray
|
|
24
|
-
anywidget
|
|
10
|
+
graphviz>=0.20.3
|
|
11
|
+
h5py>=3.12
|
|
12
|
+
ipympl>=0.8.4
|
|
13
|
+
ipywidgets>=8.1.0
|
|
14
|
+
mpltoolbox>=24.6.0
|
|
15
|
+
pandas>=2.2.2
|
|
16
|
+
plotly>=5.15.0
|
|
17
|
+
pooch>=1.5
|
|
18
|
+
pyarrow>=13.0.0
|
|
19
|
+
pytest>=7.0
|
|
20
|
+
pythreejs>=2.4.1
|
|
21
|
+
scipp>=25.5.0
|
|
22
|
+
scipy>=1.10.0
|
|
23
|
+
xarray>=v2024.05.0
|
|
24
|
+
anywidget>=0.9.0
|