PlotPy 2.3.2__tar.gz → 2.3.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.
Files changed (521) hide show
  1. {plotpy-2.3.2 → plotpy-2.3.4}/CHANGELOG.md +31 -0
  2. {plotpy-2.3.2/PlotPy.egg-info → plotpy-2.3.4}/PKG-INFO +1 -1
  3. {plotpy-2.3.2 → plotpy-2.3.4/PlotPy.egg-info}/PKG-INFO +1 -1
  4. plotpy-2.3.4/conftest.py +32 -0
  5. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/__init__.py +1 -1
  6. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/builder/label.py +4 -4
  7. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/io.py +2 -0
  8. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/curve/base.py +2 -2
  9. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/curve/errorbar.py +2 -2
  10. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/label.py +1 -1
  11. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/polygonmap.py +3 -3
  12. plotpy-2.3.4/plotpy/locale/fr/LC_MESSAGES/plotpy.mo +0 -0
  13. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/panels/__init__.py +6 -1
  14. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/panels/csection/__init__.py +7 -1
  15. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_computations.py +5 -4
  16. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_builder_annotation.py +27 -24
  17. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_builder_curve.py +25 -17
  18. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_builder_image.py +28 -18
  19. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_builder_shape.py +16 -12
  20. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_curve_tools.py +1 -1
  21. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_manipulate_selection.py +3 -0
  22. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_mask_tool.py +5 -2
  23. plotpy-2.3.4/plotpy/tests/unit/test_plot_curve.py +94 -0
  24. plotpy-2.3.4/plotpy/tests/unit/test_tools_export.py +36 -0
  25. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/utils.py +3 -3
  26. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/curve.py +7 -2
  27. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/colormap/editor.py +3 -5
  28. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/colormap/manager.py +10 -3
  29. {plotpy-2.3.2 → plotpy-2.3.4}/pyproject.toml +8 -2
  30. {plotpy-2.3.2 → plotpy-2.3.4}/src/contour2d.c +405 -216
  31. {plotpy-2.3.2 → plotpy-2.3.4}/src/histogram2d.c +400 -208
  32. {plotpy-2.3.2 → plotpy-2.3.4}/src/mandelbrot.c +397 -208
  33. plotpy-2.3.2/conftest.py +0 -7
  34. plotpy-2.3.2/plotpy/locale/fr/LC_MESSAGES/plotpy.mo +0 -0
  35. plotpy-2.3.2/plotpy/tests/unit/test_plot_curve.py +0 -87
  36. plotpy-2.3.2/plotpy/tests/unit/test_tools_export.py +0 -33
  37. {plotpy-2.3.2 → plotpy-2.3.4}/LICENSE +0 -0
  38. {plotpy-2.3.2 → plotpy-2.3.4}/MANIFEST.in +0 -0
  39. {plotpy-2.3.2 → plotpy-2.3.4}/PlotPy.egg-info/SOURCES.txt +0 -0
  40. {plotpy-2.3.2 → plotpy-2.3.4}/PlotPy.egg-info/dependency_links.txt +0 -0
  41. {plotpy-2.3.2 → plotpy-2.3.4}/PlotPy.egg-info/entry_points.txt +0 -0
  42. {plotpy-2.3.2 → plotpy-2.3.4}/PlotPy.egg-info/requires.txt +0 -0
  43. {plotpy-2.3.2 → plotpy-2.3.4}/PlotPy.egg-info/top_level.txt +0 -0
  44. {plotpy-2.3.2 → plotpy-2.3.4}/README.md +0 -0
  45. {plotpy-2.3.2 → plotpy-2.3.4}/colormaps/README.md +0 -0
  46. {plotpy-2.3.2 → plotpy-2.3.4}/colormaps/_cm.py +0 -0
  47. {plotpy-2.3.2 → plotpy-2.3.4}/colormaps/colormap.py +0 -0
  48. {plotpy-2.3.2 → plotpy-2.3.4}/colormaps/matplotlib_cmaps.py +0 -0
  49. {plotpy-2.3.2 → plotpy-2.3.4}/doc/_static/favicon.ico +0 -0
  50. {plotpy-2.3.2 → plotpy-2.3.4}/doc/changelog.rst +0 -0
  51. {plotpy-2.3.2 → plotpy-2.3.4}/doc/conf.py +0 -0
  52. {plotpy-2.3.2 → plotpy-2.3.4}/doc/dev/build.rst +0 -0
  53. {plotpy-2.3.2 → plotpy-2.3.4}/doc/dev/contribute.rst +0 -0
  54. {plotpy-2.3.2 → plotpy-2.3.4}/doc/dev/guiqwt_to_plotpy.csv +0 -0
  55. {plotpy-2.3.2 → plotpy-2.3.4}/doc/dev/guiqwt_to_plotpy.rst +0 -0
  56. {plotpy-2.3.2 → plotpy-2.3.4}/doc/dev/index.rst +0 -0
  57. {plotpy-2.3.2 → plotpy-2.3.4}/doc/dev/platforms.rst +0 -0
  58. {plotpy-2.3.2 → plotpy-2.3.4}/doc/dev/v1_to_guidata_v3.csv +0 -0
  59. {plotpy-2.3.2 → plotpy-2.3.4}/doc/dev/v1_to_v2.csv +0 -0
  60. {plotpy-2.3.2 → plotpy-2.3.4}/doc/dev/v1_to_v2.rst +0 -0
  61. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/colormapmanager.rst +0 -0
  62. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/events.rst +0 -0
  63. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/fit.rst +0 -0
  64. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/fliprotate.rst +0 -0
  65. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/imagefile.rst +0 -0
  66. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/index.rst +0 -0
  67. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/io.rst +0 -0
  68. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/items/builder.rst +0 -0
  69. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/items/examples.rst +0 -0
  70. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/items/index.rst +0 -0
  71. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/items/overview.rst +0 -0
  72. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/items/reference.rst +0 -0
  73. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/mathutils/colormaps.rst +0 -0
  74. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/mathutils/geometry.rst +0 -0
  75. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/mathutils/index.rst +0 -0
  76. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/mathutils/scaler.rst +0 -0
  77. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/panels/index.rst +0 -0
  78. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/panels/overview.rst +0 -0
  79. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/panels/reference.rst +0 -0
  80. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/plot/examples.rst +0 -0
  81. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/plot/index.rst +0 -0
  82. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/plot/overview.rst +0 -0
  83. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/plot/reference.rst +0 -0
  84. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/pyplot.rst +0 -0
  85. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/resizedialog.rst +0 -0
  86. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/rotatecrop.rst +0 -0
  87. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/selectdialog.rst +0 -0
  88. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/signals.rst +0 -0
  89. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/styles/index.rst +0 -0
  90. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/styles/overview.rst +0 -0
  91. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/styles/reference.rst +0 -0
  92. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/tools/examples.rst +0 -0
  93. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/tools/index.rst +0 -0
  94. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/tools/overview.rst +0 -0
  95. {plotpy-2.3.2 → plotpy-2.3.4}/doc/features/tools/reference.rst +0 -0
  96. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/my_plot_manager.png +0 -0
  97. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/my_plot_manager.svg +0 -0
  98. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/panorama.png +0 -0
  99. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/panorama.svg +0 -0
  100. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/plot_widgets.png +0 -0
  101. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/plot_widgets.svg +0 -0
  102. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/plotpy-banner.png +0 -0
  103. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/plotpy-vertical.png +0 -0
  104. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/__init__.png +0 -0
  105. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/computations.png +0 -0
  106. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/contrast.png +0 -0
  107. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/cross_section.png +0 -0
  108. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/cross_section2.png +0 -0
  109. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/dotarraydemo.png +0 -0
  110. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/filtertest1.png +0 -0
  111. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/filtertest2.png +0 -0
  112. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/fit.png +0 -0
  113. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/get_point.png +0 -0
  114. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/hist2d.png +0 -0
  115. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/image_plot_tools.png +0 -0
  116. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/imagefilter.png +0 -0
  117. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/imagesuperp.png +0 -0
  118. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/imagexy.png +0 -0
  119. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/manager.png +0 -0
  120. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/mandelbrot.png +0 -0
  121. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/pcolor.png +0 -0
  122. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/plot.png +0 -0
  123. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/simple_dialog.png +0 -0
  124. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/simple_window.png +0 -0
  125. {plotpy-2.3.2 → plotpy-2.3.4}/doc/images/screenshots/transform.png +0 -0
  126. {plotpy-2.3.2 → plotpy-2.3.4}/doc/index.rst +0 -0
  127. {plotpy-2.3.2 → plotpy-2.3.4}/doc/intro/examples.rst +0 -0
  128. {plotpy-2.3.2 → plotpy-2.3.4}/doc/intro/index.rst +0 -0
  129. {plotpy-2.3.2 → plotpy-2.3.4}/doc/intro/installation.rst +0 -0
  130. {plotpy-2.3.2 → plotpy-2.3.4}/doc/intro/licenses.rst +0 -0
  131. {plotpy-2.3.2 → plotpy-2.3.4}/doc/intro/motivation.rst +0 -0
  132. {plotpy-2.3.2 → plotpy-2.3.4}/doc/intro/overview.rst +0 -0
  133. {plotpy-2.3.2 → plotpy-2.3.4}/doc/requirements.rst +0 -0
  134. {plotpy-2.3.2 → plotpy-2.3.4}/doc/update_requirements.py +0 -0
  135. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/builder/__init__.py +0 -0
  136. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/builder/annotation.py +0 -0
  137. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/builder/curvemarker.py +0 -0
  138. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/builder/image.py +0 -0
  139. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/builder/plot.py +0 -0
  140. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/builder/shape.py +0 -0
  141. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/config.py +0 -0
  142. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/constants.py +0 -0
  143. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/coords.py +0 -0
  144. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/colormaps_default.json +0 -0
  145. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/apply.png +0 -0
  146. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/arredit.png +0 -0
  147. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/arrow_down.png +0 -0
  148. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/arrow_up.png +0 -0
  149. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/autorefresh.png +0 -0
  150. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/autoscale.png +0 -0
  151. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/axes.png +0 -0
  152. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/busy.png +0 -0
  153. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/cell_edit.png +0 -0
  154. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/center.png +0 -0
  155. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/cmap_edit.png +0 -0
  156. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/contrast.png +0 -0
  157. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/copy.png +0 -0
  158. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/copytoclipboard.png +0 -0
  159. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/csapplylut.png +0 -0
  160. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/csautoscale.png +0 -0
  161. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/csection.png +0 -0
  162. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/csection_a.png +0 -0
  163. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/csection_line.png +0 -0
  164. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/csection_oblique.png +0 -0
  165. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/csperimage.png +0 -0
  166. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/curve_downsample.png +0 -0
  167. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/curvestyles/dots.png +0 -0
  168. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/curvestyles/lines.png +0 -0
  169. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/curvestyles/steps.png +0 -0
  170. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/curvestyles/sticks.png +0 -0
  171. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/curvetypes/xfy.png +0 -0
  172. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/curvetypes/yfx.png +0 -0
  173. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/delete.png +0 -0
  174. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/edit.png +0 -0
  175. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/edit_point_selection.png +0 -0
  176. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/editors/edit.png +0 -0
  177. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/editors/edit_add.png +0 -0
  178. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/editors/editcopy.png +0 -0
  179. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/editors/editdelete.png +0 -0
  180. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/editors/editpaste.png +0 -0
  181. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/editors/fileimport.png +0 -0
  182. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/editors/filesave.png +0 -0
  183. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/editors/imshow.png +0 -0
  184. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/editors/insert.png +0 -0
  185. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/editors/plot.png +0 -0
  186. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/editors/rename.png +0 -0
  187. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/eliminate_outliers.png +0 -0
  188. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/eraser.png +0 -0
  189. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/exit.png +0 -0
  190. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/expander_down.png +0 -0
  191. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/expander_right.png +0 -0
  192. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/export.png +0 -0
  193. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/file.png +0 -0
  194. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/fileclose.png +0 -0
  195. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/fileimport.png +0 -0
  196. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filenew.png +0 -0
  197. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/fileopen.png +0 -0
  198. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filesave.png +0 -0
  199. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filesaveas.png +0 -0
  200. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/doc.png +0 -0
  201. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/gif.png +0 -0
  202. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/html.png +0 -0
  203. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/jpg.png +0 -0
  204. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/pdf.png +0 -0
  205. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/png.png +0 -0
  206. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/pps.png +0 -0
  207. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/ps.png +0 -0
  208. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/tar.png +0 -0
  209. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/tgz.png +0 -0
  210. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/tif.png +0 -0
  211. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/txt.png +0 -0
  212. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/xls.png +0 -0
  213. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/filetypes/zip.png +0 -0
  214. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/font.png +0 -0
  215. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/full_range.png +0 -0
  216. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/funct.png +0 -0
  217. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/hcursor.png +0 -0
  218. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/hflip.png +0 -0
  219. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/imagestats.png +0 -0
  220. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/item_list.png +0 -0
  221. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/items/annotation.png +0 -0
  222. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/items/curve.png +0 -0
  223. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/items/errorbar.png +0 -0
  224. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/items/grid.png +0 -0
  225. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/items/histogram.png +0 -0
  226. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/items/histogram2d.png +0 -0
  227. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/items/image.png +0 -0
  228. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/items/label.png +0 -0
  229. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/items/legend.png +0 -0
  230. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/items/polygonmap.png +0 -0
  231. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/magnifier.png +0 -0
  232. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/cross.png +0 -0
  233. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/diamond.png +0 -0
  234. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/ellipse.png +0 -0
  235. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/hexagon.png +0 -0
  236. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/point.png +0 -0
  237. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/square.png +0 -0
  238. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/star.png +0 -0
  239. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/triangle_d.png +0 -0
  240. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/triangle_l.png +0 -0
  241. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/triangle_r.png +0 -0
  242. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/triangle_u.png +0 -0
  243. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markers/xcross.png +0 -0
  244. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markerstyles/cross_marker.png +0 -0
  245. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markerstyles/horiz_marker.png +0 -0
  246. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/markerstyles/vert_marker.png +0 -0
  247. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/mask/mask_circle.png +0 -0
  248. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/mask/mask_circle_outside.png +0 -0
  249. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/mask/mask_rectangle.png +0 -0
  250. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/mask/mask_rectangle_outside.png +0 -0
  251. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/mask/mask_tool.png +0 -0
  252. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/max.png +0 -0
  253. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/min.png +0 -0
  254. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/move.png +0 -0
  255. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/multipoint_selection.png +0 -0
  256. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/none.png +0 -0
  257. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/not_found.png +0 -0
  258. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/on_curve.png +0 -0
  259. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/bdiagpattern.png +0 -0
  260. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/crosspattern.png +0 -0
  261. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/dense1pattern.png +0 -0
  262. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/dense2pattern.png +0 -0
  263. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/dense3pattern.png +0 -0
  264. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/dense4pattern.png +0 -0
  265. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/dense5pattern.png +0 -0
  266. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/dense6pattern.png +0 -0
  267. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/dense7pattern.png +0 -0
  268. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/diagcrosspattern.png +0 -0
  269. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/fdiagpattern.png +0 -0
  270. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/horpattern.png +0 -0
  271. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/nobrush.png +0 -0
  272. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/solidpattern.png +0 -0
  273. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/patterns/verpattern.png +0 -0
  274. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/plotpy-banner.svg +0 -0
  275. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/plotpy-vertical.svg +0 -0
  276. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/plotpy.svg +0 -0
  277. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/point_selection.png +0 -0
  278. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/print.png +0 -0
  279. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/python.png +0 -0
  280. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/quickview.png +0 -0
  281. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/rectangular_select.png +0 -0
  282. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/refresh.png +0 -0
  283. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/save_all.png +0 -0
  284. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/scales/lin_lin.png +0 -0
  285. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/scales/lin_log.png +0 -0
  286. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/scales/log_lin.png +0 -0
  287. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/scales/log_log.png +0 -0
  288. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/selection.png +0 -0
  289. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/settings.png +0 -0
  290. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shape.png +0 -0
  291. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shapes/circle.png +0 -0
  292. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shapes/contour.png +0 -0
  293. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shapes/ellipse_shape.png +0 -0
  294. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shapes/freeform.png +0 -0
  295. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shapes/gtaxes.png +0 -0
  296. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shapes/marker.png +0 -0
  297. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shapes/oblique_rectangle.png +0 -0
  298. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shapes/point_shape.png +0 -0
  299. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shapes/polyline.png +0 -0
  300. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shapes/rectangle.png +0 -0
  301. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/shapes/segment.png +0 -0
  302. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/snapshot.png +0 -0
  303. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/styles/dash.png +0 -0
  304. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/styles/dashdot.png +0 -0
  305. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/styles/dashdotdot.png +0 -0
  306. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/styles/dot.png +0 -0
  307. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/styles/solid.png +0 -0
  308. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/trash.png +0 -0
  309. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/trimage_lock.png +0 -0
  310. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/trimage_unlock.png +0 -0
  311. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/vcursor.png +0 -0
  312. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/vflip.png +0 -0
  313. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/xcursor.png +0 -0
  314. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/xmax.png +0 -0
  315. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/xmin.png +0 -0
  316. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/data/icons/xrange.png +0 -0
  317. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/events.py +0 -0
  318. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/external/__init__.py +0 -0
  319. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/external/sliders/__init__.py +0 -0
  320. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/external/sliders/_generic_range_slider.py +0 -0
  321. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/external/sliders/_generic_slider.py +0 -0
  322. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/external/sliders/_labeled.py +0 -0
  323. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/external/sliders/_misc.py +0 -0
  324. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/external/sliders/_range_style.py +0 -0
  325. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/external/sliders/_sliders.py +0 -0
  326. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/interfaces/__init__.py +0 -0
  327. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/interfaces/items.py +0 -0
  328. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/interfaces/panel.py +0 -0
  329. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/interfaces/plotmanager.py +0 -0
  330. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/__init__.py +0 -0
  331. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/annotation.py +0 -0
  332. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/contour.py +0 -0
  333. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/curve/__init__.py +0 -0
  334. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/grid.py +0 -0
  335. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/histogram.py +0 -0
  336. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/image/__init__.py +0 -0
  337. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/image/base.py +0 -0
  338. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/image/filter.py +0 -0
  339. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/image/image_items.py +0 -0
  340. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/image/masked.py +0 -0
  341. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/image/misc.py +0 -0
  342. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/image/transform.py +0 -0
  343. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/shape/__init__.py +0 -0
  344. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/shape/axis.py +0 -0
  345. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/shape/base.py +0 -0
  346. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/shape/ellipse.py +0 -0
  347. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/shape/marker.py +0 -0
  348. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/shape/point.py +0 -0
  349. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/shape/polygon.py +0 -0
  350. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/shape/range.py +0 -0
  351. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/shape/rectangle.py +0 -0
  352. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/shape/segment.py +0 -0
  353. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/items/shape/svg.py +0 -0
  354. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/lutrange.py +0 -0
  355. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/mathutils/__init__.py +0 -0
  356. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/mathutils/arrayfuncs.py +0 -0
  357. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/mathutils/colormap.py +0 -0
  358. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/mathutils/geometry.py +0 -0
  359. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/mathutils/scaler.py +0 -0
  360. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/panels/base.py +0 -0
  361. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/panels/contrastadjustment.py +0 -0
  362. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/panels/csection/csitem.py +0 -0
  363. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/panels/csection/csplot.py +0 -0
  364. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/panels/csection/cswidget.py +0 -0
  365. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/panels/itemlist.py +0 -0
  366. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/plot/__init__.py +0 -0
  367. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/plot/base.py +0 -0
  368. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/plot/interactive.py +0 -0
  369. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/plot/manager.py +0 -0
  370. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/plot/plotwidget.py +0 -0
  371. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/pyplot.py +0 -0
  372. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/styles/__init__.py +0 -0
  373. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/styles/axes.py +0 -0
  374. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/styles/base.py +0 -0
  375. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/styles/curve.py +0 -0
  376. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/styles/errorbar.py +0 -0
  377. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/styles/histogram.py +0 -0
  378. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/styles/image.py +0 -0
  379. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/styles/label.py +0 -0
  380. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/styles/polygonmap.py +0 -0
  381. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/styles/shape.py +0 -0
  382. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/__init__.py +0 -0
  383. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/benchmarks/__init__.py +0 -0
  384. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/benchmarks/test_benchmarks.py +0 -0
  385. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/benchmarks/test_bigimages.py +0 -0
  386. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/benchmarks/test_loadtest.py +0 -0
  387. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/data/brain.png +0 -0
  388. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/data/brain_cylinder.png +0 -0
  389. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/data/mr-brain.dcm +0 -0
  390. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/data/svg_target.svg +0 -0
  391. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/data/svg_tool.svg +0 -0
  392. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/data.py +0 -0
  393. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/__init__.py +0 -0
  394. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_auto_curve_image.py +0 -0
  395. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_autoscale_shapes.py +0 -0
  396. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_builder.py +0 -0
  397. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_colormap_editor.py +0 -0
  398. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_colormap_manager.py +0 -0
  399. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_contrast.py +0 -0
  400. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_cursors.py +0 -0
  401. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_dicom_image.py +0 -0
  402. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_fit.py +0 -0
  403. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_image_coords.py +0 -0
  404. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_imagefilter.py +0 -0
  405. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_imagesuperp.py +0 -0
  406. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_loadsaveitems_hdf5.py +0 -0
  407. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_loadsaveitems_json.py +0 -0
  408. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_loadsaveitems_pickle.py +0 -0
  409. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_manager.py +0 -0
  410. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_no_auto_tools.py +0 -0
  411. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_plot_log.py +0 -0
  412. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_plot_types.py +0 -0
  413. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_plot_yreverse.py +0 -0
  414. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_pyplot.py +0 -0
  415. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/features/test_resize.py +0 -0
  416. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/__init__.py +0 -0
  417. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_annotations.py +0 -0
  418. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_curves.py +0 -0
  419. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_curves_highdpi.py +0 -0
  420. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_hist2d.py +0 -0
  421. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_histogram.py +0 -0
  422. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_image.py +0 -0
  423. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_image_contour.py +0 -0
  424. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_image_masked.py +0 -0
  425. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_image_masked_xy.py +0 -0
  426. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_image_rgb.py +0 -0
  427. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_image_xy.py +0 -0
  428. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_mandelbrot.py +0 -0
  429. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_pcolor.py +0 -0
  430. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_polygons.py +0 -0
  431. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_svgshapes.py +0 -0
  432. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/items/test_transform.py +0 -0
  433. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/__init__.py +0 -0
  434. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_actiontool.py +0 -0
  435. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_cross_section.py +0 -0
  436. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_cross_section_line.py +0 -0
  437. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_cross_section_oblique.py +0 -0
  438. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_customize_shape_tool.py +0 -0
  439. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_downsample_curve.py +0 -0
  440. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_edit_point.py +0 -0
  441. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_get_point.py +0 -0
  442. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_get_points.py +0 -0
  443. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_get_rectangle.py +0 -0
  444. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_get_rectangle_with_svg.py +0 -0
  445. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_get_segment.py +0 -0
  446. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/tools/test_image_plot_tools.py +0 -0
  447. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/__init__.py +0 -0
  448. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_annotation_tools.py +0 -0
  449. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_aspect_ratio_tool.py +0 -0
  450. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_baseplot.py +0 -0
  451. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_contour.py +0 -0
  452. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_cursor_tools.py +0 -0
  453. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_display_coords_tool.py +0 -0
  454. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_events.py +0 -0
  455. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_fontparam.py +0 -0
  456. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_geometry.py +0 -0
  457. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_highprecisionxy.py +0 -0
  458. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_io.py +0 -0
  459. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_line.py +0 -0
  460. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_line_cross_section_tool.py +0 -0
  461. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_multiline_tools.py +0 -0
  462. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_oblique_cross_section_tool.py +0 -0
  463. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_plot_image.py +0 -0
  464. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_rect_zoom.py +0 -0
  465. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_seg_dist.py +0 -0
  466. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/unit/test_styles.py +0 -0
  467. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/vistools.py +0 -0
  468. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/__init__.py +0 -0
  469. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_dotarraydemo.py +0 -0
  470. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_filtertest1.py +0 -0
  471. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_filtertest2.py +0 -0
  472. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_fliprotate.py +0 -0
  473. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_plot_timecurve.py +0 -0
  474. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_qtdesigner.py +0 -0
  475. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_qtdesigner.ui +0 -0
  476. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_resize_dialog.py +0 -0
  477. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_rotatecrop.py +0 -0
  478. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_simple_dialog.py +0 -0
  479. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_simple_window.py +0 -0
  480. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tests/widgets/test_syncplot.py +0 -0
  481. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/__init__.py +0 -0
  482. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/annotation.py +0 -0
  483. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/axes.py +0 -0
  484. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/base.py +0 -0
  485. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/cross_section.py +0 -0
  486. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/cursor.py +0 -0
  487. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/image.py +0 -0
  488. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/item.py +0 -0
  489. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/label.py +0 -0
  490. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/misc.py +0 -0
  491. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/plot.py +0 -0
  492. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/selection.py +0 -0
  493. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/tools/shape.py +0 -0
  494. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/__init__.py +0 -0
  495. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/about.py +0 -0
  496. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/basetransform.py +0 -0
  497. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/colormap/__init__.py +0 -0
  498. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/colormap/_slider.py +0 -0
  499. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/colormap/widget.py +0 -0
  500. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/fit.py +0 -0
  501. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/fliprotate.py +0 -0
  502. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/imagefile.py +0 -0
  503. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/qtdesigner.py +0 -0
  504. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/resizedialog.py +0 -0
  505. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/rotatecrop.py +0 -0
  506. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy/widgets/selectdialog.py +0 -0
  507. {plotpy-2.3.2 → plotpy-2.3.4}/plotpy-tests.desktop +0 -0
  508. {plotpy-2.3.2 → plotpy-2.3.4}/qtdesigner/plotplugin.py +0 -0
  509. {plotpy-2.3.2 → plotpy-2.3.4}/requirements.txt +0 -0
  510. {plotpy-2.3.2 → plotpy-2.3.4}/setup.cfg +0 -0
  511. {plotpy-2.3.2 → plotpy-2.3.4}/setup.py +0 -0
  512. {plotpy-2.3.2 → plotpy-2.3.4}/src/arrays.hpp +0 -0
  513. {plotpy-2.3.2 → plotpy-2.3.4}/src/contour2d.pyx +0 -0
  514. {plotpy-2.3.2 → plotpy-2.3.4}/src/debug.hpp +0 -0
  515. {plotpy-2.3.2 → plotpy-2.3.4}/src/histogram2d.pyx +0 -0
  516. {plotpy-2.3.2 → plotpy-2.3.4}/src/mandelbrot.pyx +0 -0
  517. {plotpy-2.3.2 → plotpy-2.3.4}/src/pcolor.cpp +0 -0
  518. {plotpy-2.3.2 → plotpy-2.3.4}/src/points.hpp +0 -0
  519. {plotpy-2.3.2 → plotpy-2.3.4}/src/scaler.cpp +0 -0
  520. {plotpy-2.3.2 → plotpy-2.3.4}/src/scaler.hpp +0 -0
  521. {plotpy-2.3.2 → plotpy-2.3.4}/src/traits.hpp +0 -0
