PlotPy 2.7.2__tar.gz → 2.7.4__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.7.2 → plotpy-2.7.4}/CHANGELOG.md +27 -0
- {plotpy-2.7.2/PlotPy.egg-info → plotpy-2.7.4}/PKG-INFO +3 -2
- {plotpy-2.7.2 → plotpy-2.7.4/PlotPy.egg-info}/PKG-INFO +3 -2
- {plotpy-2.7.2 → plotpy-2.7.4}/PlotPy.egg-info/SOURCES.txt +6 -5
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/__init__.py +1 -1
- plotpy-2.7.4/plotpy/data/icons/select.svg +49 -0
- plotpy-2.7.4/plotpy/data/icons/select_area.svg +63 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/image/base.py +40 -7
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/image/filter.py +1 -1
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/image/image_items.py +10 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/image/misc.py +6 -2
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/image/transform.py +2 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/panels/csection/csplot.py +1 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/plot/manager.py +74 -89
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/data.py +14 -2
- plotpy-2.7.4/plotpy/tests/features/test_data_update_curve.py +138 -0
- plotpy-2.7.2/plotpy/tests/features/test_image_data_update.py → plotpy-2.7.4/plotpy/tests/features/test_data_update_image.py +2 -2
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_fit.py +2 -2
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_mandelbrot.py +4 -3
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_dotarraydemo.py +2 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/plot.py +1 -1
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/selection.py +1 -1
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/fit.py +7 -7
- {plotpy-2.7.2 → plotpy-2.7.4}/src/histogram2d.c +174 -192
- {plotpy-2.7.2 → plotpy-2.7.4}/src/mandelbrot.c +174 -192
- plotpy-2.7.2/plotpy/data/icons/rectangular_select.png +0 -0
- plotpy-2.7.2/plotpy/data/icons/selection.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/LICENSE +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/MANIFEST.in +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/PlotPy.egg-info/dependency_links.txt +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/PlotPy.egg-info/entry_points.txt +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/PlotPy.egg-info/requires.txt +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/PlotPy.egg-info/top_level.txt +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/README.md +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/colormaps/README.md +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/colormaps/_cm.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/colormaps/colormap.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/colormaps/matplotlib_cmaps.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/_static/favicon.ico +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/changelog.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/conf.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/dev/build.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/dev/contribute.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/dev/guiqwt_to_plotpy.csv +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/dev/guiqwt_to_plotpy.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/dev/index.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/dev/platforms.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/dev/v1_to_guidata_v3.csv +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/dev/v1_to_v2.csv +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/dev/v1_to_v2.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/colormapmanager.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/events.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/fit.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/fliprotate.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/imagefile.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/index.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/io.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/items/builder.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/items/examples.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/items/index.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/items/overview.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/items/reference.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/mathutils/colormaps.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/mathutils/geometry.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/mathutils/index.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/mathutils/scaler.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/panels/index.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/panels/overview.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/panels/reference.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/plot/examples.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/plot/index.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/plot/overview.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/plot/reference.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/pyplot.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/resizedialog.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/rotatecrop.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/selectdialog.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/signals.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/styles/index.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/styles/overview.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/styles/reference.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/tools/examples.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/tools/index.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/tools/overview.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/features/tools/reference.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/my_plot_manager.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/my_plot_manager.svg +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/panorama-vertical.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/panorama-vertical.svg +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/panorama.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/panorama.svg +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/plot_widgets.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/plot_widgets.svg +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/plotpy-banner.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/plotpy-vertical.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/__init__.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/computations.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/contrast.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/cross_section.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/cross_section2.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/dotarraydemo.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/filtertest1.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/filtertest2.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/fit.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/get_point.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/hist2d.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/image_plot_tools.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/imagefilter.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/imagesuperp.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/imagexy.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/manager.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/mandelbrot.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/pcolor.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/plot.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/simple_dialog.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/simple_window.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/images/screenshots/transform.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/index.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/intro/examples.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/intro/index.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/intro/installation.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/intro/licenses.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/intro/motivation.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/intro/overview.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/requirements.rst +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/doc/update_requirements.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/builder/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/builder/annotation.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/builder/curvemarker.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/builder/image.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/builder/label.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/builder/plot.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/builder/shape.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/config.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/constants.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/coords.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/colormaps_default.json +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/apply.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/arredit.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/arrow_down.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/arrow_up.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/autorefresh.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/autoscale.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/axes.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/busy.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/cell_edit.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/center.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/cmap_edit.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/contrast.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/copy.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/copytoclipboard.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/csapplylut.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/csautoscale.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/csection.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/csection_a.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/csection_line.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/csection_oblique.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/csperimage.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/curve_downsample.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/curvestyles/dots.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/curvestyles/lines.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/curvestyles/steps.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/curvestyles/sticks.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/curvetypes/xfy.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/curvetypes/yfx.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/delete.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/edit.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/edit_point_selection.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/editors/edit.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/editors/edit_add.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/editors/editcopy.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/editors/editdelete.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/editors/editpaste.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/editors/fileimport.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/editors/filesave.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/editors/imshow.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/editors/insert.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/editors/plot.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/editors/rename.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/eliminate_outliers.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/eraser.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/exit.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/expander_down.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/expander_right.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/export.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/file.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/fileclose.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/fileimport.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filenew.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/fileopen.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filesave.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filesaveas.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/doc.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/gif.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/html.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/jpg.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/pdf.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/png.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/pps.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/ps.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/tar.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/tgz.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/tif.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/txt.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/xls.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/filetypes/zip.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/font.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/full_range.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/funct.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/hcursor.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/hflip.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/imagestats.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/item_list.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/items/annotation.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/items/curve.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/items/errorbar.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/items/grid.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/items/histogram.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/items/histogram2d.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/items/image.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/items/label.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/items/legend.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/items/polygonmap.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/magnifier.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/cross.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/diamond.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/ellipse.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/hexagon.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/point.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/square.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/star.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/triangle_d.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/triangle_l.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/triangle_r.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/triangle_u.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markers/xcross.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markerstyles/cross_marker.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markerstyles/horiz_marker.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/markerstyles/vert_marker.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/mask/mask_circle.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/mask/mask_circle_outside.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/mask/mask_rectangle.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/mask/mask_rectangle_outside.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/mask/mask_tool.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/max.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/min.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/move.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/multipoint_selection.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/none.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/not_found.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/on_curve.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/bdiagpattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/crosspattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/dense1pattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/dense2pattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/dense3pattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/dense4pattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/dense5pattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/dense6pattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/dense7pattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/diagcrosspattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/fdiagpattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/horpattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/nobrush.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/solidpattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/patterns/verpattern.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/plotpy-banner.svg +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/plotpy-vertical.svg +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/plotpy.svg +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/point_selection.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/print.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/python.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/quickview.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/refresh.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/save_all.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/scales/lin_lin.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/scales/lin_log.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/scales/log_lin.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/scales/log_log.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/settings.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shape.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shapes/circle.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shapes/contour.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shapes/ellipse_shape.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shapes/gtaxes.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shapes/marker.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shapes/oblique_rectangle.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shapes/point_shape.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shapes/polygon.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shapes/polyline.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shapes/rectangle.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/shapes/segment.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/snapshot.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/styles/dash.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/styles/dashdot.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/styles/dashdotdot.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/styles/dot.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/styles/solid.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/trash.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/trimage_lock.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/trimage_unlock.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/vcursor.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/vflip.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/xcursor.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/xmax.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/xmin.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/xrange.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/data/icons/zlog.svg +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/events.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/external/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/external/sliders/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/external/sliders/_generic_range_slider.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/external/sliders/_generic_slider.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/external/sliders/_labeled.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/external/sliders/_misc.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/external/sliders/_range_style.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/external/sliders/_sliders.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/interfaces/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/interfaces/items.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/interfaces/panel.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/interfaces/plotmanager.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/io.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/annotation.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/contour.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/curve/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/curve/base.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/curve/errorbar.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/grid.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/histogram.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/image/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/image/masked.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/label.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/polygonmap.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/shape/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/shape/axis.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/shape/base.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/shape/ellipse.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/shape/marker.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/shape/point.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/shape/polygon.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/shape/range.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/shape/rectangle.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/shape/segment.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/items/shape/svg.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/locale/fr/LC_MESSAGES/plotpy.mo +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/lutrange.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/mathutils/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/mathutils/arrayfuncs.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/mathutils/colormap.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/mathutils/geometry.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/mathutils/scaler.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/panels/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/panels/base.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/panels/contrastadjustment.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/panels/csection/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/panels/csection/csitem.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/panels/csection/cswidget.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/panels/itemlist.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/plot/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/plot/base.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/plot/interactive.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/plot/plotwidget.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/pyplot.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/styles/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/styles/axes.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/styles/base.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/styles/curve.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/styles/errorbar.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/styles/histogram.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/styles/image.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/styles/label.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/styles/polygonmap.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/styles/shape.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/benchmarks/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/benchmarks/test_benchmarks.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/benchmarks/test_bigimages.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/benchmarks/test_loadtest.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/conftest.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/data/brain.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/data/brain_cylinder.png +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/data/mr-brain.dcm +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/data/svg_target.svg +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/data/svg_tool.svg +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_auto_curve_image.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_autoscale_shapes.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_builder.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_colormap_editor.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_colormap_manager.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_computations.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_contrast.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_cursors.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_dicom_image.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_image_coords.py +0 -0
- /plotpy-2.7.2/plotpy/tests/features/test_imagefilter.py → /plotpy-2.7.4/plotpy/tests/features/test_image_filter.py +0 -0
- /plotpy-2.7.2/plotpy/tests/features/test_imagesuperp.py → /plotpy-2.7.4/plotpy/tests/features/test_image_superp.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_loadsaveitems_hdf5.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_loadsaveitems_json.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_loadsaveitems_pickle.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_manager.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_no_auto_tools.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_plot_log.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_plot_types.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_plot_yreverse.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_pyplot.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/features/test_resize.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_annotations.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_curves.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_curves_highdpi.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_hist2d.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_histogram.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_image.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_image_contour.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_image_masked.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_image_masked_xy.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_image_rgb.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_image_xy.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_pcolor.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_polygons.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_svgshapes.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/items/test_transform.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_actiontool.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_cross_section.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_cross_section_line.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_cross_section_oblique.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_customize_shape_tool.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_cyclic_import.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_downsample_curve.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_edit_point.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_get_point.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_get_points.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_get_rectangle.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_get_rectangle_with_svg.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_get_segment.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_image_plot_tools.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_stats_tools.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/tools/test_zaxislog.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_annotation_tools.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_aspect_ratio_tool.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_baseplot.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_builder_annotation.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_builder_curve.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_builder_image.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_builder_shape.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_contour.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_cursor_tools.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_curve_tools.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_display_coords_tool.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_events.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_fontparam.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_geometry.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_io.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_line.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_line_cross_section_tool.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_manipulate_selection.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_mask_tool.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_multiline_tools.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_oblique_cross_section_tool.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_plot_curve.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_plot_image.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_rect_zoom.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_seg_dist.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_styles.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/test_tools_export.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/unit/utils.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/vistools.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_filtertest1.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_filtertest2.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_fliprotate.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_plot_timecurve.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_qtdesigner.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_qtdesigner.ui +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_resize_dialog.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_rotatecrop.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_simple_dialog.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_simple_window.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_syncplot.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tests/widgets/test_theme.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/annotation.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/axes.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/base.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/cross_section.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/cursor.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/curve.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/image.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/item.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/label.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/misc.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/tools/shape.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/about.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/basetransform.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/colormap/__init__.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/colormap/_slider.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/colormap/editor.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/colormap/manager.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/colormap/widget.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/fliprotate.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/imagefile.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/qtdesigner.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/resizedialog.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/rotatecrop.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy/widgets/selectdialog.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/plotpy-tests.desktop +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/pyproject.toml +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/qtdesigner/plotplugin.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/requirements.txt +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/setup.cfg +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/setup.py +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/src/arrays.hpp +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/src/debug.hpp +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/src/histogram2d.pyx +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/src/mandelbrot.pyx +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/src/pcolor.cpp +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/src/points.hpp +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/src/scaler.cpp +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/src/scaler.hpp +0 -0
- {plotpy-2.7.2 → plotpy-2.7.4}/src/traits.hpp +0 -0
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog #
|
|
2
2
|
|
|
3
|
+
## Version 2.7.4 ##
|
|
4
|
+
|
|
5
|
+
In this release, test coverage is 80%.
|
|
6
|
+
|
|
7
|
+
🛠️ Bug fixes:
|
|
8
|
+
|
|
9
|
+
* [Issue #42](https://github.com/PlotPyStack/PlotPy/issues/42) - Image profiles: when moving/resizing image, profile plots are not refreshed
|
|
10
|
+
* [Issue #41](https://github.com/PlotPyStack/PlotPy/issues/41) - Average profile visualization: empty profile is displayed when the target rectangular area is outside the image area
|
|
11
|
+
|
|
12
|
+
## Version 2.7.3 ##
|
|
13
|
+
|
|
14
|
+
In this release, test coverage is 80%.
|
|
15
|
+
|
|
16
|
+
🛠️ Bug fixes:
|
|
17
|
+
|
|
18
|
+
* [Issue #40](https://github.com/PlotPyStack/PlotPy/issues/40) - Z-axis logarithmic scale (`ZAxisLogTool` tool) is not compatible with anti-aliasing interpolation
|
|
19
|
+
* Fix intersection check for destination rectangle in `XYImageFilterItem`
|
|
20
|
+
* [Issue #36](https://github.com/PlotPyStack/PlotPy/issues/36) - Image items are not properly scaling along Y-axis with logarithmic scale:
|
|
21
|
+
* Actually, image items do not support non-linear scales (this is an historical limitation)
|
|
22
|
+
* This is not documented at all, so we've added an explicit warning: a red colored message is displayed at the center of the image frame when any non-linear scale is applied to either X or Y axis
|
|
23
|
+
* When dealing with non-linear scales, PlotPy provides an alternative solution: the user may rely on `XYImageItem` (e.g. by using `make.xyimage`) as this item supports arbitrary X and Y pixel coordinates
|
|
24
|
+
* [Issue #34](https://github.com/PlotPyStack/PlotPy/issues/34) - `ValueError` when trying to plot 2D histogram items with `PyQt6`
|
|
25
|
+
|
|
26
|
+
Other changes:
|
|
27
|
+
|
|
28
|
+
* Replace deprecated icon files with new SVG icons for selection tools
|
|
29
|
+
|
|
3
30
|
## Version 2.7.2 ##
|
|
4
31
|
|
|
5
32
|
🛠️ Bug fixes:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: PlotPy
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.4
|
|
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
|
|
@@ -83,6 +83,7 @@ Requires-Dist: python-docs-theme; extra == "doc"
|
|
|
83
83
|
Provides-Extra: test
|
|
84
84
|
Requires-Dist: pytest; extra == "test"
|
|
85
85
|
Requires-Dist: pytest-xvfb; extra == "test"
|
|
86
|
+
Dynamic: license-file
|
|
86
87
|
|
|
87
88
|
# PlotPy: Curve and image plotting tools for Python/Qt applications
|
|
88
89
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: PlotPy
|
|
3
|
-
Version: 2.7.
|
|
3
|
+
Version: 2.7.4
|
|
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
|
|
@@ -83,6 +83,7 @@ Requires-Dist: python-docs-theme; extra == "doc"
|
|
|
83
83
|
Provides-Extra: test
|
|
84
84
|
Requires-Dist: pytest; extra == "test"
|
|
85
85
|
Requires-Dist: pytest-xvfb; extra == "test"
|
|
86
|
+
Dynamic: license-file
|
|
86
87
|
|
|
87
88
|
# PlotPy: Curve and image plotting tools for Python/Qt applications
|
|
88
89
|
|
|
@@ -184,10 +184,10 @@ plotpy/data/icons/point_selection.png
|
|
|
184
184
|
plotpy/data/icons/print.png
|
|
185
185
|
plotpy/data/icons/python.png
|
|
186
186
|
plotpy/data/icons/quickview.png
|
|
187
|
-
plotpy/data/icons/rectangular_select.png
|
|
188
187
|
plotpy/data/icons/refresh.png
|
|
189
188
|
plotpy/data/icons/save_all.png
|
|
190
|
-
plotpy/data/icons/
|
|
189
|
+
plotpy/data/icons/select.svg
|
|
190
|
+
plotpy/data/icons/select_area.svg
|
|
191
191
|
plotpy/data/icons/settings.png
|
|
192
192
|
plotpy/data/icons/shape.png
|
|
193
193
|
plotpy/data/icons/snapshot.png
|
|
@@ -388,12 +388,13 @@ plotpy/tests/features/test_colormap_manager.py
|
|
|
388
388
|
plotpy/tests/features/test_computations.py
|
|
389
389
|
plotpy/tests/features/test_contrast.py
|
|
390
390
|
plotpy/tests/features/test_cursors.py
|
|
391
|
+
plotpy/tests/features/test_data_update_curve.py
|
|
392
|
+
plotpy/tests/features/test_data_update_image.py
|
|
391
393
|
plotpy/tests/features/test_dicom_image.py
|
|
392
394
|
plotpy/tests/features/test_fit.py
|
|
393
395
|
plotpy/tests/features/test_image_coords.py
|
|
394
|
-
plotpy/tests/features/
|
|
395
|
-
plotpy/tests/features/
|
|
396
|
-
plotpy/tests/features/test_imagesuperp.py
|
|
396
|
+
plotpy/tests/features/test_image_filter.py
|
|
397
|
+
plotpy/tests/features/test_image_superp.py
|
|
397
398
|
plotpy/tests/features/test_loadsaveitems_hdf5.py
|
|
398
399
|
plotpy/tests/features/test_loadsaveitems_json.py
|
|
399
400
|
plotpy/tests/features/test_loadsaveitems_pickle.py
|
|
@@ -20,7 +20,7 @@ External resources:
|
|
|
20
20
|
.. _GitHub: https://github.com/PierreRaybaut/plotpy
|
|
21
21
|
"""
|
|
22
22
|
|
|
23
|
-
__version__ = "2.7.
|
|
23
|
+
__version__ = "2.7.4"
|
|
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
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="800px"
|
|
6
|
+
height="800px"
|
|
7
|
+
viewBox="0 0 16 16"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg1"
|
|
10
|
+
sodipodi:docname="selection.svg"
|
|
11
|
+
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
|
|
12
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
13
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
14
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
15
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
16
|
+
<defs
|
|
17
|
+
id="defs1" />
|
|
18
|
+
<sodipodi:namedview
|
|
19
|
+
id="namedview1"
|
|
20
|
+
pagecolor="#ffffff"
|
|
21
|
+
bordercolor="#000000"
|
|
22
|
+
borderopacity="0.25"
|
|
23
|
+
inkscape:showpageshadow="2"
|
|
24
|
+
inkscape:pageopacity="0.0"
|
|
25
|
+
inkscape:pagecheckerboard="0"
|
|
26
|
+
inkscape:deskcolor="#d1d1d1"
|
|
27
|
+
inkscape:zoom="0.71329397"
|
|
28
|
+
inkscape:cx="270.57568"
|
|
29
|
+
inkscape:cy="428.29466"
|
|
30
|
+
inkscape:window-width="1920"
|
|
31
|
+
inkscape:window-height="1009"
|
|
32
|
+
inkscape:window-x="-8"
|
|
33
|
+
inkscape:window-y="-8"
|
|
34
|
+
inkscape:window-maximized="1"
|
|
35
|
+
inkscape:current-layer="svg1" />
|
|
36
|
+
<g
|
|
37
|
+
id="g1"
|
|
38
|
+
transform="matrix(0.88784428,0,0,0.88784428,0.95332363,0.89724577)">
|
|
39
|
+
<path
|
|
40
|
+
fill="#444444"
|
|
41
|
+
d="M 5,2.6 10.75,9 H 8.29 l 0.63,1.41 1.8,4 -0.91,0.34 -1.88,-4.3 -0.5,-1.11 -1,0.71 L 5,11.07 Z M 4,0 V 13 L 7,10.86 9.26,16 12.06,15 9.83,10 H 13 Z"
|
|
42
|
+
id="path1" />
|
|
43
|
+
<path
|
|
44
|
+
style="fill:#ffffff;stroke-width:1.19165;stroke-linecap:square;stroke-dashoffset:1.1932"
|
|
45
|
+
d="m 490.09419,734.12823 c -0.67954,-1.27167 -22.05472,-49.94327 -47.5004,-108.1591 C 396.26003,519.9646 373.2364,468.10145 371.93278,466.79782 c -0.38275,-0.38274 -27.76081,18.58526 -60.84013,42.15111 l -60.14422,42.847 -0.35938,-105.321 c -0.19767,-57.92657 -0.19767,-152.31589 0,-209.75406 l 0.35938,-104.43303 142.0959,158.16753 142.09589,158.16752 -60.4325,0.36537 c -33.23788,0.20097 -60.43252,0.88758 -60.43252,1.52581 0,0.63824 4.6488,11.51415 10.33066,24.16869 5.68185,12.65455 32.44633,72.21658 59.47659,132.36009 27.03027,60.1435 49.35142,110.20446 49.60256,111.24657 0.31025,1.28737 -6.40508,4.50021 -20.94934,10.02285 -18.97837,7.20633 -21.54607,7.86591 -22.64148,5.81596 z"
|
|
46
|
+
id="path2"
|
|
47
|
+
transform="scale(0.02)" />
|
|
48
|
+
</g>
|
|
49
|
+
</svg>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
|
+
|
|
4
|
+
<svg
|
|
5
|
+
width="800px"
|
|
6
|
+
height="800px"
|
|
7
|
+
viewBox="0 0 16 16"
|
|
8
|
+
version="1.1"
|
|
9
|
+
id="svg2"
|
|
10
|
+
sodipodi:docname="select_area.svg"
|
|
11
|
+
inkscape:version="1.4 (86a8ad7, 2024-10-11)"
|
|
12
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
13
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
14
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
15
|
+
xmlns:svg="http://www.w3.org/2000/svg">
|
|
16
|
+
<defs
|
|
17
|
+
id="defs2" />
|
|
18
|
+
<sodipodi:namedview
|
|
19
|
+
id="namedview2"
|
|
20
|
+
pagecolor="#ffffff"
|
|
21
|
+
bordercolor="#000000"
|
|
22
|
+
borderopacity="0.25"
|
|
23
|
+
inkscape:showpageshadow="2"
|
|
24
|
+
inkscape:pageopacity="0.0"
|
|
25
|
+
inkscape:pagecheckerboard="true"
|
|
26
|
+
inkscape:deskcolor="#d1d1d1"
|
|
27
|
+
inkscape:zoom="0.71329397"
|
|
28
|
+
inkscape:cx="278.28639"
|
|
29
|
+
inkscape:cy="361.00123"
|
|
30
|
+
inkscape:window-width="1920"
|
|
31
|
+
inkscape:window-height="1009"
|
|
32
|
+
inkscape:window-x="-8"
|
|
33
|
+
inkscape:window-y="-8"
|
|
34
|
+
inkscape:window-maximized="1"
|
|
35
|
+
inkscape:current-layer="svg2" />
|
|
36
|
+
<path
|
|
37
|
+
style="fill:#ffffff;stroke-width:0.920918;stroke-linecap:square;stroke-dasharray:1.8096, 1.2064"
|
|
38
|
+
d="M 2.3167695,2.4490864 V 2.7494641 3.0516405 3.3592128 3.6595906 H 2.9211222 V 3.3592128 3.0516405 H 4.428407 4.7305834 V 2.4490864 H 4.428407 2.9211222 2.6189458 Z m 3.0163681,0 V 3.0516405 H 5.6353139 7.4447742 7.7469505 V 2.4490864 H 7.4447742 5.6353139 Z m 3.0163671,0 v 0.6025541 h 0.3021764 1.8094619 0.300378 V 2.4490864 H 10.461143 8.6516811 Z m 3.0163683,0 v 0.6025541 h 0.300378 1.366989 v 0.1420947 h 0.602554 V 2.8915589 2.4490864 h -1.969543 z m 1.667367,1.347203 v 0.3021763 1.809461 0.3021763 h 0.602554 V 5.9079267 4.0984657 3.7962894 Z M 2.3167695,4.2639433 V 4.5643209 6.3755806 6.6759583 H 2.9211222 V 6.3755806 4.5643209 4.2639433 Z M 13.03324,6.8126572 v 0.3021763 1.8094609 0.3003778 h 0.602554 V 8.9242944 7.1148335 6.8126572 Z M 2.3167695,7.2803111 V 7.5806888 9.3901502 9.6923266 H 2.9211222 V 9.3901502 7.5806888 7.2803111 Z m 0,3.0145679 v 0.302177 1.647581 h 0.7662327 0.3021764 v -0.604353 h -0.3021764 -0.16188 v -1.043228 -0.302177 z m 1.6709633,1.345405 v 0.604353 H 4.2899091 6.0993703 6.4015466 V 11.640284 H 6.0993703 4.2899091 Z"
|
|
39
|
+
id="path4-4"
|
|
40
|
+
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
|
|
41
|
+
<path
|
|
42
|
+
style="fill:#ffffff;stroke-linecap:square;stroke-dasharray:1.965, 1.31;fill-opacity:0.60000002"
|
|
43
|
+
d="M 2.1589979,2.3552702 H 13.795154 V 12.337129 H 2.1589979 Z"
|
|
44
|
+
id="path3" />
|
|
45
|
+
<path
|
|
46
|
+
style="fill:#444444;stroke-linecap:square;stroke-dasharray:1.965, 1.31"
|
|
47
|
+
d="m 1.8307733,2.0285024 v 0.3261719 0.328125 0.3339843 0.326172 h 0.65625 V 3.0167836 2.6827993 H 4.123742 4.451867 V 2.0285024 H 4.123742 2.4870233 2.1588983 Z m 3.2753906,0 v 0.6542969 h 0.328125 1.9648437 0.328125 V 2.0285024 H 7.3991326 5.4342889 Z m 3.2753906,0 v 0.6542969 h 0.328125 1.9648435 0.326172 V 2.0285024 H 10.674523 8.7096795 Z m 3.2753905,0 v 0.6542969 h 0.326172 1.484375 v 0.1542968 h 0.654297 V 2.5089711 2.0285024 h -2.138672 z m 1.810547,1.4628907 v 0.3281249 1.9648438 0.328125 h 0.654297 V 5.7843618 3.819518 3.4913931 Z M 1.8307733,3.9992055 v 0.3261718 1.966797 0.3261719 h 0.65625 V 6.2921743 4.3253773 3.9992055 Z M 13.467492,6.7667837 v 0.328125 1.9648437 0.3261719 h 0.654297 V 9.0597524 7.0949087 6.7667837 Z M 1.8307733,7.2745962 v 0.3261719 1.9648442 0.328125 h 0.65625 V 9.5656123 7.6007681 7.2745962 Z m 0,3.2734368 v 0.328125 1.789063 h 0.8320312 0.328125 v -0.65625 H 2.6628045 2.4870233 v -1.132813 -0.328125 z m 1.8144531,1.460938 v 0.65625 h 0.328125 1.9648437 0.328125 v -0.65625 H 5.9381951 3.9733514 Z"
|
|
48
|
+
id="path4"
|
|
49
|
+
sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" />
|
|
50
|
+
<g
|
|
51
|
+
id="g2"
|
|
52
|
+
transform="matrix(0.70442294,0,0,0.70442294,4.554049,4.547731)">
|
|
53
|
+
<path
|
|
54
|
+
fill="#444444"
|
|
55
|
+
d="M 5,2.6 10.75,9 H 8.29 l 0.63,1.41 1.8,4 -0.91,0.34 -1.88,-4.3 -0.5,-1.11 -1,0.71 L 5,11.07 Z M 4,0 V 13 L 7,10.86 9.26,16 12.06,15 9.83,10 H 13 Z"
|
|
56
|
+
id="path1-0" />
|
|
57
|
+
<path
|
|
58
|
+
style="fill:#ffffff;stroke-width:1.19165;stroke-linecap:square;stroke-dashoffset:1.1932"
|
|
59
|
+
d="m 490.09419,734.12823 c -0.67954,-1.27167 -22.05472,-49.94327 -47.5004,-108.1591 C 396.26003,519.9646 373.2364,468.10145 371.93278,466.79782 c -0.38275,-0.38274 -27.76081,18.58526 -60.84013,42.15111 l -60.14422,42.847 -0.35938,-105.321 c -0.19767,-57.92657 -0.19767,-152.31589 0,-209.75406 l 0.35938,-104.43303 142.0959,158.16753 142.09589,158.16752 -60.4325,0.36537 c -33.23788,0.20097 -60.43252,0.88758 -60.43252,1.52581 0,0.63824 4.6488,11.51415 10.33066,24.16869 5.68185,12.65455 32.44633,72.21658 59.47659,132.36009 27.03027,60.1435 49.35142,110.20446 49.60256,111.24657 0.31025,1.28737 -6.40508,4.50021 -20.94934,10.02285 -18.97837,7.20633 -21.54607,7.86591 -22.64148,5.81596 z"
|
|
60
|
+
id="path2-9"
|
|
61
|
+
transform="scale(0.02)" />
|
|
62
|
+
</g>
|
|
63
|
+
</svg>
|
|
@@ -14,7 +14,7 @@ from guidata.dataset import update_dataset
|
|
|
14
14
|
from guidata.utils.misc import assert_interfaces_valid
|
|
15
15
|
from qtpy import QtCore as QC
|
|
16
16
|
from qtpy import QtGui as QG
|
|
17
|
-
from qwt import QwtPlotItem
|
|
17
|
+
from qwt import QwtLinearScaleEngine, QwtPlotItem
|
|
18
18
|
|
|
19
19
|
from plotpy import io
|
|
20
20
|
from plotpy._scaler import (
|
|
@@ -55,6 +55,7 @@ if TYPE_CHECKING:
|
|
|
55
55
|
from qtpy.QtGui import QColor, QPainter
|
|
56
56
|
|
|
57
57
|
from plotpy.interfaces import IItemType
|
|
58
|
+
from plotpy.plot import BasePlot
|
|
58
59
|
from plotpy.styles.base import ItemParameters
|
|
59
60
|
from plotpy.widgets.colormap.widget import EditableColormap
|
|
60
61
|
|
|
@@ -215,15 +216,18 @@ class BaseImageItem(QwtPlotItem):
|
|
|
215
216
|
return i, j
|
|
216
217
|
|
|
217
218
|
def get_closest_index_rect(
|
|
218
|
-
self, x0: float, y0: float, x1: float, y1: float
|
|
219
|
+
self, x0: float, y0: float, x1: float, y1: float, avoid_empty: bool = True
|
|
219
220
|
) -> tuple[int, int, int, int]:
|
|
220
|
-
"""Get closest image rectangular pixel area index bounds
|
|
221
|
+
"""Get closest image rectangular pixel area index bounds, optionally
|
|
222
|
+
avoid returning an empty rectangular area (return at least 1x1 pixel area)
|
|
221
223
|
|
|
222
224
|
Args:
|
|
223
225
|
x0: X coordinate of first point
|
|
224
226
|
y0: Y coordinate of first point
|
|
225
227
|
x1: X coordinate of second point
|
|
226
228
|
y1: Y coordinate of second point
|
|
229
|
+
avoid_empty: True to avoid returning an empty rectangular area.
|
|
230
|
+
Defaults to True.
|
|
227
231
|
|
|
228
232
|
Returns:
|
|
229
233
|
Closest image rectangular pixel area index bounds
|
|
@@ -239,9 +243,9 @@ class BaseImageItem(QwtPlotItem):
|
|
|
239
243
|
ix1, ix0 = ix0, ix1
|
|
240
244
|
if iy0 > iy1:
|
|
241
245
|
iy1, iy0 = iy0, iy1
|
|
242
|
-
if ix0 == ix1:
|
|
246
|
+
if ix0 == ix1 and avoid_empty:
|
|
243
247
|
ix1 += 1
|
|
244
|
-
if iy0 == iy1:
|
|
248
|
+
if iy0 == iy1 and avoid_empty:
|
|
245
249
|
iy1 += 1
|
|
246
250
|
return ix0, iy0, ix1, iy1
|
|
247
251
|
|
|
@@ -582,6 +586,29 @@ class BaseImageItem(QwtPlotItem):
|
|
|
582
586
|
"""
|
|
583
587
|
self.border_rect.draw(painter, xMap, yMap, canvasRect)
|
|
584
588
|
|
|
589
|
+
def warn_if_non_linear_scale(self, painter: QPainter, canvasRect: QRectF) -> bool:
|
|
590
|
+
"""Warn if non-linear scale
|
|
591
|
+
|
|
592
|
+
Args:
|
|
593
|
+
painter: Painter
|
|
594
|
+
canvasRect: Canvas rectangle
|
|
595
|
+
|
|
596
|
+
Returns:
|
|
597
|
+
True if non-linear scale
|
|
598
|
+
"""
|
|
599
|
+
plot: BasePlot = self.plot()
|
|
600
|
+
if not isinstance(
|
|
601
|
+
plot.axisScaleEngine(plot.X_BOTTOM), QwtLinearScaleEngine
|
|
602
|
+
) or not isinstance(plot.axisScaleEngine(plot.Y_LEFT), QwtLinearScaleEngine):
|
|
603
|
+
painter.setPen(QC.Qt.red)
|
|
604
|
+
painter.drawText(
|
|
605
|
+
canvasRect,
|
|
606
|
+
QC.Qt.AlignCenter,
|
|
607
|
+
_("Non-linear scales are not supported for image items"),
|
|
608
|
+
)
|
|
609
|
+
return True
|
|
610
|
+
return False
|
|
611
|
+
|
|
585
612
|
def draw_image(
|
|
586
613
|
self,
|
|
587
614
|
painter: QPainter,
|
|
@@ -601,6 +628,8 @@ class BaseImageItem(QwtPlotItem):
|
|
|
601
628
|
xMap: X axis scale map
|
|
602
629
|
yMap: Y axis scale map
|
|
603
630
|
"""
|
|
631
|
+
if self.warn_if_non_linear_scale(painter, canvasRect):
|
|
632
|
+
return
|
|
604
633
|
dest = _scale_rect(
|
|
605
634
|
self.data, src_rect, self._offscreen, dst_rect, self.lut, self.interpolate
|
|
606
635
|
)
|
|
@@ -1057,7 +1086,9 @@ class BaseImageItem(QwtPlotItem):
|
|
|
1057
1086
|
Returns:
|
|
1058
1087
|
Average cross section along x-axis
|
|
1059
1088
|
"""
|
|
1060
|
-
ix0, iy0, ix1, iy1 = self.get_closest_index_rect(
|
|
1089
|
+
ix0, iy0, ix1, iy1 = self.get_closest_index_rect(
|
|
1090
|
+
x0, y0, x1, y1, avoid_empty=False
|
|
1091
|
+
)
|
|
1061
1092
|
ydata = self.data[iy0:iy1, ix0:ix1]
|
|
1062
1093
|
if ydata.size == 0:
|
|
1063
1094
|
return np.array([]), np.array([])
|
|
@@ -1082,7 +1113,9 @@ class BaseImageItem(QwtPlotItem):
|
|
|
1082
1113
|
Returns:
|
|
1083
1114
|
Average cross section along y-axis
|
|
1084
1115
|
"""
|
|
1085
|
-
ix0, iy0, ix1, iy1 = self.get_closest_index_rect(
|
|
1116
|
+
ix0, iy0, ix1, iy1 = self.get_closest_index_rect(
|
|
1117
|
+
x0, y0, x1, y1, avoid_empty=False
|
|
1118
|
+
)
|
|
1086
1119
|
ydata = self.data[iy0:iy1, ix0:ix1]
|
|
1087
1120
|
if ydata.size == 0:
|
|
1088
1121
|
return np.array([]), np.array([])
|
|
@@ -313,7 +313,7 @@ class XYImageFilterItem(ImageFilterItem):
|
|
|
313
313
|
j0, j1 = int(yMap.transform(y0)), int(yMap.transform(y1))
|
|
314
314
|
|
|
315
315
|
dstRect = QC.QRect(i0, j0, i1 - i0, j1 - j0)
|
|
316
|
-
if not dstRect.intersects(canvasRect):
|
|
316
|
+
if not dstRect.intersects(canvasRect.toAlignedRect()):
|
|
317
317
|
return
|
|
318
318
|
|
|
319
319
|
x, y, data = self.image.get_data(x0, y0, x1, y1)
|
|
@@ -11,6 +11,7 @@ from guidata.utils.misc import assert_interfaces_valid
|
|
|
11
11
|
from qtpy import QtCore as QC
|
|
12
12
|
|
|
13
13
|
from plotpy import io
|
|
14
|
+
from plotpy._scaler import INTERP_AA
|
|
14
15
|
from plotpy.config import _
|
|
15
16
|
from plotpy.constants import LUTAlpha
|
|
16
17
|
from plotpy.coords import canvas_to_axes, pixelround
|
|
@@ -241,9 +242,13 @@ class ImageItem(RawImageItem):
|
|
|
241
242
|
if self._log_data is None:
|
|
242
243
|
self._log_data = np.array(np.log10(self.data.clip(1)), dtype=np.float64)
|
|
243
244
|
self.set_lut_range(get_nan_range(self._log_data))
|
|
245
|
+
dtype = self._log_data.dtype
|
|
244
246
|
else:
|
|
245
247
|
self._log_data = None
|
|
246
248
|
self.set_lut_range(self._lin_lut_range)
|
|
249
|
+
dtype = self.data.dtype
|
|
250
|
+
if self.interpolate[0] == INTERP_AA:
|
|
251
|
+
self.interpolate = (INTERP_AA, self.interpolate[1].astype(dtype))
|
|
247
252
|
plot.update_colormap_axis(self)
|
|
248
253
|
|
|
249
254
|
# ---- BaseImageItem API ---------------------------------------------------
|
|
@@ -376,6 +381,9 @@ class ImageItem(RawImageItem):
|
|
|
376
381
|
"""
|
|
377
382
|
if self.data is None:
|
|
378
383
|
return
|
|
384
|
+
if self.warn_if_non_linear_scale(painter, canvasRect):
|
|
385
|
+
return
|
|
386
|
+
|
|
379
387
|
src2 = self._rescale_src_rect(src_rect)
|
|
380
388
|
dst_rect = tuple([int(i) for i in dst_rect])
|
|
381
389
|
|
|
@@ -651,6 +659,8 @@ class XYImageItem(RawImageItem):
|
|
|
651
659
|
xMap: X axis scale map
|
|
652
660
|
yMap: Y axis scale map
|
|
653
661
|
"""
|
|
662
|
+
if self.warn_if_non_linear_scale(painter, canvasRect):
|
|
663
|
+
return
|
|
654
664
|
xytr = self.x, self.y, src_rect
|
|
655
665
|
dst_rect = tuple([int(i) for i in dst_rect])
|
|
656
666
|
dest = _scale_xy(
|
|
@@ -39,7 +39,7 @@ except ImportError:
|
|
|
39
39
|
file=sys.stderr,
|
|
40
40
|
)
|
|
41
41
|
print(
|
|
42
|
-
("try running
|
|
42
|
+
("try running: python setup.py build_ext --inplace"),
|
|
43
43
|
file=sys.stderr,
|
|
44
44
|
)
|
|
45
45
|
raise
|
|
@@ -169,6 +169,8 @@ class QuadGridItem(RawImageItem):
|
|
|
169
169
|
xMap: X axis scale map
|
|
170
170
|
yMap: Y axis scale map
|
|
171
171
|
"""
|
|
172
|
+
if self.warn_if_non_linear_scale(painter, canvasRect):
|
|
173
|
+
return
|
|
172
174
|
self._offscreen[...] = np.uint32(0)
|
|
173
175
|
dest = _scale_quads(
|
|
174
176
|
self.X,
|
|
@@ -294,6 +296,8 @@ class Histogram2DItem(BaseImageItem):
|
|
|
294
296
|
xMap: X axis scale map
|
|
295
297
|
yMap: Y axis scale map
|
|
296
298
|
"""
|
|
299
|
+
if self.warn_if_non_linear_scale(painter, canvasRect):
|
|
300
|
+
return
|
|
297
301
|
computation = self.histparam.computation
|
|
298
302
|
i1, j1, i2, j2 = src_rect
|
|
299
303
|
|
|
@@ -340,7 +344,7 @@ class Histogram2DItem(BaseImageItem):
|
|
|
340
344
|
return BaseImageItem.draw_image(self, *args)
|
|
341
345
|
|
|
342
346
|
if self.fill_canvas:
|
|
343
|
-
x1, y1, x2, y2 = canvasRect.getCoords()
|
|
347
|
+
x1, y1, x2, y2 = canvasRect.toAlignedRect().getCoords()
|
|
344
348
|
drawfunc(painter, canvasRect, src_rect, (x1, y1, x2, y2), xMap, yMap)
|
|
345
349
|
else:
|
|
346
350
|
dst_rect = tuple([int(i) for i in dst_rect])
|
|
@@ -231,6 +231,7 @@ class BaseCrossSectionPlot(BasePlot):
|
|
|
231
231
|
self.do_autoscale(replot=False, axis_id=self.Z_AXIS)
|
|
232
232
|
vmin, vmax = plot.get_axis_limits(self.CS_AXIS)
|
|
233
233
|
self.set_axis_limits(self.CS_AXIS, vmin, vmax)
|
|
234
|
+
self.replot()
|
|
234
235
|
|
|
235
236
|
def is_shape_known(self, shape: Any) -> bool:
|
|
236
237
|
"""Return whether shape is known
|
|
@@ -13,49 +13,6 @@ from qtpy import QtWidgets as QW
|
|
|
13
13
|
from plotpy.constants import ID_CONTRAST, ID_ITEMLIST, ID_XCS, ID_YCS
|
|
14
14
|
from plotpy.interfaces import IPlotManager
|
|
15
15
|
from plotpy.plot import BasePlot
|
|
16
|
-
from plotpy.tools import (
|
|
17
|
-
AboutTool,
|
|
18
|
-
AnnotatedCircleTool,
|
|
19
|
-
AnnotatedEllipseTool,
|
|
20
|
-
AnnotatedObliqueRectangleTool,
|
|
21
|
-
AnnotatedPointTool,
|
|
22
|
-
AnnotatedRectangleTool,
|
|
23
|
-
AnnotatedSegmentTool,
|
|
24
|
-
AntiAliasingTool,
|
|
25
|
-
AspectRatioTool,
|
|
26
|
-
AverageCrossSectionTool,
|
|
27
|
-
AxisScaleTool,
|
|
28
|
-
BasePlotMenuTool,
|
|
29
|
-
ColormapTool,
|
|
30
|
-
ContrastPanelTool,
|
|
31
|
-
CopyToClipboardTool,
|
|
32
|
-
CrossSectionTool,
|
|
33
|
-
CurveStatsTool,
|
|
34
|
-
DeleteItemTool,
|
|
35
|
-
DisplayCoordsTool,
|
|
36
|
-
DoAutoscaleTool,
|
|
37
|
-
DownSamplingTool,
|
|
38
|
-
DummySeparatorTool,
|
|
39
|
-
EditItemDataTool,
|
|
40
|
-
ExportItemDataTool,
|
|
41
|
-
HelpTool,
|
|
42
|
-
ImageStatsTool,
|
|
43
|
-
ItemCenterTool,
|
|
44
|
-
ItemListPanelTool,
|
|
45
|
-
LabelTool,
|
|
46
|
-
PrintTool,
|
|
47
|
-
RectangularSelectionTool,
|
|
48
|
-
RectZoomTool,
|
|
49
|
-
ReverseColormapTool,
|
|
50
|
-
ReverseXAxisTool,
|
|
51
|
-
ReverseYAxisTool,
|
|
52
|
-
SaveAsTool,
|
|
53
|
-
SelectTool,
|
|
54
|
-
SnapshotTool,
|
|
55
|
-
XCSPanelTool,
|
|
56
|
-
YCSPanelTool,
|
|
57
|
-
ZAxisLogTool,
|
|
58
|
-
)
|
|
59
16
|
|
|
60
17
|
if TYPE_CHECKING:
|
|
61
18
|
from typing import Callable
|
|
@@ -241,12 +198,16 @@ class PlotManager:
|
|
|
241
198
|
Args:
|
|
242
199
|
toolbar_id: toolbar's id (default to None)
|
|
243
200
|
"""
|
|
201
|
+
# This avoids circular imports (see Issue #39)
|
|
202
|
+
# pylint: disable=import-outside-toplevel
|
|
203
|
+
import plotpy.tools as tools
|
|
204
|
+
|
|
244
205
|
if toolbar_id is None:
|
|
245
206
|
for _id, toolbar in list(self.toolbars.items()):
|
|
246
207
|
if toolbar is self.get_default_toolbar():
|
|
247
208
|
toolbar_id = _id
|
|
248
209
|
break
|
|
249
|
-
self.add_tool(DummySeparatorTool, toolbar_id)
|
|
210
|
+
self.add_tool(tools.DummySeparatorTool, toolbar_id)
|
|
250
211
|
|
|
251
212
|
def set_default_tool(self, tool: GuiTool) -> None:
|
|
252
213
|
"""
|
|
@@ -547,22 +508,26 @@ class PlotManager:
|
|
|
547
508
|
Registering basic tools for standard plot dialog
|
|
548
509
|
--> top of the context-menu
|
|
549
510
|
"""
|
|
550
|
-
|
|
511
|
+
# This avoids circular imports (see Issue #39)
|
|
512
|
+
# pylint: disable=import-outside-toplevel
|
|
513
|
+
import plotpy.tools as tools
|
|
514
|
+
|
|
515
|
+
t = self.add_tool(tools.SelectTool)
|
|
551
516
|
self.set_default_tool(t)
|
|
552
|
-
self.add_tool(RectangularSelectionTool, intersect=False)
|
|
553
|
-
self.add_tool(RectZoomTool)
|
|
554
|
-
self.add_tool(DoAutoscaleTool)
|
|
555
|
-
self.add_tool(BasePlotMenuTool, "item")
|
|
556
|
-
self.add_tool(ExportItemDataTool)
|
|
557
|
-
self.add_tool(EditItemDataTool)
|
|
558
|
-
self.add_tool(ItemCenterTool)
|
|
559
|
-
self.add_tool(DeleteItemTool)
|
|
517
|
+
self.add_tool(tools.RectangularSelectionTool, intersect=False)
|
|
518
|
+
self.add_tool(tools.RectZoomTool)
|
|
519
|
+
self.add_tool(tools.DoAutoscaleTool)
|
|
520
|
+
self.add_tool(tools.BasePlotMenuTool, "item")
|
|
521
|
+
self.add_tool(tools.ExportItemDataTool)
|
|
522
|
+
self.add_tool(tools.EditItemDataTool)
|
|
523
|
+
self.add_tool(tools.ItemCenterTool)
|
|
524
|
+
self.add_tool(tools.DeleteItemTool)
|
|
560
525
|
self.add_separator_tool()
|
|
561
|
-
self.add_tool(BasePlotMenuTool, "grid")
|
|
562
|
-
self.add_tool(BasePlotMenuTool, "axes")
|
|
563
|
-
self.add_tool(DisplayCoordsTool)
|
|
526
|
+
self.add_tool(tools.BasePlotMenuTool, "grid")
|
|
527
|
+
self.add_tool(tools.BasePlotMenuTool, "axes")
|
|
528
|
+
self.add_tool(tools.DisplayCoordsTool)
|
|
564
529
|
if self.get_itemlist_panel():
|
|
565
|
-
self.add_tool(ItemListPanelTool)
|
|
530
|
+
self.add_tool(tools.ItemListPanelTool)
|
|
566
531
|
|
|
567
532
|
def register_curve_tools(self) -> None:
|
|
568
533
|
"""
|
|
@@ -580,10 +545,14 @@ class PlotManager:
|
|
|
580
545
|
|
|
581
546
|
:py:meth:`.plot.manager.PlotManager.register_all_tools`
|
|
582
547
|
"""
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
548
|
+
# This avoids circular imports (see Issue #39)
|
|
549
|
+
# pylint: disable=import-outside-toplevel
|
|
550
|
+
import plotpy.tools as tools
|
|
551
|
+
|
|
552
|
+
self.add_tool(tools.CurveStatsTool)
|
|
553
|
+
self.add_tool(tools.AntiAliasingTool)
|
|
554
|
+
self.add_tool(tools.AxisScaleTool)
|
|
555
|
+
self.add_tool(tools.DownSamplingTool)
|
|
587
556
|
|
|
588
557
|
def register_image_tools(self) -> None:
|
|
589
558
|
"""
|
|
@@ -601,21 +570,25 @@ class PlotManager:
|
|
|
601
570
|
|
|
602
571
|
:py:meth:`.plot.manager.PlotManager.register_all_tools`
|
|
603
572
|
"""
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
self.add_tool(
|
|
609
|
-
self.add_tool(
|
|
573
|
+
# This avoids circular imports (see Issue #39)
|
|
574
|
+
# pylint: disable=import-outside-toplevel
|
|
575
|
+
import plotpy.tools as tools
|
|
576
|
+
|
|
577
|
+
self.add_tool(tools.ColormapTool)
|
|
578
|
+
self.add_tool(tools.ReverseColormapTool)
|
|
579
|
+
self.add_tool(tools.ReverseXAxisTool)
|
|
580
|
+
self.add_tool(tools.ReverseYAxisTool)
|
|
581
|
+
self.add_tool(tools.ZAxisLogTool)
|
|
582
|
+
self.add_tool(tools.AspectRatioTool)
|
|
610
583
|
if self.get_contrast_panel():
|
|
611
|
-
self.add_tool(ContrastPanelTool)
|
|
612
|
-
self.add_tool(SnapshotTool)
|
|
613
|
-
self.add_tool(ImageStatsTool)
|
|
584
|
+
self.add_tool(tools.ContrastPanelTool)
|
|
585
|
+
self.add_tool(tools.SnapshotTool)
|
|
586
|
+
self.add_tool(tools.ImageStatsTool)
|
|
614
587
|
if self.get_xcs_panel() and self.get_ycs_panel():
|
|
615
|
-
self.add_tool(XCSPanelTool)
|
|
616
|
-
self.add_tool(YCSPanelTool)
|
|
617
|
-
self.add_tool(CrossSectionTool)
|
|
618
|
-
self.add_tool(AverageCrossSectionTool)
|
|
588
|
+
self.add_tool(tools.XCSPanelTool)
|
|
589
|
+
self.add_tool(tools.YCSPanelTool)
|
|
590
|
+
self.add_tool(tools.CrossSectionTool)
|
|
591
|
+
self.add_tool(tools.AverageCrossSectionTool)
|
|
619
592
|
|
|
620
593
|
def register_other_tools(self) -> None:
|
|
621
594
|
"""
|
|
@@ -633,11 +606,15 @@ class PlotManager:
|
|
|
633
606
|
|
|
634
607
|
:py:meth:`.plot.manager.PlotManager.register_all_tools`
|
|
635
608
|
"""
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
self.add_tool(
|
|
609
|
+
# This avoids circular imports (see Issue #39)
|
|
610
|
+
# pylint: disable=import-outside-toplevel
|
|
611
|
+
import plotpy.tools as tools
|
|
612
|
+
|
|
613
|
+
self.add_tool(tools.SaveAsTool)
|
|
614
|
+
self.add_tool(tools.CopyToClipboardTool)
|
|
615
|
+
self.add_tool(tools.PrintTool)
|
|
616
|
+
self.add_tool(tools.HelpTool)
|
|
617
|
+
self.add_tool(tools.AboutTool)
|
|
641
618
|
|
|
642
619
|
def register_all_curve_tools(self) -> None:
|
|
643
620
|
"""
|
|
@@ -732,23 +709,31 @@ class PlotManager:
|
|
|
732
709
|
"""
|
|
733
710
|
Register all annotation tools for the plot
|
|
734
711
|
"""
|
|
712
|
+
# This avoids circular imports (see Issue #39)
|
|
713
|
+
# pylint: disable=import-outside-toplevel
|
|
714
|
+
import plotpy.tools as tools
|
|
715
|
+
|
|
735
716
|
self.add_separator_tool()
|
|
736
|
-
self.add_tool(AnnotatedPointTool)
|
|
737
|
-
self.add_tool(AnnotatedSegmentTool)
|
|
738
|
-
self.add_tool(AnnotatedRectangleTool)
|
|
739
|
-
self.add_tool(AnnotatedObliqueRectangleTool)
|
|
740
|
-
self.add_tool(AnnotatedCircleTool)
|
|
741
|
-
self.add_tool(AnnotatedEllipseTool)
|
|
742
|
-
self.add_tool(LabelTool)
|
|
717
|
+
self.add_tool(tools.AnnotatedPointTool)
|
|
718
|
+
self.add_tool(tools.AnnotatedSegmentTool)
|
|
719
|
+
self.add_tool(tools.AnnotatedRectangleTool)
|
|
720
|
+
self.add_tool(tools.AnnotatedObliqueRectangleTool)
|
|
721
|
+
self.add_tool(tools.AnnotatedCircleTool)
|
|
722
|
+
self.add_tool(tools.AnnotatedEllipseTool)
|
|
723
|
+
self.add_tool(tools.LabelTool)
|
|
743
724
|
|
|
744
725
|
def register_curve_annotation_tools(self) -> None:
|
|
745
726
|
"""
|
|
746
727
|
Register all curve friendly annotation tools for the plot
|
|
747
728
|
"""
|
|
729
|
+
# This avoids circular imports (see Issue #39)
|
|
730
|
+
# pylint: disable=import-outside-toplevel
|
|
731
|
+
import plotpy.tools as tools
|
|
732
|
+
|
|
748
733
|
self.add_separator_tool()
|
|
749
|
-
self.add_tool(AnnotatedPointTool)
|
|
750
|
-
self.add_tool(AnnotatedSegmentTool)
|
|
751
|
-
self.add_tool(LabelTool)
|
|
734
|
+
self.add_tool(tools.AnnotatedPointTool)
|
|
735
|
+
self.add_tool(tools.AnnotatedSegmentTool)
|
|
736
|
+
self.add_tool(tools.LabelTool)
|
|
752
737
|
|
|
753
738
|
def register_image_annotation_tools(self) -> None:
|
|
754
739
|
"""
|