PlotPy 2.3.3__tar.gz → 2.3.5__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.
- {plotpy-2.3.3 → plotpy-2.3.5}/CHANGELOG.md +28 -0
- {plotpy-2.3.3/PlotPy.egg-info → plotpy-2.3.5}/PKG-INFO +2 -2
- {plotpy-2.3.3 → plotpy-2.3.5/PlotPy.egg-info}/PKG-INFO +2 -2
- {plotpy-2.3.3 → plotpy-2.3.5}/PlotPy.egg-info/SOURCES.txt +1 -1
- plotpy-2.3.5/PlotPy.egg-info/entry_points.txt +3 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/PlotPy.egg-info/requires.txt +1 -1
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/dev/build.rst +2 -2
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/dev/contribute.rst +1 -1
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/dev/platforms.rst +2 -2
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/__init__.py +1 -1
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/curve/base.py +2 -2
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/curve/errorbar.py +2 -2
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/polygonmap.py +3 -3
- plotpy-2.3.5/plotpy/tests/benchmarks/__init__.py +20 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/benchmarks/test_benchmarks.py +47 -10
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/benchmarks/test_bigimages.py +2 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/benchmarks/test_loadtest.py +8 -2
- {plotpy-2.3.3 → plotpy-2.3.5/plotpy/tests}/conftest.py +10 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_computations.py +5 -4
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_builder_annotation.py +27 -24
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_builder_curve.py +25 -17
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_builder_image.py +28 -18
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_builder_shape.py +16 -12
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_curve_tools.py +1 -1
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_manipulate_selection.py +3 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_mask_tool.py +4 -1
- plotpy-2.3.5/plotpy/tests/unit/test_plot_curve.py +94 -0
- plotpy-2.3.5/plotpy/tests/unit/test_tools_export.py +36 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/curve.py +7 -2
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/colormap/editor.py +3 -5
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/colormap/manager.py +10 -3
- {plotpy-2.3.3 → plotpy-2.3.5}/pyproject.toml +12 -2
- {plotpy-2.3.3 → plotpy-2.3.5}/src/contour2d.c +405 -216
- {plotpy-2.3.3 → plotpy-2.3.5}/src/histogram2d.c +400 -208
- {plotpy-2.3.3 → plotpy-2.3.5}/src/mandelbrot.c +397 -208
- plotpy-2.3.3/PlotPy.egg-info/entry_points.txt +0 -2
- plotpy-2.3.3/plotpy/tests/unit/test_plot_curve.py +0 -87
- plotpy-2.3.3/plotpy/tests/unit/test_tools_export.py +0 -33
- plotpy-2.3.3/plotpy/tests/widgets/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/LICENSE +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/MANIFEST.in +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/PlotPy.egg-info/dependency_links.txt +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/PlotPy.egg-info/top_level.txt +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/README.md +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/colormaps/README.md +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/colormaps/_cm.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/colormaps/colormap.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/colormaps/matplotlib_cmaps.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/_static/favicon.ico +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/changelog.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/conf.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/dev/guiqwt_to_plotpy.csv +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/dev/guiqwt_to_plotpy.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/dev/index.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/dev/v1_to_guidata_v3.csv +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/dev/v1_to_v2.csv +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/dev/v1_to_v2.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/colormapmanager.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/events.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/fit.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/fliprotate.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/imagefile.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/index.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/io.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/items/builder.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/items/examples.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/items/index.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/items/overview.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/items/reference.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/mathutils/colormaps.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/mathutils/geometry.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/mathutils/index.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/mathutils/scaler.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/panels/index.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/panels/overview.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/panels/reference.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/plot/examples.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/plot/index.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/plot/overview.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/plot/reference.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/pyplot.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/resizedialog.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/rotatecrop.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/selectdialog.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/signals.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/styles/index.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/styles/overview.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/styles/reference.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/tools/examples.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/tools/index.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/tools/overview.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/features/tools/reference.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/my_plot_manager.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/my_plot_manager.svg +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/panorama.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/panorama.svg +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/plot_widgets.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/plot_widgets.svg +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/plotpy-banner.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/plotpy-vertical.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/__init__.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/computations.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/contrast.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/cross_section.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/cross_section2.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/dotarraydemo.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/filtertest1.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/filtertest2.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/fit.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/get_point.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/hist2d.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/image_plot_tools.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/imagefilter.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/imagesuperp.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/imagexy.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/manager.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/mandelbrot.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/pcolor.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/plot.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/simple_dialog.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/simple_window.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/images/screenshots/transform.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/index.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/intro/examples.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/intro/index.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/intro/installation.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/intro/licenses.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/intro/motivation.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/intro/overview.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/requirements.rst +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/doc/update_requirements.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/builder/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/builder/annotation.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/builder/curvemarker.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/builder/image.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/builder/label.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/builder/plot.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/builder/shape.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/config.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/constants.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/coords.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/colormaps_default.json +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/apply.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/arredit.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/arrow_down.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/arrow_up.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/autorefresh.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/autoscale.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/axes.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/busy.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/cell_edit.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/center.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/cmap_edit.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/contrast.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/copy.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/copytoclipboard.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/csapplylut.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/csautoscale.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/csection.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/csection_a.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/csection_line.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/csection_oblique.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/csperimage.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/curve_downsample.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/curvestyles/dots.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/curvestyles/lines.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/curvestyles/steps.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/curvestyles/sticks.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/curvetypes/xfy.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/curvetypes/yfx.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/delete.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/edit.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/edit_point_selection.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/editors/edit.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/editors/edit_add.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/editors/editcopy.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/editors/editdelete.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/editors/editpaste.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/editors/fileimport.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/editors/filesave.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/editors/imshow.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/editors/insert.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/editors/plot.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/editors/rename.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/eliminate_outliers.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/eraser.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/exit.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/expander_down.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/expander_right.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/export.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/file.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/fileclose.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/fileimport.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filenew.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/fileopen.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filesave.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filesaveas.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/doc.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/gif.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/html.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/jpg.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/pdf.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/png.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/pps.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/ps.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/tar.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/tgz.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/tif.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/txt.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/xls.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/filetypes/zip.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/font.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/full_range.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/funct.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/hcursor.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/hflip.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/imagestats.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/item_list.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/items/annotation.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/items/curve.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/items/errorbar.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/items/grid.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/items/histogram.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/items/histogram2d.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/items/image.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/items/label.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/items/legend.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/items/polygonmap.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/magnifier.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/cross.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/diamond.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/ellipse.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/hexagon.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/point.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/square.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/star.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/triangle_d.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/triangle_l.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/triangle_r.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/triangle_u.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markers/xcross.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markerstyles/cross_marker.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markerstyles/horiz_marker.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/markerstyles/vert_marker.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/mask/mask_circle.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/mask/mask_circle_outside.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/mask/mask_rectangle.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/mask/mask_rectangle_outside.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/mask/mask_tool.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/max.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/min.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/move.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/multipoint_selection.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/none.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/not_found.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/on_curve.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/bdiagpattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/crosspattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/dense1pattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/dense2pattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/dense3pattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/dense4pattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/dense5pattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/dense6pattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/dense7pattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/diagcrosspattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/fdiagpattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/horpattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/nobrush.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/solidpattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/patterns/verpattern.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/plotpy-banner.svg +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/plotpy-vertical.svg +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/plotpy.svg +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/point_selection.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/print.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/python.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/quickview.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/rectangular_select.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/refresh.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/save_all.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/scales/lin_lin.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/scales/lin_log.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/scales/log_lin.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/scales/log_log.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/selection.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/settings.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shape.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shapes/circle.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shapes/contour.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shapes/ellipse_shape.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shapes/freeform.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shapes/gtaxes.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shapes/marker.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shapes/oblique_rectangle.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shapes/point_shape.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shapes/polyline.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shapes/rectangle.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/shapes/segment.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/snapshot.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/styles/dash.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/styles/dashdot.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/styles/dashdotdot.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/styles/dot.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/styles/solid.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/trash.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/trimage_lock.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/trimage_unlock.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/vcursor.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/vflip.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/xcursor.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/xmax.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/xmin.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/data/icons/xrange.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/events.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/external/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/external/sliders/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/external/sliders/_generic_range_slider.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/external/sliders/_generic_slider.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/external/sliders/_labeled.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/external/sliders/_misc.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/external/sliders/_range_style.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/external/sliders/_sliders.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/interfaces/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/interfaces/items.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/interfaces/panel.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/interfaces/plotmanager.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/io.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/annotation.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/contour.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/curve/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/grid.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/histogram.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/image/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/image/base.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/image/filter.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/image/image_items.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/image/masked.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/image/misc.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/image/transform.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/label.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/shape/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/shape/axis.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/shape/base.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/shape/ellipse.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/shape/marker.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/shape/point.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/shape/polygon.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/shape/range.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/shape/rectangle.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/shape/segment.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/items/shape/svg.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/locale/fr/LC_MESSAGES/plotpy.mo +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/lutrange.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/mathutils/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/mathutils/arrayfuncs.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/mathutils/colormap.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/mathutils/geometry.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/mathutils/scaler.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/panels/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/panels/base.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/panels/contrastadjustment.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/panels/csection/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/panels/csection/csitem.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/panels/csection/csplot.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/panels/csection/cswidget.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/panels/itemlist.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/plot/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/plot/base.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/plot/interactive.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/plot/manager.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/plot/plotwidget.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/pyplot.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/styles/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/styles/axes.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/styles/base.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/styles/curve.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/styles/errorbar.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/styles/histogram.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/styles/image.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/styles/label.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/styles/polygonmap.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/styles/shape.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/data/brain.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/data/brain_cylinder.png +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/data/mr-brain.dcm +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/data/svg_target.svg +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/data/svg_tool.svg +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/data.py +0 -0
- {plotpy-2.3.3/plotpy/tests/benchmarks → plotpy-2.3.5/plotpy/tests/features}/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_auto_curve_image.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_autoscale_shapes.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_builder.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_colormap_editor.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_colormap_manager.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_contrast.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_cursors.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_dicom_image.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_fit.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_image_coords.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_imagefilter.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_imagesuperp.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_loadsaveitems_hdf5.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_loadsaveitems_json.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_loadsaveitems_pickle.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_manager.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_no_auto_tools.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_plot_log.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_plot_types.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_plot_yreverse.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_pyplot.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/features/test_resize.py +0 -0
- {plotpy-2.3.3/plotpy/tests/features → plotpy-2.3.5/plotpy/tests/items}/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_annotations.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_curves.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_curves_highdpi.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_hist2d.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_histogram.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_image.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_image_contour.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_image_masked.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_image_masked_xy.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_image_rgb.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_image_xy.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_mandelbrot.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_pcolor.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_polygons.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_svgshapes.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/items/test_transform.py +0 -0
- {plotpy-2.3.3/plotpy/tests/items → plotpy-2.3.5/plotpy/tests/tools}/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_actiontool.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_cross_section.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_cross_section_line.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_cross_section_oblique.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_customize_shape_tool.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_downsample_curve.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_edit_point.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_get_point.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_get_points.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_get_rectangle.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_get_rectangle_with_svg.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_get_segment.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/tools/test_image_plot_tools.py +0 -0
- {plotpy-2.3.3/plotpy/tests/tools → plotpy-2.3.5/plotpy/tests/unit}/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_annotation_tools.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_aspect_ratio_tool.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_baseplot.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_contour.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_cursor_tools.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_display_coords_tool.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_events.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_fontparam.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_geometry.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_highprecisionxy.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_io.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_line.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_line_cross_section_tool.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_multiline_tools.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_oblique_cross_section_tool.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_plot_image.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_rect_zoom.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_seg_dist.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/test_styles.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/unit/utils.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/vistools.py +0 -0
- {plotpy-2.3.3/plotpy/tests/unit → plotpy-2.3.5/plotpy/tests/widgets}/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_dotarraydemo.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_filtertest1.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_filtertest2.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_fliprotate.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_plot_timecurve.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_qtdesigner.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_qtdesigner.ui +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_resize_dialog.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_rotatecrop.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_simple_dialog.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_simple_window.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tests/widgets/test_syncplot.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/annotation.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/axes.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/base.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/cross_section.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/cursor.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/image.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/item.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/label.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/misc.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/plot.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/selection.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/tools/shape.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/about.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/basetransform.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/colormap/__init__.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/colormap/_slider.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/colormap/widget.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/fit.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/fliprotate.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/imagefile.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/qtdesigner.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/resizedialog.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/rotatecrop.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy/widgets/selectdialog.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/plotpy-tests.desktop +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/qtdesigner/plotplugin.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/requirements.txt +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/setup.cfg +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/setup.py +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/src/arrays.hpp +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/src/contour2d.pyx +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/src/debug.hpp +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/src/histogram2d.pyx +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/src/mandelbrot.pyx +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/src/pcolor.cpp +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/src/points.hpp +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/src/scaler.cpp +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/src/scaler.hpp +0 -0
- {plotpy-2.3.3 → plotpy-2.3.5}/src/traits.hpp +0 -0
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Changelog #
|
|
2
2
|
|
|
3
|
+
## Version 2.3.5 ##
|
|
4
|
+
|
|
5
|
+
This release is mainly intended to fix the Windows binary distribution, which was not
|
|
6
|
+
supporting NumPy 2.0.
|
|
7
|
+
|
|
8
|
+
🛠️ Bug fixes:
|
|
9
|
+
|
|
10
|
+
* Moved back `conftest.py` to the `tests` folder (was in the root folder), so that
|
|
11
|
+
`pytest` can be executed with proper configuration when running the test suite
|
|
12
|
+
from the installed package
|
|
13
|
+
|
|
14
|
+
* Removed benchmarks from automated test suite (not relevant for the end user):
|
|
15
|
+
added `plotpy-benchmarks` script to run the benchmarks
|
|
16
|
+
|
|
17
|
+
## Version 2.3.4 ##
|
|
18
|
+
|
|
19
|
+
In this release, test coverage is 79%.
|
|
20
|
+
|
|
21
|
+
🛠️ Bug fixes:
|
|
22
|
+
|
|
23
|
+
* Add support for NumPy 2.0:
|
|
24
|
+
* Updated build system to use NumPy 2.0 on Python > 3.8 and NumPy 1 on Python 3.8
|
|
25
|
+
* Use `numpy.asarray` instead of `numpy.array(..., copy=False)`
|
|
26
|
+
* Use `numpy.isin` instead of `numpy.in1d`
|
|
27
|
+
* Use `scipy.integrate.trapezoid` instead of `numpy.trapz`
|
|
28
|
+
|
|
29
|
+
* `ColorMapManager`: fix segmentation fault with PySide6 on Linux
|
|
30
|
+
|
|
3
31
|
## Version 2.3.3 ##
|
|
4
32
|
|
|
5
33
|
In this release, test coverage is 79%.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PlotPy
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.5
|
|
4
4
|
Summary: Curve and image plotting tools for Python/Qt applications
|
|
5
5
|
Author-email: Codra <p.raybaut@codra.fr>
|
|
6
6
|
License: BSD 3-Clause License
|
|
@@ -64,7 +64,7 @@ Description-Content-Type: text/markdown
|
|
|
64
64
|
License-File: LICENSE
|
|
65
65
|
Requires-Dist: guidata>=3.4
|
|
66
66
|
Requires-Dist: PythonQwt>=0.12.1
|
|
67
|
-
Requires-Dist: NumPy
|
|
67
|
+
Requires-Dist: NumPy>=1.17
|
|
68
68
|
Requires-Dist: SciPy>=1.3
|
|
69
69
|
Requires-Dist: Pillow
|
|
70
70
|
Requires-Dist: tifffile
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: PlotPy
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.5
|
|
4
4
|
Summary: Curve and image plotting tools for Python/Qt applications
|
|
5
5
|
Author-email: Codra <p.raybaut@codra.fr>
|
|
6
6
|
License: BSD 3-Clause License
|
|
@@ -64,7 +64,7 @@ Description-Content-Type: text/markdown
|
|
|
64
64
|
License-File: LICENSE
|
|
65
65
|
Requires-Dist: guidata>=3.4
|
|
66
66
|
Requires-Dist: PythonQwt>=0.12.1
|
|
67
|
-
Requires-Dist: NumPy
|
|
67
|
+
Requires-Dist: NumPy>=1.17
|
|
68
68
|
Requires-Dist: SciPy>=1.3
|
|
69
69
|
Requires-Dist: Pillow
|
|
70
70
|
Requires-Dist: tifffile
|
|
@@ -2,7 +2,6 @@ CHANGELOG.md
|
|
|
2
2
|
LICENSE
|
|
3
3
|
MANIFEST.in
|
|
4
4
|
README.md
|
|
5
|
-
conftest.py
|
|
6
5
|
plotpy-tests.desktop
|
|
7
6
|
pyproject.toml
|
|
8
7
|
requirements.txt
|
|
@@ -366,6 +365,7 @@ plotpy/styles/label.py
|
|
|
366
365
|
plotpy/styles/polygonmap.py
|
|
367
366
|
plotpy/styles/shape.py
|
|
368
367
|
plotpy/tests/__init__.py
|
|
368
|
+
plotpy/tests/conftest.py
|
|
369
369
|
plotpy/tests/data.py
|
|
370
370
|
plotpy/tests/vistools.py
|
|
371
371
|
plotpy/tests/benchmarks/__init__.py
|
|
@@ -29,11 +29,11 @@ To run the unittests, you need:
|
|
|
29
29
|
|
|
30
30
|
Then run the following command::
|
|
31
31
|
|
|
32
|
-
pytest
|
|
32
|
+
pytest plotpy
|
|
33
33
|
|
|
34
34
|
To run test with coverage support, use the following command::
|
|
35
35
|
|
|
36
|
-
pytest -v --cov --cov-report=html
|
|
36
|
+
pytest -v --cov --cov-report=html plotpy
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
Code formatting
|
|
@@ -72,7 +72,7 @@ That's it, you can now run the tests using the following command:
|
|
|
72
72
|
|
|
73
73
|
.. code-block:: bash
|
|
74
74
|
|
|
75
|
-
pytest
|
|
75
|
+
pytest plotpy
|
|
76
76
|
|
|
77
77
|
If you want to rely on Visual Studio Code for editing and take advantage of the
|
|
78
78
|
project settings and tasks, you will need to set the following environment variable:
|
|
@@ -160,4 +160,4 @@ That's it, you can now run the tests using the following command:
|
|
|
160
160
|
|
|
161
161
|
.. code-block:: bash
|
|
162
162
|
|
|
163
|
-
pytest
|
|
163
|
+
pytest plotpy
|
|
@@ -20,7 +20,7 @@ External resources:
|
|
|
20
20
|
.. _GitHub: https://github.com/PierreRaybaut/plotpy
|
|
21
21
|
"""
|
|
22
22
|
|
|
23
|
-
__version__ = "2.3.
|
|
23
|
+
__version__ = "2.3.5"
|
|
24
24
|
__VERSION__ = tuple([int(number) for number in __version__.split(".")])
|
|
25
25
|
|
|
26
26
|
# --- Important note: DATAPATH and LOCALEPATH are used by guidata.configtools
|
|
@@ -388,8 +388,8 @@ class CurveItem(QwtPlotCurve):
|
|
|
388
388
|
this method is called to update decimated data (i.e. only update 1/N value
|
|
389
389
|
with N set in CurveItem.param.decimation).
|
|
390
390
|
"""
|
|
391
|
-
self._x = np.
|
|
392
|
-
self._y = np.
|
|
391
|
+
self._x = np.asarray(x)
|
|
392
|
+
self._y = np.asarray(y)
|
|
393
393
|
self._setData(self._x, self._y)
|
|
394
394
|
|
|
395
395
|
def is_empty(self) -> bool:
|
|
@@ -144,11 +144,11 @@ class ErrorBarCurveItem(CurveItem):
|
|
|
144
144
|
"""
|
|
145
145
|
CurveItem.set_data(self, x, y)
|
|
146
146
|
if dx is not None:
|
|
147
|
-
dx = np.
|
|
147
|
+
dx = np.asarray(dx)
|
|
148
148
|
if dx.size == 0:
|
|
149
149
|
dx = None
|
|
150
150
|
if dy is not None:
|
|
151
|
-
dy = np.
|
|
151
|
+
dy = np.asarray(dy)
|
|
152
152
|
if dy.size == 0:
|
|
153
153
|
dy = None
|
|
154
154
|
self._dx = dx
|
|
@@ -264,9 +264,9 @@ class PolygonMapItem(QwtPlotItem):
|
|
|
264
264
|
* x: NumPy array
|
|
265
265
|
* y: NumPy array
|
|
266
266
|
"""
|
|
267
|
-
self._pts = np.
|
|
268
|
-
self._n = np.
|
|
269
|
-
self._c = np.
|
|
267
|
+
self._pts = np.asarray(pts)
|
|
268
|
+
self._n = np.asarray(n)
|
|
269
|
+
self._c = np.asarray(c)
|
|
270
270
|
xmin, ymin = self._pts.min(axis=0)
|
|
271
271
|
xmax, ymax = self._pts.max(axis=0)
|
|
272
272
|
self.bounds = QC.QRectF(xmin, ymin, xmax - xmin, ymax - ymin)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the terms of the BSD 3-Clause
|
|
4
|
+
# (see plotpy/LICENSE for details)
|
|
5
|
+
|
|
6
|
+
"""
|
|
7
|
+
plotpy benchmarks
|
|
8
|
+
=================
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from .test_benchmarks import test_benchmarks
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def run() -> None:
|
|
15
|
+
"""Run plotpy benchmarks"""
|
|
16
|
+
test_benchmarks()
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
if __name__ == "__main__":
|
|
20
|
+
run()
|
|
@@ -3,12 +3,37 @@
|
|
|
3
3
|
# Licensed under the terms of the BSD 3-Clause
|
|
4
4
|
# (see plotpy/LICENSE for details)
|
|
5
5
|
|
|
6
|
-
"""
|
|
6
|
+
"""
|
|
7
|
+
PlotPy plot benchmark
|
|
8
|
+
---------------------
|
|
9
|
+
|
|
10
|
+
This script benchmarks PlotPy plotting features.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
Results obtained with PlotPy v2.3.5 on Windows 11 with a i5-1335U CPU @ 1.30 GHz:
|
|
14
|
+
|
|
15
|
+
.. code-block:: none
|
|
16
|
+
|
|
17
|
+
PlotPy plot benchmark [Python 3.12.3 64 bits, Qt 5.15.2, PyQt 5.15.10 on Windows]
|
|
18
|
+
|
|
19
|
+
N | ∆t (ms) | Description
|
|
20
|
+
--------------------------------------------------------------------------------
|
|
21
|
+
5e+06 | 215 | Simple curve
|
|
22
|
+
2e+05 | 774 | Curve with markers
|
|
23
|
+
1e+06 | 2411 | Curve with sticks
|
|
24
|
+
1e+04 | 2025 | Error bar curve (vertical bars only)
|
|
25
|
+
1e+04 | 198 | Error bar curve (horizontal and vertical bars)
|
|
26
|
+
1e+06 | 105 | Simple histogram
|
|
27
|
+
1e+03 | 722 | Polar pcolor
|
|
28
|
+
7e+03 | 902 | Simple image
|
|
29
|
+
"""
|
|
7
30
|
|
|
8
31
|
import time
|
|
9
32
|
|
|
10
33
|
import guidata
|
|
11
34
|
import numpy as np
|
|
35
|
+
import pytest
|
|
36
|
+
from guidata.env import execenv
|
|
12
37
|
from guidata.qthelpers import qt_app_context
|
|
13
38
|
from guidata.widgets import about
|
|
14
39
|
from qtpy import QtWidgets as QW
|
|
@@ -23,6 +48,17 @@ class BaseBM:
|
|
|
23
48
|
MAKE_FUNC = make.curve # to be overriden in subclasses
|
|
24
49
|
WIN_TYPE = "auto"
|
|
25
50
|
|
|
51
|
+
@classmethod
|
|
52
|
+
def print_header(cls):
|
|
53
|
+
"""Print header for benchmark results"""
|
|
54
|
+
execenv.print(f"PlotPy plot benchmark [{about.get_python_libs_infos()}]")
|
|
55
|
+
execenv.print()
|
|
56
|
+
table_header = (
|
|
57
|
+
"N".rjust(10) + " | " + "∆t (ms)".rjust(7) + " | " + "Description"
|
|
58
|
+
).ljust(80)
|
|
59
|
+
execenv.print(table_header)
|
|
60
|
+
execenv.print("-" * len(table_header))
|
|
61
|
+
|
|
26
62
|
def __init__(self, name, nsamples, **options):
|
|
27
63
|
self.name = name
|
|
28
64
|
self.nsamples = int(nsamples)
|
|
@@ -49,16 +85,19 @@ class BaseBM:
|
|
|
49
85
|
QW.QApplication.processEvents()
|
|
50
86
|
plot = win.manager.get_plot()
|
|
51
87
|
|
|
52
|
-
# Create item
|
|
88
|
+
# Create item
|
|
53
89
|
self.make_item()
|
|
54
90
|
|
|
55
91
|
# Benchmarking
|
|
56
92
|
t0 = time.time()
|
|
57
93
|
self.add_to_plot(plot)
|
|
58
|
-
print(self.name + ":")
|
|
59
|
-
print(" N = {}".format(self.nsamples))
|
|
60
94
|
plot.replot() # Force replot
|
|
61
|
-
|
|
95
|
+
QW.QApplication.processEvents()
|
|
96
|
+
dt = (time.time() - t0) * 1e3
|
|
97
|
+
|
|
98
|
+
row = f"{self.nsamples:10.0e} | {int(dt):7} | {self.name}"
|
|
99
|
+
execenv.print(row)
|
|
100
|
+
|
|
62
101
|
return win
|
|
63
102
|
|
|
64
103
|
|
|
@@ -122,13 +161,11 @@ class PColorBM(BaseBM):
|
|
|
122
161
|
return x, y, z
|
|
123
162
|
|
|
124
163
|
|
|
164
|
+
@pytest.mark.skip(reason="Not relevant in automated test suite")
|
|
125
165
|
def test_benchmarks():
|
|
126
166
|
"""Run benchmark"""
|
|
127
167
|
# Print(informations banner)
|
|
128
|
-
|
|
129
|
-
print(title)
|
|
130
|
-
print("-" * len(title))
|
|
131
|
-
print()
|
|
168
|
+
BaseBM.print_header()
|
|
132
169
|
|
|
133
170
|
_app = guidata.qapplication()
|
|
134
171
|
|
|
@@ -141,7 +178,7 @@ def test_benchmarks():
|
|
|
141
178
|
CurveBM("Curve with sticks", 1e6, curvestyle="Sticks"),
|
|
142
179
|
ErrorBarBM("Error bar curve (vertical bars only)", 1e4),
|
|
143
180
|
ErrorBarBM("Error bar curve (horizontal and vertical bars)", 1e4, dx=True),
|
|
144
|
-
HistogramBM("Simple histogram", 1e6, bins=
|
|
181
|
+
HistogramBM("Simple histogram", 1e6, bins=10000),
|
|
145
182
|
PColorBM("Polar pcolor", 1e3),
|
|
146
183
|
ImageBM("Simple image", 7e3, interpolation="antialiasing"),
|
|
147
184
|
):
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
# guitest: show
|
|
9
9
|
|
|
10
10
|
import numpy as np
|
|
11
|
+
import pytest
|
|
11
12
|
from guidata.qthelpers import qt_app_context
|
|
12
13
|
|
|
13
14
|
from plotpy.builder import make
|
|
@@ -28,6 +29,7 @@ def compute_image(i, N=7500, M=1750):
|
|
|
28
29
|
return (np.random.rand(N, M) * 65536).astype(np.int16)
|
|
29
30
|
|
|
30
31
|
|
|
32
|
+
@pytest.mark.skip(reason="Not relevant in automated test suite")
|
|
31
33
|
def test_bigimages():
|
|
32
34
|
"""Test Bigimages"""
|
|
33
35
|
with qt_app_context(exec_loop=True):
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
# guitest: show
|
|
9
9
|
|
|
10
10
|
import numpy as np
|
|
11
|
+
import pytest
|
|
11
12
|
from guidata.qthelpers import qt_app_context
|
|
12
13
|
|
|
13
14
|
# import cProfile
|
|
@@ -72,9 +73,10 @@ class LoadTest(QW.QMainWindow):
|
|
|
72
73
|
QW.QApplication.processEvents()
|
|
73
74
|
|
|
74
75
|
|
|
75
|
-
|
|
76
|
+
@pytest.mark.skip(reason="Not relevant in automated test suite")
|
|
77
|
+
def test_loadtest():
|
|
78
|
+
"""Run load test"""
|
|
76
79
|
with qt_app_context(exec_loop=True):
|
|
77
|
-
app = QW.QApplication([])
|
|
78
80
|
# import time
|
|
79
81
|
# t0 = time.time()
|
|
80
82
|
# with cProfile.Profile() as pr:
|
|
@@ -87,3 +89,7 @@ if __name__ == "__main__":
|
|
|
87
89
|
# stats.sort_stats('cumulative')
|
|
88
90
|
# stats.dump_stats('.prof_stats')
|
|
89
91
|
# stats.print_stats()
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
if __name__ == "__main__":
|
|
95
|
+
test_loadtest()
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
# content of conftest.py
|
|
2
2
|
|
|
3
3
|
import guidata
|
|
4
|
+
import h5py
|
|
5
|
+
import numpy
|
|
6
|
+
import PIL
|
|
4
7
|
import qtpy
|
|
8
|
+
import qwt
|
|
9
|
+
import scipy
|
|
10
|
+
import tifffile
|
|
5
11
|
from guidata.env import execenv
|
|
6
12
|
|
|
7
13
|
import plotpy
|
|
@@ -18,5 +24,9 @@ def pytest_report_header(config):
|
|
|
18
24
|
qtbindings_version = qtpy.PYQT_VERSION
|
|
19
25
|
return [
|
|
20
26
|
f"PlotPy {plotpy.__version__}, guidata {guidata.__version__}, "
|
|
27
|
+
f"PythonQwt {qwt.__version__}, "
|
|
21
28
|
f"{qtpy.API_NAME} {qtbindings_version} [Qt version: {qtpy.QT_VERSION}]",
|
|
29
|
+
f"NumPy {numpy.__version__}, SciPy {scipy.__version__}, "
|
|
30
|
+
f"h5py {h5py.__version__}, "
|
|
31
|
+
f"Pillow {PIL.__version__}, tifffile {tifffile.__version__}",
|
|
22
32
|
]
|
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
# guitest: show
|
|
9
9
|
|
|
10
|
+
import numpy as np
|
|
11
|
+
import scipy.integrate as spt
|
|
10
12
|
from guidata.qthelpers import qt_app_context
|
|
11
|
-
from numpy import linspace, sin, trapz
|
|
12
13
|
|
|
13
14
|
from plotpy.builder import make
|
|
14
15
|
from plotpy.tests import vistools as ptv
|
|
@@ -16,8 +17,8 @@ from plotpy.tests import vistools as ptv
|
|
|
16
17
|
|
|
17
18
|
def test_computations():
|
|
18
19
|
"""Test computations"""
|
|
19
|
-
x = linspace(-10, 10, 1000)
|
|
20
|
-
y = sin(sin(sin(x)))
|
|
20
|
+
x = np.linspace(-10, 10, 1000)
|
|
21
|
+
y = np.sin(np.sin(np.sin(x)))
|
|
21
22
|
with qt_app_context(exec_loop=True):
|
|
22
23
|
curve = make.curve(x, y, "ab", "b")
|
|
23
24
|
range = make.range(-2, 2)
|
|
@@ -26,7 +27,7 @@ def test_computations():
|
|
|
26
27
|
)
|
|
27
28
|
|
|
28
29
|
disp1 = make.computation(
|
|
29
|
-
range, "BL", "trapz=%g", curve, lambda x, y:
|
|
30
|
+
range, "BL", "trapz=%g", curve, lambda x, y: spt.trapezoid(y, x)
|
|
30
31
|
)
|
|
31
32
|
|
|
32
33
|
disp2 = make.computations(
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import numpy as np
|
|
9
9
|
import pytest
|
|
10
|
+
from guidata.qthelpers import qt_app_context
|
|
10
11
|
|
|
11
12
|
from plotpy.builder import make
|
|
12
13
|
from plotpy.tests.unit.test_builder_curve import show_items_qtbot
|
|
@@ -61,28 +62,30 @@ def _make_annotation(
|
|
|
61
62
|
],
|
|
62
63
|
)
|
|
63
64
|
def test_builder_annotation_params(method):
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
items
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
65
|
+
"""Test PlotBuilder annotation factory method parameters"""
|
|
66
|
+
with qt_app_context(exec_loop=False):
|
|
67
|
+
items = []
|
|
68
|
+
for show_label in [True, False]:
|
|
69
|
+
items.append(
|
|
70
|
+
_make_annotation(
|
|
71
|
+
method,
|
|
72
|
+
title="title",
|
|
73
|
+
subtitle="subtitle",
|
|
74
|
+
show_label=show_label,
|
|
75
|
+
)
|
|
72
76
|
)
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
items
|
|
88
|
-
show_items_qtbot(items)
|
|
77
|
+
for show_computations in [True, False]:
|
|
78
|
+
items.append(_make_annotation(method, show_computations=show_computations))
|
|
79
|
+
for show_subtitle in [True, False]:
|
|
80
|
+
items.append(_make_annotation(method, show_subtitle=show_subtitle))
|
|
81
|
+
for format in ["%f", "%e"]:
|
|
82
|
+
items.append(_make_annotation(method, format=format))
|
|
83
|
+
for uncertainty in [0.0, 1.0]:
|
|
84
|
+
items.append(_make_annotation(method, uncertainty=uncertainty))
|
|
85
|
+
for transform_matrix in [None, np.identity(3)]:
|
|
86
|
+
items.append(_make_annotation(method, transform_matrix=transform_matrix))
|
|
87
|
+
for readonly in [True, False]:
|
|
88
|
+
items.append(_make_annotation(method, readonly=readonly))
|
|
89
|
+
for private in [True, False]:
|
|
90
|
+
items.append(_make_annotation(method, private=private))
|
|
91
|
+
show_items_qtbot(items)
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import numpy as np
|
|
9
9
|
import pytest
|
|
10
|
-
from guidata.qthelpers import exec_dialog
|
|
10
|
+
from guidata.qthelpers import exec_dialog, qt_app_context
|
|
11
11
|
from qtpy.QtCore import Qt
|
|
12
12
|
from qwt import QwtPlotCurve
|
|
13
13
|
|
|
@@ -43,8 +43,9 @@ def _make_curve_style(shade, curvestyle, baseline):
|
|
|
43
43
|
@pytest.mark.parametrize("baseline", [0.0])
|
|
44
44
|
def test_builder_curve_curve_style(shade, curvestyle, baseline):
|
|
45
45
|
"""Test curve parameters of curve() method"""
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
with qt_app_context(exec_loop=False):
|
|
47
|
+
curve = _make_curve_style(shade, curvestyle, baseline)
|
|
48
|
+
show_items_qtbot([curve], "curve")
|
|
48
49
|
|
|
49
50
|
|
|
50
51
|
@pytest.mark.parametrize("shade", [0, 0.4, 1.0])
|
|
@@ -52,8 +53,9 @@ def test_builder_curve_curve_style(shade, curvestyle, baseline):
|
|
|
52
53
|
@pytest.mark.parametrize("baseline", [0.0, 1.0])
|
|
53
54
|
def test_builder_curve_curve_shade_baseline(shade, curvestyle, baseline):
|
|
54
55
|
"""Test curve parameters of curve() method"""
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
with qt_app_context(exec_loop=False):
|
|
57
|
+
curve = _make_curve_style(shade, curvestyle, baseline)
|
|
58
|
+
show_items_qtbot([curve], "curve")
|
|
57
59
|
|
|
58
60
|
|
|
59
61
|
def _make_curve_dsamp(dsamp_factor, use_dsamp):
|
|
@@ -70,16 +72,18 @@ def _make_curve_dsamp(dsamp_factor, use_dsamp):
|
|
|
70
72
|
@pytest.mark.parametrize("use_dsamp", [True])
|
|
71
73
|
def test_builder_curve_dsamp_on(dsamp_factor, use_dsamp):
|
|
72
74
|
"""Test downsampling parameters of curve() method: use_dsamp=True"""
|
|
73
|
-
|
|
74
|
-
|
|
75
|
+
with qt_app_context(exec_loop=False):
|
|
76
|
+
curve = _make_curve_dsamp(dsamp_factor, use_dsamp)
|
|
77
|
+
show_items_qtbot([curve], "curve")
|
|
75
78
|
|
|
76
79
|
|
|
77
80
|
@pytest.mark.parametrize("dsamp_factor", [1, 2])
|
|
78
81
|
@pytest.mark.parametrize("use_dsamp", [False])
|
|
79
82
|
def test_builder_curve_dsamp_off(dsamp_factor, use_dsamp):
|
|
80
83
|
"""Test downsampling parameters of curve() method: use_dsamp=False"""
|
|
81
|
-
|
|
82
|
-
|
|
84
|
+
with qt_app_context(exec_loop=False):
|
|
85
|
+
curve = _make_curve_dsamp(dsamp_factor, use_dsamp)
|
|
86
|
+
show_items_qtbot([curve], "curve")
|
|
83
87
|
|
|
84
88
|
|
|
85
89
|
def _make_curve_linestyle(color, linestyle, linewidth):
|
|
@@ -102,8 +106,9 @@ def _make_curve_linestyle(color, linestyle, linewidth):
|
|
|
102
106
|
@pytest.mark.parametrize("linewidth", [1, 2])
|
|
103
107
|
def test_builder_curve_line_style(color, linestyle, linewidth):
|
|
104
108
|
"""Test line parameters of curve() method"""
|
|
105
|
-
|
|
106
|
-
|
|
109
|
+
with qt_app_context(exec_loop=False):
|
|
110
|
+
curve = _make_curve_linestyle(color, linestyle, linewidth)
|
|
111
|
+
show_items_qtbot([curve], "curve")
|
|
107
112
|
|
|
108
113
|
|
|
109
114
|
@pytest.mark.parametrize("color", ["red", "blue"])
|
|
@@ -111,8 +116,9 @@ def test_builder_curve_line_style(color, linestyle, linewidth):
|
|
|
111
116
|
@pytest.mark.parametrize("linewidth", [1, 2])
|
|
112
117
|
def test_builder_curve_line_color(color, linestyle, linewidth):
|
|
113
118
|
"""Test line parameters of curve() method"""
|
|
114
|
-
|
|
115
|
-
|
|
119
|
+
with qt_app_context(exec_loop=False):
|
|
120
|
+
curve = _make_curve_linestyle(color, linestyle, linewidth)
|
|
121
|
+
show_items_qtbot([curve], "curve")
|
|
116
122
|
|
|
117
123
|
|
|
118
124
|
def _make_curve_marker(marker, markersize, markerfacecolor, markeredgecolor):
|
|
@@ -160,8 +166,9 @@ def test_builder_curve_marker_params_symbol(
|
|
|
160
166
|
marker, markersize, markerfacecolor, markeredgecolor
|
|
161
167
|
):
|
|
162
168
|
"""Test marker parameters of curve() methodg"""
|
|
163
|
-
|
|
164
|
-
|
|
169
|
+
with qt_app_context(exec_loop=False):
|
|
170
|
+
curve = _make_curve_marker(marker, markersize, markerfacecolor, markeredgecolor)
|
|
171
|
+
show_items_qtbot([curve], "curve")
|
|
165
172
|
|
|
166
173
|
|
|
167
174
|
@pytest.mark.parametrize("marker", ["Cross"])
|
|
@@ -172,5 +179,6 @@ def test_builder_curve_marker_size_color(
|
|
|
172
179
|
marker, markersize, markerfacecolor, markeredgecolor
|
|
173
180
|
):
|
|
174
181
|
"""Test marker parameters of curve() methodg"""
|
|
175
|
-
|
|
176
|
-
|
|
182
|
+
with qt_app_context(exec_loop=False):
|
|
183
|
+
curve = _make_curve_marker(marker, markersize, markerfacecolor, markeredgecolor)
|
|
184
|
+
show_items_qtbot([curve], "curve")
|