@@ -1,5 +1,36 @@
1
1
  # Changelog #
2
2
 
3
+ ## Version 2.3.4 ##
4
+
5
+ In this release, test coverage is 79%.
6
+
7
+ 🛠️ Bug fixes:
8
+
9
+ * Add support for NumPy 2.0:
10
+ * Updated build system to use NumPy 2.0 on Python > 3.8 and NumPy 1 on Python 3.8
11
+ * Use `numpy.asarray` instead of `numpy.array(..., copy=False)`
12
+ * Use `numpy.isin` instead of `numpy.in1d`
13
+ * Use `scipy.integrate.trapezoid` instead of `numpy.trapz`
14
+
15
+ * `ColorMapManager`: fix segmentation fault with PySide6 on Linux
16
+
17
+ ## Version 2.3.3 ##
18
+
19
+ In this release, test coverage is 79%.
20
+
21
+ 🛠️ Bug fixes:
22
+
23
+ * Moved up `LineCrossSection` import for consistency with other cross-section panels
24
+ * Unexpected behavior regarding `io.load_items` and `io.save_items` functions:
25
+ * Those functions were serializing and deserializing most of the parameters of the
26
+ plot items, but not their visibility state
27
+ * This is now fixed: the visibility state of the plot items is now saved and restored
28
+ as expected
29
+
30
+ ℹ️ Other changes:
31
+
32
+ * Explicitely exclude NumPy V2 from the dependencies (not compatible yet)
33
+
3
34
  ## Version 2.3.2 ##
4
35
 
5
36
  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.2
3
+ Version: 2.3.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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PlotPy
3
- Version: 2.3.2
3
+ Version: 2.3.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
@@ -0,0 +1,32 @@
1
+ # content of conftest.py
2
+
3
+ import guidata
4
+ import h5py
5
+ import numpy
6
+ import PIL
7
+ import qtpy
8
+ import qwt
9
+ import scipy
10
+ import tifffile
11
+ from guidata.env import execenv
12
+
13
+ import plotpy
14
+
15
+ # Turn on unattended mode for executing tests without user interaction
16
+ execenv.unattended = True
17
+ execenv.verbose = "quiet"
18
+
19
+
20
+ def pytest_report_header(config):
21
+ """Add additional information to the pytest report header."""
22
+ qtbindings_version = qtpy.PYSIDE_VERSION
23
+ if qtbindings_version is None:
24
+ qtbindings_version = qtpy.PYQT_VERSION
25
+ return [
26
+ f"PlotPy {plotpy.__version__}, guidata {guidata.__version__}, "
27
+ f"PythonQwt {qwt.__version__}, "
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__}",
32
+ ]
@@ -20,7 +20,7 @@ External resources:
20
20
  .. _GitHub: https://github.com/PierreRaybaut/plotpy
21
21
  """
22
22
 
23
- __version__ = "2.3.2"
23
+ __version__ = "2.3.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
@@ -234,7 +234,7 @@ class LabelBuilder:
234
234
  title: label name. Default is None
235
235
 
236
236
  Returns:
237
- :py:class:`.DataInfoLabel` object
237
+ Data info label object
238
238
  """
239
239
  comps = []
240
240
  same_curve = True
@@ -257,7 +257,7 @@ class LabelBuilder:
257
257
  image: ImageItem,
258
258
  function: Callable,
259
259
  title: str | None = None,
260
- ) -> RangeComputation2d:
260
+ ) -> DataInfoLabel:
261
261
  """Make a 2D computation label `plot item`
262
262
 
263
263
  Args:
@@ -270,7 +270,7 @@ class LabelBuilder:
270
270
  title: label name. Default is None
271
271
 
272
272
  Returns:
273
- :py:class:`.RangeComputation2d` object
273
+ Data info label object
274
274
  """
275
275
  return self.computations2d(
276
276
  rect, anchor, [(image, label, function)], title=title
@@ -288,7 +288,7 @@ class LabelBuilder:
288
288
  title: label name. Default is None
289
289
 
290
290
  Returns:
291
- :py:class:`.DataInfoLabel` object
291
+ Data info label object
292
292
  """
293
293
  comps = []
294
294
  same_image = True
@@ -728,6 +728,7 @@ def save_items(
728
728
  for item in items:
729
729
  with writer.group(_get_name(item)):
730
730
  item.serialize(writer)
731
+ writer.write(item.isVisible(), group_name="visible")
731
732
  with writer.group("plot_items"):
732
733
  writer.write_sequence(names)
733
734
 
@@ -756,6 +757,7 @@ def load_items(
756
757
  item = klass()
757
758
  with reader.group(name):
758
759
  item.deserialize(reader)
760
+ item.setVisible(reader.read("visible", default=True))
759
761
  items.append(item)
760
762
  return items
761
763
 
@@ -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.array(x, copy=False)
392
- self._y = np.array(y, copy=False)
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.array(dx, copy=False)
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.array(dy, copy=False)
151
+ dy = np.asarray(dy)
152
152
  if dy.size == 0:
153
153
  dy = None
154
154
  self._dx = dx
@@ -983,7 +983,7 @@ class RangeComputation(ObjectInfo):
983
983
  if vector is None:
984
984
  vectors.append(None)
985
985
  elif i0 == i1:
986
- vectors.append(np.array([np.NaN]))
986
+ vectors.append(np.array([np.nan]))
987
987
  else:
988
988
  vectors.append(vector[i0:i1])
989
989
  return self.label % self.func(*vectors)
@@ -264,9 +264,9 @@ class PolygonMapItem(QwtPlotItem):
264
264
  * x: NumPy array
265
265
  * y: NumPy array
266
266
  """
267
- self._pts = np.array(pts, copy=False)
268
- self._n = np.array(n, copy=False)
269
- self._c = np.array(c, copy=False)
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)
@@ -5,5 +5,10 @@
5
5
 
6
6
  from .base import PanelWidget
7
7
  from .contrastadjustment import ContrastAdjustment
8
- from .csection import ObliqueCrossSection, XCrossSection, YCrossSection
8
+ from .csection import (
9
+ ObliqueCrossSection,
10
+ XCrossSection,
11
+ YCrossSection,
12
+ LineCrossSection,
13
+ )
9
14
  from .itemlist import PlotItemList
@@ -11,9 +11,15 @@ an oblique rectangle).
11
11
  .. autoclass:: XCrossSection
12
12
  .. autoclass:: YCrossSection
13
13
  .. autoclass:: ObliqueCrossSection
14
+ .. autoclass:: LineCrossSection
14
15
  """
15
16
 
16
17
  # pylint: disable=unused-import
17
18
  # flake8: noqa
18
19
 
19
- from .cswidget import ObliqueCrossSection, XCrossSection, YCrossSection
20
+ from .cswidget import (
21
+ ObliqueCrossSection,
22
+ XCrossSection,
23
+ YCrossSection,
24
+ LineCrossSection,
25
+ )
@@ -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: trapz(y, x)
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
- items = []
65
- for show_label in [True, False]:
66
- items.append(
67
- _make_annotation(
68
- method,
69
- title="title",
70
- subtitle="subtitle",
71
- show_label=show_label,
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
- for show_computations in [True, False]:
75
- items.append(_make_annotation(method, show_computations=show_computations))
76
- for show_subtitle in [True, False]:
77
- items.append(_make_annotation(method, show_subtitle=show_subtitle))
78
- for format in ["%f", "%e"]:
79
- items.append(_make_annotation(method, format=format))
80
- for uncertainty in [0.0, 1.0]:
81
- items.append(_make_annotation(method, uncertainty=uncertainty))
82
- for transform_matrix in [None, np.identity(3)]:
83
- items.append(_make_annotation(method, transform_matrix=transform_matrix))
84
- for readonly in [True, False]:
85
- items.append(_make_annotation(method, readonly=readonly))
86
- for private in [True, False]:
87
- items.append(_make_annotation(method, private=private))
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
- curve = _make_curve_style(shade, curvestyle, baseline)
47
- show_items_qtbot([curve], "curve")
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
- curve = _make_curve_style(shade, curvestyle, baseline)
56
- show_items_qtbot([curve], "curve")
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
- curve = _make_curve_dsamp(dsamp_factor, use_dsamp)
74
- show_items_qtbot([curve], "curve")
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
- curve = _make_curve_dsamp(dsamp_factor, use_dsamp)
82
- show_items_qtbot([curve], "curve")
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
- curve = _make_curve_linestyle(color, linestyle, linewidth)
106
- show_items_qtbot([curve], "curve")
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
- curve = _make_curve_linestyle(color, linestyle, linewidth)
115
- show_items_qtbot([curve], "curve")
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
- curve = _make_curve_marker(marker, markersize, markerfacecolor, markeredgecolor)
164
- show_items_qtbot([curve], "curve")
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
- curve = _make_curve_marker(marker, markersize, markerfacecolor, markeredgecolor)
176
- show_items_qtbot([curve], "curve")
182
+ with qt_app_context(exec_loop=False):
183
+ curve = _make_curve_marker(marker, markersize, markerfacecolor, markeredgecolor)
184
+ show_items_qtbot([curve], "curve")
@@ -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.constants import LUTAlpha
@@ -61,55 +62,64 @@ def _make_image(
61
62
  ],
62
63
  )
63
64
  def test_builder_image_alpha_function(alpha_function):
64
- item = _make_image(alpha_function=alpha_function)
65
- show_items_qtbot([item])
65
+ with qt_app_context(exec_loop=False):
66
+ item = _make_image(alpha_function=alpha_function)
67
+ show_items_qtbot([item])
66
68
 
67
69
 
68
70
  @pytest.mark.parametrize(
69
71
  "xdata,ydata", [[[None, None], [None, None]], [[-10, 10], [-10, 10]]]
70
72
  )
71
73
  def test_builder_image_xdata_ydata(xdata, ydata):
72
- item = _make_image(xdata=xdata, ydata=ydata)
73
- show_items_qtbot([item])
74
+ with qt_app_context(exec_loop=False):
75
+ item = _make_image(xdata=xdata, ydata=ydata)
76
+ show_items_qtbot([item])
74
77
 
75
78
 
76
79
  @pytest.mark.parametrize("pixel_size", [None, 1.0, (1.0, 2.0)])
77
80
  def test_builder_image_pixel_size(pixel_size):
78
- item = _make_image(pixel_size=pixel_size)
79
- show_items_qtbot([item])
81
+ with qt_app_context(exec_loop=False):
82
+ item = _make_image(pixel_size=pixel_size)
83
+ show_items_qtbot([item])
80
84
 
81
85
 
82
86
  @pytest.mark.parametrize("center_on", [None, [1.0, 3.0]])
83
87
  def test_builder_image_center_on(center_on):
84
- item = _make_image(center_on=center_on, pixel_size=(1.0, 1.0))
85
- show_items_qtbot([item])
88
+ with qt_app_context(exec_loop=False):
89
+ item = _make_image(center_on=center_on, pixel_size=(1.0, 1.0))
90
+ show_items_qtbot([item])
86
91
 
87
92
 
88
93
  @pytest.mark.parametrize("interpolation", ["nearest", "linear", "antialiasing"])
89
94
  def test_builder_image_interpolation(interpolation):
90
- item = _make_image(interpolation=interpolation)
91
- show_items_qtbot([item])
95
+ with qt_app_context(exec_loop=False):
96
+ item = _make_image(interpolation=interpolation)
97
+ show_items_qtbot([item])
92
98
 
93
99
 
94
100
  @pytest.mark.parametrize("background_color", [None, "red"])
95
101
  def test_builder_image_background_color(background_color):
96
- item = _make_image(background_color=background_color)
97
- show_items_qtbot([item])
102
+ with qt_app_context(exec_loop=False):
103
+ item = _make_image(background_color=background_color)
104
+ show_items_qtbot([item])
98
105
 
99
106
 
100
107
  @pytest.mark.parametrize("eliminate_outliers", [None, 3.0])
101
108
  def test_builder_image_eliminate_outliers(eliminate_outliers):
102
- item = _make_image(eliminate_outliers=eliminate_outliers)
103
- show_items_qtbot([item])
109
+ with qt_app_context(exec_loop=False):
110
+ item = _make_image(eliminate_outliers=eliminate_outliers)
111
+ show_items_qtbot([item])
104
112
 
105
113
 
106
114
  @pytest.mark.parametrize("lut_range", [None, [0.0, 100.0]])
107
115
  def test_builder_image_lut_range(lut_range):
108
- item = _make_image(lut_range=lut_range)
109
- show_items_qtbot([item])
116
+ with qt_app_context(exec_loop=False):
117
+ item = _make_image(lut_range=lut_range)
118
+ show_items_qtbot([item])
110
119
 
111
120
 
112
121
  @pytest.mark.parametrize("lock_position", [None, True, False])
113
122
  def test_builder_image_lock_position(lock_position):
114
- item = _make_image(lock_position=lock_position)
115
- show_items_qtbot([item])
123
+ with qt_app_context(exec_loop=False):
124
+ item = _make_image(lock_position=lock_position)
125
+ show_items_qtbot([item])
@@ -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 import get_path
@@ -37,18 +38,20 @@ def _make_standard_shape(
37
38
  [make.segment, make.rectangle, make.circle, make.ellipse],
38
39
  )
39
40
  def test_builder_standard_shape(method):
40
- items = []
41
- items.append(_make_standard_shape(method, title="title"))
42
- show_items_qtbot(items)
41
+ with qt_app_context(exec_loop=False):
42
+ items = []
43
+ items.append(_make_standard_shape(method, title="title"))
44
+ show_items_qtbot(items)
43
45
 
44
46
 
45
47
  def test_builder_polygon():
46
48
  items = []
47
49
  x = np.linspace(0, 1, 10)
48
50
  y = x**2
49
- for closed in [True, False]:
50
- items.append(make.polygon(x, y, closed=closed, title="title"))
51
- show_items_qtbot(items)
51
+ with qt_app_context(exec_loop=False):
52
+ for closed in [True, False]:
53
+ items.append(make.polygon(x, y, closed=closed, title="title"))
54
+ show_items_qtbot(items)
52
55
 
53
56
 
54
57
  def test_builder_svgshape():
@@ -56,9 +59,10 @@ def test_builder_svgshape():
56
59
  svg_path = get_path("svg_target.svg")
57
60
  with open(svg_path, "rb") as f:
58
61
  svg_data = f.read()
59
- for shape_str in ("circle", "rectangle", "square"):
60
- for data_or_path in (svg_data, svg_path):
61
- items.append(
62
- make.svg(shape_str, data_or_path, 0.0, 0.0, 1.0, 1.0, title="title")
63
- )
64
- show_items_qtbot(items)
62
+ with qt_app_context(exec_loop=False):
63
+ for shape_str in ("circle", "rectangle", "square"):
64
+ for data_or_path in (svg_data, svg_path):
65
+ items.append(
66
+ make.svg(shape_str, data_or_path, 0.0, 0.0, 1.0, 1.0, title="title")
67
+ )
68
+ show_items_qtbot(items)
@@ -216,7 +216,7 @@ def test_edit_point_tool():
216
216
  tool.reset_arrays()
217
217
  assert tool.get_changes() == {}
218
218
  x_arr, y_arr = curve_item.get_data()
219
- assert np.in1d(x_arr, orig_x).all() and np.in1d(y_arr, orig_y).all()
219
+ assert np.isin(x_arr, orig_x).all() and np.isin(y_arr, orig_y).all()
220
220
 
221
221
  exec_dialog(win)
222
222
 
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import os
3
4
  from typing import TYPE_CHECKING, Callable, TypeVar
4
5
 
5
6
  import numpy as np
@@ -270,6 +271,7 @@ def test_select_all_items():
270
271
  exec_dialog(win)
271
272
 
272
273
 
274
+ @pytest.mark.skipif(os.name != "nt", reason="Only tested on Windows.")
273
275
  def test_rotate_with_mouse():
274
276
  """Test rotating an image item with the mouse."""
275
277
  with qt_app_context(exec_loop=False) as qapp:
@@ -325,6 +327,7 @@ def test_rectangular_selection():
325
327
  exec_dialog(win)
326
328
 
327
329
 
330
+ @pytest.mark.skipif(os.name != "nt", reason="Only tested on Windows.")
328
331
  @pytest.mark.parametrize(
329
332
  "mouse_path, rotation",
330
333
  [
@@ -49,9 +49,12 @@ def test_image_mask_tool(shape_tool_cls: type[RectangularShapeTool], inside: boo
49
49
  with execenv.context(accept_dialogs=True):
50
50
  shape_tool.add_shape_to_plot(plot, pos0, pos1)
51
51
  mask_tool.apply_mask()
52
- mask_tool.clear_mask()
52
+
53
+ # Clear mask
54
+ item.unmask_all()
55
+ plot.replot()
53
56
 
54
57
  shape_tool.add_shape_to_plot(plot, pos0, pos1)
55
- mask_tool.remove_all_shapes()
58
+ mask_tool.remove_shapes()
56
59
 
57
60
  exec_dialog(win)