PlotPy 2.7.0__tar.gz → 2.7.2__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 (522) hide show
  1. {plotpy-2.7.0 → plotpy-2.7.2}/CHANGELOG.md +18 -0
  2. {plotpy-2.7.0/PlotPy.egg-info → plotpy-2.7.2}/PKG-INFO +2 -2
  3. {plotpy-2.7.0 → plotpy-2.7.2/PlotPy.egg-info}/PKG-INFO +2 -2
  4. {plotpy-2.7.0 → plotpy-2.7.2}/doc/dev/v1_to_v2.rst +17 -0
  5. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/__init__.py +1 -1
  6. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/interfaces/items.py +17 -0
  7. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/annotation.py +7 -8
  8. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/contour.py +1 -2
  9. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/curve/base.py +17 -2
  10. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/curve/errorbar.py +2 -2
  11. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/grid.py +17 -2
  12. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/histogram.py +1 -2
  13. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/image/base.py +17 -2
  14. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/image/filter.py +1 -2
  15. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/image/misc.py +1 -2
  16. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/label.py +18 -3
  17. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/polygonmap.py +17 -2
  18. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/shape/axis.py +1 -2
  19. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/shape/base.py +16 -0
  20. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/shape/ellipse.py +3 -4
  21. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/shape/marker.py +17 -2
  22. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/shape/point.py +1 -2
  23. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/shape/polygon.py +1 -2
  24. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/shape/range.py +2 -2
  25. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/shape/rectangle.py +2 -3
  26. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/shape/segment.py +1 -2
  27. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/shape/svg.py +2 -2
  28. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/panels/itemlist.py +102 -42
  29. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/plot/base.py +3 -1
  30. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_annotations.py +4 -1
  31. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_transform.py +3 -1
  32. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/cross_section.py +1 -3
  33. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/image.py +3 -3
  34. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/shape.py +11 -0
  35. {plotpy-2.7.0 → plotpy-2.7.2}/src/histogram2d.c +210 -210
  36. {plotpy-2.7.0 → plotpy-2.7.2}/src/mandelbrot.c +210 -210
  37. {plotpy-2.7.0 → plotpy-2.7.2}/LICENSE +0 -0
  38. {plotpy-2.7.0 → plotpy-2.7.2}/MANIFEST.in +0 -0
  39. {plotpy-2.7.0 → plotpy-2.7.2}/PlotPy.egg-info/SOURCES.txt +0 -0
  40. {plotpy-2.7.0 → plotpy-2.7.2}/PlotPy.egg-info/dependency_links.txt +0 -0
  41. {plotpy-2.7.0 → plotpy-2.7.2}/PlotPy.egg-info/entry_points.txt +0 -0
  42. {plotpy-2.7.0 → plotpy-2.7.2}/PlotPy.egg-info/requires.txt +0 -0
  43. {plotpy-2.7.0 → plotpy-2.7.2}/PlotPy.egg-info/top_level.txt +0 -0
  44. {plotpy-2.7.0 → plotpy-2.7.2}/README.md +0 -0
  45. {plotpy-2.7.0 → plotpy-2.7.2}/colormaps/README.md +0 -0
  46. {plotpy-2.7.0 → plotpy-2.7.2}/colormaps/_cm.py +0 -0
  47. {plotpy-2.7.0 → plotpy-2.7.2}/colormaps/colormap.py +0 -0
  48. {plotpy-2.7.0 → plotpy-2.7.2}/colormaps/matplotlib_cmaps.py +0 -0
  49. {plotpy-2.7.0 → plotpy-2.7.2}/doc/_static/favicon.ico +0 -0
  50. {plotpy-2.7.0 → plotpy-2.7.2}/doc/changelog.rst +0 -0
  51. {plotpy-2.7.0 → plotpy-2.7.2}/doc/conf.py +0 -0
  52. {plotpy-2.7.0 → plotpy-2.7.2}/doc/dev/build.rst +0 -0
  53. {plotpy-2.7.0 → plotpy-2.7.2}/doc/dev/contribute.rst +0 -0
  54. {plotpy-2.7.0 → plotpy-2.7.2}/doc/dev/guiqwt_to_plotpy.csv +0 -0
  55. {plotpy-2.7.0 → plotpy-2.7.2}/doc/dev/guiqwt_to_plotpy.rst +0 -0
  56. {plotpy-2.7.0 → plotpy-2.7.2}/doc/dev/index.rst +0 -0
  57. {plotpy-2.7.0 → plotpy-2.7.2}/doc/dev/platforms.rst +0 -0
  58. {plotpy-2.7.0 → plotpy-2.7.2}/doc/dev/v1_to_guidata_v3.csv +0 -0
  59. {plotpy-2.7.0 → plotpy-2.7.2}/doc/dev/v1_to_v2.csv +0 -0
  60. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/colormapmanager.rst +0 -0
  61. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/events.rst +0 -0
  62. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/fit.rst +0 -0
  63. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/fliprotate.rst +0 -0
  64. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/imagefile.rst +0 -0
  65. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/index.rst +0 -0
  66. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/io.rst +0 -0
  67. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/items/builder.rst +0 -0
  68. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/items/examples.rst +0 -0
  69. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/items/index.rst +0 -0
  70. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/items/overview.rst +0 -0
  71. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/items/reference.rst +0 -0
  72. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/mathutils/colormaps.rst +0 -0
  73. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/mathutils/geometry.rst +0 -0
  74. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/mathutils/index.rst +0 -0
  75. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/mathutils/scaler.rst +0 -0
  76. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/panels/index.rst +0 -0
  77. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/panels/overview.rst +0 -0
  78. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/panels/reference.rst +0 -0
  79. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/plot/examples.rst +0 -0
  80. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/plot/index.rst +0 -0
  81. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/plot/overview.rst +0 -0
  82. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/plot/reference.rst +0 -0
  83. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/pyplot.rst +0 -0
  84. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/resizedialog.rst +0 -0
  85. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/rotatecrop.rst +0 -0
  86. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/selectdialog.rst +0 -0
  87. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/signals.rst +0 -0
  88. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/styles/index.rst +0 -0
  89. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/styles/overview.rst +0 -0
  90. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/styles/reference.rst +0 -0
  91. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/tools/examples.rst +0 -0
  92. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/tools/index.rst +0 -0
  93. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/tools/overview.rst +0 -0
  94. {plotpy-2.7.0 → plotpy-2.7.2}/doc/features/tools/reference.rst +0 -0
  95. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/my_plot_manager.png +0 -0
  96. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/my_plot_manager.svg +0 -0
  97. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/panorama-vertical.png +0 -0
  98. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/panorama-vertical.svg +0 -0
  99. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/panorama.png +0 -0
  100. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/panorama.svg +0 -0
  101. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/plot_widgets.png +0 -0
  102. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/plot_widgets.svg +0 -0
  103. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/plotpy-banner.png +0 -0
  104. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/plotpy-vertical.png +0 -0
  105. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/__init__.png +0 -0
  106. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/computations.png +0 -0
  107. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/contrast.png +0 -0
  108. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/cross_section.png +0 -0
  109. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/cross_section2.png +0 -0
  110. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/dotarraydemo.png +0 -0
  111. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/filtertest1.png +0 -0
  112. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/filtertest2.png +0 -0
  113. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/fit.png +0 -0
  114. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/get_point.png +0 -0
  115. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/hist2d.png +0 -0
  116. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/image_plot_tools.png +0 -0
  117. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/imagefilter.png +0 -0
  118. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/imagesuperp.png +0 -0
  119. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/imagexy.png +0 -0
  120. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/manager.png +0 -0
  121. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/mandelbrot.png +0 -0
  122. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/pcolor.png +0 -0
  123. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/plot.png +0 -0
  124. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/simple_dialog.png +0 -0
  125. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/simple_window.png +0 -0
  126. {plotpy-2.7.0 → plotpy-2.7.2}/doc/images/screenshots/transform.png +0 -0
  127. {plotpy-2.7.0 → plotpy-2.7.2}/doc/index.rst +0 -0
  128. {plotpy-2.7.0 → plotpy-2.7.2}/doc/intro/examples.rst +0 -0
  129. {plotpy-2.7.0 → plotpy-2.7.2}/doc/intro/index.rst +0 -0
  130. {plotpy-2.7.0 → plotpy-2.7.2}/doc/intro/installation.rst +0 -0
  131. {plotpy-2.7.0 → plotpy-2.7.2}/doc/intro/licenses.rst +0 -0
  132. {plotpy-2.7.0 → plotpy-2.7.2}/doc/intro/motivation.rst +0 -0
  133. {plotpy-2.7.0 → plotpy-2.7.2}/doc/intro/overview.rst +0 -0
  134. {plotpy-2.7.0 → plotpy-2.7.2}/doc/requirements.rst +0 -0
  135. {plotpy-2.7.0 → plotpy-2.7.2}/doc/update_requirements.py +0 -0
  136. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/builder/__init__.py +0 -0
  137. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/builder/annotation.py +0 -0
  138. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/builder/curvemarker.py +0 -0
  139. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/builder/image.py +0 -0
  140. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/builder/label.py +0 -0
  141. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/builder/plot.py +0 -0
  142. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/builder/shape.py +0 -0
  143. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/config.py +0 -0
  144. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/constants.py +0 -0
  145. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/coords.py +0 -0
  146. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/colormaps_default.json +0 -0
  147. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/apply.png +0 -0
  148. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/arredit.png +0 -0
  149. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/arrow_down.png +0 -0
  150. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/arrow_up.png +0 -0
  151. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/autorefresh.png +0 -0
  152. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/autoscale.png +0 -0
  153. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/axes.png +0 -0
  154. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/busy.png +0 -0
  155. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/cell_edit.png +0 -0
  156. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/center.png +0 -0
  157. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/cmap_edit.png +0 -0
  158. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/contrast.png +0 -0
  159. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/copy.png +0 -0
  160. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/copytoclipboard.png +0 -0
  161. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/csapplylut.png +0 -0
  162. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/csautoscale.png +0 -0
  163. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/csection.png +0 -0
  164. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/csection_a.png +0 -0
  165. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/csection_line.png +0 -0
  166. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/csection_oblique.png +0 -0
  167. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/csperimage.png +0 -0
  168. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/curve_downsample.png +0 -0
  169. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/curvestyles/dots.png +0 -0
  170. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/curvestyles/lines.png +0 -0
  171. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/curvestyles/steps.png +0 -0
  172. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/curvestyles/sticks.png +0 -0
  173. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/curvetypes/xfy.png +0 -0
  174. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/curvetypes/yfx.png +0 -0
  175. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/delete.png +0 -0
  176. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/edit.png +0 -0
  177. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/edit_point_selection.png +0 -0
  178. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/editors/edit.png +0 -0
  179. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/editors/edit_add.png +0 -0
  180. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/editors/editcopy.png +0 -0
  181. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/editors/editdelete.png +0 -0
  182. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/editors/editpaste.png +0 -0
  183. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/editors/fileimport.png +0 -0
  184. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/editors/filesave.png +0 -0
  185. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/editors/imshow.png +0 -0
  186. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/editors/insert.png +0 -0
  187. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/editors/plot.png +0 -0
  188. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/editors/rename.png +0 -0
  189. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/eliminate_outliers.png +0 -0
  190. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/eraser.png +0 -0
  191. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/exit.png +0 -0
  192. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/expander_down.png +0 -0
  193. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/expander_right.png +0 -0
  194. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/export.png +0 -0
  195. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/file.png +0 -0
  196. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/fileclose.png +0 -0
  197. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/fileimport.png +0 -0
  198. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filenew.png +0 -0
  199. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/fileopen.png +0 -0
  200. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filesave.png +0 -0
  201. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filesaveas.png +0 -0
  202. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/doc.png +0 -0
  203. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/gif.png +0 -0
  204. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/html.png +0 -0
  205. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/jpg.png +0 -0
  206. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/pdf.png +0 -0
  207. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/png.png +0 -0
  208. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/pps.png +0 -0
  209. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/ps.png +0 -0
  210. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/tar.png +0 -0
  211. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/tgz.png +0 -0
  212. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/tif.png +0 -0
  213. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/txt.png +0 -0
  214. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/xls.png +0 -0
  215. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/filetypes/zip.png +0 -0
  216. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/font.png +0 -0
  217. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/full_range.png +0 -0
  218. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/funct.png +0 -0
  219. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/hcursor.png +0 -0
  220. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/hflip.png +0 -0
  221. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/imagestats.png +0 -0
  222. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/item_list.png +0 -0
  223. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/items/annotation.png +0 -0
  224. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/items/curve.png +0 -0
  225. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/items/errorbar.png +0 -0
  226. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/items/grid.png +0 -0
  227. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/items/histogram.png +0 -0
  228. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/items/histogram2d.png +0 -0
  229. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/items/image.png +0 -0
  230. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/items/label.png +0 -0
  231. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/items/legend.png +0 -0
  232. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/items/polygonmap.png +0 -0
  233. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/magnifier.png +0 -0
  234. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/cross.png +0 -0
  235. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/diamond.png +0 -0
  236. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/ellipse.png +0 -0
  237. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/hexagon.png +0 -0
  238. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/point.png +0 -0
  239. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/square.png +0 -0
  240. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/star.png +0 -0
  241. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/triangle_d.png +0 -0
  242. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/triangle_l.png +0 -0
  243. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/triangle_r.png +0 -0
  244. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/triangle_u.png +0 -0
  245. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markers/xcross.png +0 -0
  246. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markerstyles/cross_marker.png +0 -0
  247. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markerstyles/horiz_marker.png +0 -0
  248. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/markerstyles/vert_marker.png +0 -0
  249. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/mask/mask_circle.png +0 -0
  250. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/mask/mask_circle_outside.png +0 -0
  251. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/mask/mask_rectangle.png +0 -0
  252. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/mask/mask_rectangle_outside.png +0 -0
  253. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/mask/mask_tool.png +0 -0
  254. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/max.png +0 -0
  255. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/min.png +0 -0
  256. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/move.png +0 -0
  257. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/multipoint_selection.png +0 -0
  258. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/none.png +0 -0
  259. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/not_found.png +0 -0
  260. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/on_curve.png +0 -0
  261. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/bdiagpattern.png +0 -0
  262. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/crosspattern.png +0 -0
  263. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/dense1pattern.png +0 -0
  264. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/dense2pattern.png +0 -0
  265. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/dense3pattern.png +0 -0
  266. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/dense4pattern.png +0 -0
  267. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/dense5pattern.png +0 -0
  268. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/dense6pattern.png +0 -0
  269. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/dense7pattern.png +0 -0
  270. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/diagcrosspattern.png +0 -0
  271. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/fdiagpattern.png +0 -0
  272. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/horpattern.png +0 -0
  273. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/nobrush.png +0 -0
  274. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/solidpattern.png +0 -0
  275. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/patterns/verpattern.png +0 -0
  276. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/plotpy-banner.svg +0 -0
  277. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/plotpy-vertical.svg +0 -0
  278. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/plotpy.svg +0 -0
  279. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/point_selection.png +0 -0
  280. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/print.png +0 -0
  281. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/python.png +0 -0
  282. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/quickview.png +0 -0
  283. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/rectangular_select.png +0 -0
  284. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/refresh.png +0 -0
  285. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/save_all.png +0 -0
  286. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/scales/lin_lin.png +0 -0
  287. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/scales/lin_log.png +0 -0
  288. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/scales/log_lin.png +0 -0
  289. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/scales/log_log.png +0 -0
  290. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/selection.png +0 -0
  291. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/settings.png +0 -0
  292. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shape.png +0 -0
  293. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shapes/circle.png +0 -0
  294. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shapes/contour.png +0 -0
  295. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shapes/ellipse_shape.png +0 -0
  296. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shapes/gtaxes.png +0 -0
  297. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shapes/marker.png +0 -0
  298. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shapes/oblique_rectangle.png +0 -0
  299. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shapes/point_shape.png +0 -0
  300. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shapes/polygon.png +0 -0
  301. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shapes/polyline.png +0 -0
  302. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shapes/rectangle.png +0 -0
  303. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/shapes/segment.png +0 -0
  304. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/snapshot.png +0 -0
  305. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/styles/dash.png +0 -0
  306. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/styles/dashdot.png +0 -0
  307. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/styles/dashdotdot.png +0 -0
  308. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/styles/dot.png +0 -0
  309. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/styles/solid.png +0 -0
  310. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/trash.png +0 -0
  311. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/trimage_lock.png +0 -0
  312. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/trimage_unlock.png +0 -0
  313. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/vcursor.png +0 -0
  314. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/vflip.png +0 -0
  315. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/xcursor.png +0 -0
  316. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/xmax.png +0 -0
  317. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/xmin.png +0 -0
  318. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/xrange.png +0 -0
  319. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/data/icons/zlog.svg +0 -0
  320. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/events.py +0 -0
  321. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/external/__init__.py +0 -0
  322. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/external/sliders/__init__.py +0 -0
  323. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/external/sliders/_generic_range_slider.py +0 -0
  324. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/external/sliders/_generic_slider.py +0 -0
  325. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/external/sliders/_labeled.py +0 -0
  326. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/external/sliders/_misc.py +0 -0
  327. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/external/sliders/_range_style.py +0 -0
  328. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/external/sliders/_sliders.py +0 -0
  329. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/interfaces/__init__.py +0 -0
  330. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/interfaces/panel.py +0 -0
  331. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/interfaces/plotmanager.py +0 -0
  332. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/io.py +0 -0
  333. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/__init__.py +0 -0
  334. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/curve/__init__.py +0 -0
  335. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/image/__init__.py +0 -0
  336. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/image/image_items.py +0 -0
  337. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/image/masked.py +0 -0
  338. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/image/transform.py +0 -0
  339. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/items/shape/__init__.py +0 -0
  340. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/locale/fr/LC_MESSAGES/plotpy.mo +0 -0
  341. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/lutrange.py +0 -0
  342. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/mathutils/__init__.py +0 -0
  343. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/mathutils/arrayfuncs.py +0 -0
  344. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/mathutils/colormap.py +0 -0
  345. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/mathutils/geometry.py +0 -0
  346. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/mathutils/scaler.py +0 -0
  347. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/panels/__init__.py +0 -0
  348. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/panels/base.py +0 -0
  349. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/panels/contrastadjustment.py +0 -0
  350. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/panels/csection/__init__.py +0 -0
  351. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/panels/csection/csitem.py +0 -0
  352. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/panels/csection/csplot.py +0 -0
  353. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/panels/csection/cswidget.py +0 -0
  354. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/plot/__init__.py +0 -0
  355. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/plot/interactive.py +0 -0
  356. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/plot/manager.py +0 -0
  357. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/plot/plotwidget.py +0 -0
  358. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/pyplot.py +0 -0
  359. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/styles/__init__.py +0 -0
  360. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/styles/axes.py +0 -0
  361. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/styles/base.py +0 -0
  362. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/styles/curve.py +0 -0
  363. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/styles/errorbar.py +0 -0
  364. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/styles/histogram.py +0 -0
  365. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/styles/image.py +0 -0
  366. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/styles/label.py +0 -0
  367. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/styles/polygonmap.py +0 -0
  368. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/styles/shape.py +0 -0
  369. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/__init__.py +0 -0
  370. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/benchmarks/__init__.py +0 -0
  371. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/benchmarks/test_benchmarks.py +0 -0
  372. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/benchmarks/test_bigimages.py +0 -0
  373. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/benchmarks/test_loadtest.py +0 -0
  374. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/conftest.py +0 -0
  375. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/data/brain.png +0 -0
  376. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/data/brain_cylinder.png +0 -0
  377. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/data/mr-brain.dcm +0 -0
  378. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/data/svg_target.svg +0 -0
  379. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/data/svg_tool.svg +0 -0
  380. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/data.py +0 -0
  381. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/__init__.py +0 -0
  382. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_auto_curve_image.py +0 -0
  383. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_autoscale_shapes.py +0 -0
  384. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_builder.py +0 -0
  385. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_colormap_editor.py +0 -0
  386. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_colormap_manager.py +0 -0
  387. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_computations.py +0 -0
  388. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_contrast.py +0 -0
  389. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_cursors.py +0 -0
  390. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_dicom_image.py +0 -0
  391. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_fit.py +0 -0
  392. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_image_coords.py +0 -0
  393. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_image_data_update.py +0 -0
  394. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_imagefilter.py +0 -0
  395. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_imagesuperp.py +0 -0
  396. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_loadsaveitems_hdf5.py +0 -0
  397. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_loadsaveitems_json.py +0 -0
  398. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_loadsaveitems_pickle.py +0 -0
  399. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_manager.py +0 -0
  400. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_no_auto_tools.py +0 -0
  401. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_plot_log.py +0 -0
  402. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_plot_types.py +0 -0
  403. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_plot_yreverse.py +0 -0
  404. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_pyplot.py +0 -0
  405. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/features/test_resize.py +0 -0
  406. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/__init__.py +0 -0
  407. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_curves.py +0 -0
  408. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_curves_highdpi.py +0 -0
  409. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_hist2d.py +0 -0
  410. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_histogram.py +0 -0
  411. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_image.py +0 -0
  412. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_image_contour.py +0 -0
  413. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_image_masked.py +0 -0
  414. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_image_masked_xy.py +0 -0
  415. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_image_rgb.py +0 -0
  416. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_image_xy.py +0 -0
  417. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_mandelbrot.py +0 -0
  418. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_pcolor.py +0 -0
  419. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_polygons.py +0 -0
  420. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/items/test_svgshapes.py +0 -0
  421. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/__init__.py +0 -0
  422. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_actiontool.py +0 -0
  423. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_cross_section.py +0 -0
  424. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_cross_section_line.py +0 -0
  425. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_cross_section_oblique.py +0 -0
  426. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_customize_shape_tool.py +0 -0
  427. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_cyclic_import.py +0 -0
  428. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_downsample_curve.py +0 -0
  429. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_edit_point.py +0 -0
  430. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_get_point.py +0 -0
  431. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_get_points.py +0 -0
  432. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_get_rectangle.py +0 -0
  433. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_get_rectangle_with_svg.py +0 -0
  434. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_get_segment.py +0 -0
  435. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_image_plot_tools.py +0 -0
  436. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_stats_tools.py +0 -0
  437. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/tools/test_zaxislog.py +0 -0
  438. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/__init__.py +0 -0
  439. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_annotation_tools.py +0 -0
  440. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_aspect_ratio_tool.py +0 -0
  441. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_baseplot.py +0 -0
  442. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_builder_annotation.py +0 -0
  443. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_builder_curve.py +0 -0
  444. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_builder_image.py +0 -0
  445. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_builder_shape.py +0 -0
  446. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_contour.py +0 -0
  447. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_cursor_tools.py +0 -0
  448. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_curve_tools.py +0 -0
  449. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_display_coords_tool.py +0 -0
  450. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_events.py +0 -0
  451. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_fontparam.py +0 -0
  452. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_geometry.py +0 -0
  453. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_io.py +0 -0
  454. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_line.py +0 -0
  455. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_line_cross_section_tool.py +0 -0
  456. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_manipulate_selection.py +0 -0
  457. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_mask_tool.py +0 -0
  458. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_multiline_tools.py +0 -0
  459. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_oblique_cross_section_tool.py +0 -0
  460. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_plot_curve.py +0 -0
  461. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_plot_image.py +0 -0
  462. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_rect_zoom.py +0 -0
  463. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_seg_dist.py +0 -0
  464. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_styles.py +0 -0
  465. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/test_tools_export.py +0 -0
  466. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/unit/utils.py +0 -0
  467. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/vistools.py +0 -0
  468. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/__init__.py +0 -0
  469. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_dotarraydemo.py +0 -0
  470. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_filtertest1.py +0 -0
  471. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_filtertest2.py +0 -0
  472. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_fliprotate.py +0 -0
  473. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_plot_timecurve.py +0 -0
  474. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_qtdesigner.py +0 -0
  475. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_qtdesigner.ui +0 -0
  476. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_resize_dialog.py +0 -0
  477. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_rotatecrop.py +0 -0
  478. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_simple_dialog.py +0 -0
  479. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_simple_window.py +0 -0
  480. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_syncplot.py +0 -0
  481. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tests/widgets/test_theme.py +0 -0
  482. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/__init__.py +0 -0
  483. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/annotation.py +0 -0
  484. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/axes.py +0 -0
  485. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/base.py +0 -0
  486. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/cursor.py +0 -0
  487. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/curve.py +0 -0
  488. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/item.py +0 -0
  489. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/label.py +0 -0
  490. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/misc.py +0 -0
  491. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/plot.py +0 -0
  492. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/tools/selection.py +0 -0
  493. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/__init__.py +0 -0
  494. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/about.py +0 -0
  495. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/basetransform.py +0 -0
  496. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/colormap/__init__.py +0 -0
  497. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/colormap/_slider.py +0 -0
  498. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/colormap/editor.py +0 -0
  499. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/colormap/manager.py +0 -0
  500. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/colormap/widget.py +0 -0
  501. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/fit.py +0 -0
  502. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/fliprotate.py +0 -0
  503. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/imagefile.py +0 -0
  504. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/qtdesigner.py +0 -0
  505. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/resizedialog.py +0 -0
  506. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/rotatecrop.py +0 -0
  507. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy/widgets/selectdialog.py +0 -0
  508. {plotpy-2.7.0 → plotpy-2.7.2}/plotpy-tests.desktop +0 -0
  509. {plotpy-2.7.0 → plotpy-2.7.2}/pyproject.toml +0 -0
  510. {plotpy-2.7.0 → plotpy-2.7.2}/qtdesigner/plotplugin.py +0 -0
  511. {plotpy-2.7.0 → plotpy-2.7.2}/requirements.txt +0 -0
  512. {plotpy-2.7.0 → plotpy-2.7.2}/setup.cfg +0 -0
  513. {plotpy-2.7.0 → plotpy-2.7.2}/setup.py +0 -0
  514. {plotpy-2.7.0 → plotpy-2.7.2}/src/arrays.hpp +0 -0
  515. {plotpy-2.7.0 → plotpy-2.7.2}/src/debug.hpp +0 -0
  516. {plotpy-2.7.0 → plotpy-2.7.2}/src/histogram2d.pyx +0 -0
  517. {plotpy-2.7.0 → plotpy-2.7.2}/src/mandelbrot.pyx +0 -0
  518. {plotpy-2.7.0 → plotpy-2.7.2}/src/pcolor.cpp +0 -0
  519. {plotpy-2.7.0 → plotpy-2.7.2}/src/points.hpp +0 -0
  520. {plotpy-2.7.0 → plotpy-2.7.2}/src/scaler.cpp +0 -0
  521. {plotpy-2.7.0 → plotpy-2.7.2}/src/scaler.hpp +0 -0
  522. {plotpy-2.7.0 → plotpy-2.7.2}/src/traits.hpp +0 -0
@@ -1,5 +1,23 @@
1
1
  # Changelog #
2
2
 
3
+ ## Version 2.7.2 ##
4
+
5
+ 🛠️ Bug fixes:
6
+
7
+ * [Issue #32](https://github.com/PlotPyStack/PlotPy/issues/32) - Plot item list panel's parameters dialog box is empty for non-selectable items
8
+ * [Issue #30](https://github.com/PlotPyStack/PlotPy/issues/30) - `handle_final_shape_cb` argument doesn't work on `MultilineTool`, `PolygonTool`, `AnnotatedPolygonTool`
9
+
10
+ ## Version 2.7.1 ##
11
+
12
+ 🛠️ Bug fixes:
13
+
14
+ * Fixed update `canvasRect` type to `QRectF` for intersection checks in `CircleSVGShape`, following [this bug fix](https://github.com/PlotPyStack/PythonQwt/commit/d0b5e26d8f78a9a65939503553f1bc1b56826e4e) in `PythonQwt` V0.14.4
15
+ * Fixed regression with respect to `guiqwt` regarding plot items instantiation:
16
+ * `guiqwt` was allowing to instantiate plot items without needing to create a `QApplication` instance (no GUI event loop was required)
17
+ * This was not the case with `plotpy`, so that it was not possible -for example- to serialize/deserialize plot items to JSON without creating a `QApplication` instance
18
+ * This has been fixed by removing the `QIcon` instantiation from the plot items constructors (call to `QwtPlotItem.setIcon` method). Note that -in the meantime- `QwtPlotItem.setIcon` and `QwtPlotItem.icon` methods have also been removed in PythonQwt V0.14.3. Code relying on this feature should thus be updated to use the new `get_icon_name` method instead, i.e. `get_icon(item.get_icon_name())` instead of `item.icon()`.
19
+ * [Issue #26](https://github.com/PlotPyStack/PlotPy/issues/26) - Item list panel should not allow to select a non-selectable item
20
+
3
21
  ## Version 2.7.0 ##
4
22
 
5
23
  Supported versions of Python have been updated (drop support for Python 3.8, add support for Python 3.13):
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: PlotPy
3
- Version: 2.7.0
3
+ Version: 2.7.2
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
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: PlotPy
3
- Version: 2.7.0
3
+ Version: 2.7.2
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
@@ -85,3 +85,20 @@ functions are:
85
85
  :py:meth:`.PlotBuilder.trimage`, :py:meth:`.PlotBuilder.rgbimage`, and
86
86
  :py:meth:`.PlotBuilder.quadgrid`. If you were using it, you should
87
87
  replace it by the new ``alpha_function`` parameter.
88
+
89
+ Plot item icon handling
90
+ ^^^^^^^^^^^^^^^^^^^^^^^
91
+
92
+ The `guiqwt` library was allowing to instantiate plot items without needing to create
93
+ a `QApplication` instance (no GUI event loop was required). This was not the case with
94
+ `plotpy` V1, so that it was not possible -for example- to serialize/deserialize plot
95
+ items to JSON without creating a `QApplication` instance.
96
+
97
+ With `plotpy` V2, this has been fixed by removing the `QIcon` instantiation from the
98
+ plot items constructors (call to `QwtPlotItem.setIcon` method).
99
+
100
+ Note that -in the meantime- `QwtPlotItem.setIcon` and `QwtPlotItem.icon` methods have
101
+ also been removed in PythonQwt V0.14.3.
102
+
103
+ Code relying on this feature should thus be updated to use the new `get_icon_name`
104
+ method instead, i.e. `get_icon(item.get_icon_name())` instead of `item.icon()`.
@@ -20,7 +20,7 @@ External resources:
20
20
  .. _GitHub: https://github.com/PierreRaybaut/plotpy
21
21
  """
22
22
 
23
- __version__ = "2.7.0"
23
+ __version__ = "2.7.2"
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
@@ -249,6 +249,23 @@ class IBasePlotItem:
249
249
  _can_move = True
250
250
  _can_resize = True
251
251
  _can_rotate = True
252
+ _icon_name = "" # Icon name (e.g. "point.png")
253
+
254
+ def get_icon_name(self) -> str:
255
+ """Return the icon name
256
+
257
+ Returns:
258
+ Icon name
259
+ """
260
+ return self._icon_name
261
+
262
+ def set_icon_name(self, icon_name: str) -> None:
263
+ """Set the icon name
264
+
265
+ Args:
266
+ icon_name: Icon name
267
+ """
268
+ self._icon_name = icon_name
252
269
 
253
270
  def set_selectable(self, state: bool) -> None:
254
271
  """Set item selectable state
@@ -17,7 +17,6 @@ from __future__ import annotations
17
17
  from typing import TYPE_CHECKING, Callable
18
18
 
19
19
  import numpy as np
20
- from guidata.configtools import get_icon
21
20
  from guidata.dataset import update_dataset
22
21
  from guidata.utils.misc import assert_interfaces_valid
23
22
 
@@ -60,6 +59,7 @@ class AnnotatedShape(AbstractShape):
60
59
  """
61
60
 
62
61
  __implements__ = (IBasePlotItem, ISerializableType)
62
+ _icon_name = "annotation.png"
63
63
  SHAPE_CLASS: type[AbstractShape] = RectangleShape # to be overridden
64
64
  LABEL_ANCHOR: str = ""
65
65
 
@@ -88,7 +88,6 @@ class AnnotatedShape(AbstractShape):
88
88
  else:
89
89
  self.annotationparam = annotationparam
90
90
  self.annotationparam.update_item(self)
91
- self.setIcon(get_icon("annotation.png"))
92
91
 
93
92
  def types(self) -> tuple[type[IItemType], ...]:
94
93
  """Returns a group or category for this item.
@@ -485,6 +484,7 @@ class AnnotatedPoint(AnnotatedShape):
485
484
  *annotationparam* (see :py:class:`.styles.AnnotationParam`)
486
485
  """
487
486
 
487
+ _icon_name = "point_shape.png"
488
488
  SHAPE_CLASS = PointShape
489
489
  LABEL_ANCHOR = "TL"
490
490
 
@@ -498,7 +498,6 @@ class AnnotatedPoint(AnnotatedShape):
498
498
  super().__init__(annotationparam, info_callback)
499
499
  self.shape: PointShape
500
500
  self.set_pos(x, y)
501
- self.setIcon(get_icon("point_shape.png"))
502
501
 
503
502
  # ----Public API-------------------------------------------------------------
504
503
  def set_pos(self, x, y):
@@ -547,6 +546,7 @@ class AnnotatedSegment(AnnotatedShape):
547
546
  (see :py:class:`.styles.AnnotationParam`)
548
547
  """
549
548
 
549
+ _icon_name = "segment.png"
550
550
  SHAPE_CLASS = SegmentShape
551
551
  LABEL_ANCHOR = "C"
552
552
 
@@ -562,7 +562,6 @@ class AnnotatedSegment(AnnotatedShape):
562
562
  super().__init__(annotationparam, info_callback)
563
563
  self.shape: SegmentShape
564
564
  self.set_rect(x1, y1, x2, y2)
565
- self.setIcon(get_icon("segment.png"))
566
565
 
567
566
  # ----Public API-------------------------------------------------------------
568
567
  def set_rect(self, x1, y1, x2, y2):
@@ -619,6 +618,7 @@ class AnnotatedPolygon(AnnotatedShape):
619
618
  annotationparam: Annotation parameters
620
619
  """
621
620
 
621
+ _icon_name = "polygon.png"
622
622
  SHAPE_CLASS = PolygonShape
623
623
  LABEL_ANCHOR = "C"
624
624
 
@@ -635,7 +635,6 @@ class AnnotatedPolygon(AnnotatedShape):
635
635
  self.set_points(points)
636
636
  if closed is not None:
637
637
  self.set_closed(closed)
638
- self.setIcon(get_icon("polygon.png"))
639
638
 
640
639
  # ----Public API-------------------------------------------------------------
641
640
  def set_points(self, points: list[tuple[float, float]] | np.ndarray | None) -> None:
@@ -775,6 +774,7 @@ class AnnotatedRectangle(AnnotatedShape):
775
774
  (see :py:class:`.styles.AnnotationParam`)
776
775
  """
777
776
 
777
+ _icon_name = "rectangle.png"
778
778
  SHAPE_CLASS = RectangleShape
779
779
  LABEL_ANCHOR = "TL"
780
780
 
@@ -790,7 +790,6 @@ class AnnotatedRectangle(AnnotatedShape):
790
790
  super().__init__(annotationparam, info_callback)
791
791
  self.shape: RectangleShape
792
792
  self.set_rect(x1, y1, x2, y2)
793
- self.setIcon(get_icon("rectangle.png"))
794
793
 
795
794
  # ----Public API-------------------------------------------------------------
796
795
  def set_rect(self, x1, y1, x2, y2):
@@ -842,6 +841,7 @@ class AnnotatedObliqueRectangle(AnnotatedRectangle):
842
841
  (see :py:class:`.styles.AnnotationParam`)
843
842
  """
844
843
 
844
+ _icon_name = "oblique_rectangle.png"
845
845
  SHAPE_CLASS = ObliqueRectangleShape
846
846
  LABEL_ANCHOR = "C"
847
847
 
@@ -851,7 +851,6 @@ class AnnotatedObliqueRectangle(AnnotatedRectangle):
851
851
  AnnotatedShape.__init__(self, annotationparam)
852
852
  self.shape: ObliqueRectangleShape
853
853
  self.set_rect(x0, y0, x1, y1, x2, y2, x3, y3)
854
- self.setIcon(get_icon("oblique_rectangle.png"))
855
854
 
856
855
  # ----Public API-------------------------------------------------------------
857
856
  def get_tr_angle(self):
@@ -940,6 +939,7 @@ class AnnotatedEllipse(AnnotatedShape):
940
939
  (see :py:class:`.styles.AnnotationParam`)
941
940
  """
942
941
 
942
+ _icon_name = "ellipse_shape.png"
943
943
  SHAPE_CLASS = EllipseShape
944
944
  LABEL_ANCHOR = "C"
945
945
 
@@ -955,7 +955,6 @@ class AnnotatedEllipse(AnnotatedShape):
955
955
  super().__init__(annotationparam, info_callback)
956
956
  self.shape: EllipseShape
957
957
  self.set_xdiameter(x1, y1, x2, y2)
958
- self.setIcon(get_icon("ellipse_shape.png"))
959
958
  self.switch_to_ellipse()
960
959
 
961
960
  # ----Public API-------------------------------------------------------------
@@ -24,7 +24,6 @@ from __future__ import annotations
24
24
 
25
25
  import guidata.dataset as gds
26
26
  import numpy as np
27
- from guidata.configtools import get_icon
28
27
  from guidata.utils.misc import assert_interfaces_valid
29
28
  from skimage import measure
30
29
 
@@ -110,10 +109,10 @@ class ContourItem(PolygonShape):
110
109
  _can_resize = False
111
110
  _can_rotate = False
112
111
  _can_move = False
112
+ _icon_name = "contour.png"
113
113
 
114
114
  def __init__(self, points=None, shapeparam=None):
115
115
  super().__init__(points, closed=True, shapeparam=shapeparam)
116
- self.setIcon(get_icon("contour.png"))
117
116
 
118
117
 
119
118
  assert_interfaces_valid(ContourItem)
@@ -6,7 +6,6 @@ import sys
6
6
  from typing import TYPE_CHECKING
7
7
 
8
8
  import numpy as np
9
- from guidata.configtools import get_icon
10
9
  from guidata.dataset import update_dataset
11
10
  from guidata.utils.misc import assert_interfaces_valid
12
11
  from qtpy import QtCore as QC
@@ -111,6 +110,7 @@ class CurveItem(QwtPlotCurve):
111
110
 
112
111
  _readonly = False
113
112
  _private = False
113
+ _icon_name = "curve.png"
114
114
 
115
115
  def __init__(self, curveparam: CurveParam | None = None) -> None:
116
116
  super().__init__()
@@ -123,7 +123,6 @@ class CurveItem(QwtPlotCurve):
123
123
  self._x = None
124
124
  self._y = None
125
125
  self.update_params()
126
- self.setIcon(get_icon("curve.png"))
127
126
 
128
127
  def _get_visible_axis_min(self, axis_id: int, axis_data: np.ndarray) -> float:
129
128
  """Return axis minimum excluding zero and negative values when
@@ -172,6 +171,22 @@ class CurveItem(QwtPlotCurve):
172
171
  """
173
172
  return (ICurveItemType, ITrackableItemType, ISerializableType)
174
173
 
174
+ def get_icon_name(self) -> str:
175
+ """Return the icon name
176
+
177
+ Returns:
178
+ Icon name
179
+ """
180
+ return self._icon_name
181
+
182
+ def set_icon_name(self, icon_name: str) -> None:
183
+ """Set the icon name
184
+
185
+ Args:
186
+ icon_name: Icon name
187
+ """
188
+ self._icon_name = icon_name
189
+
175
190
  def set_selectable(self, state: bool) -> None:
176
191
  """Set item selectable state
177
192
 
@@ -6,7 +6,6 @@ import warnings
6
6
  from typing import TYPE_CHECKING
7
7
 
8
8
  import numpy as np
9
- from guidata.configtools import get_icon
10
9
  from guidata.dataset import update_dataset
11
10
  from guidata.utils.misc import assert_interfaces_valid
12
11
  from qtpy import QtCore as QC
@@ -56,6 +55,8 @@ class ErrorBarCurveItem(CurveItem):
56
55
  errorbarparam: Error-bar parameters
57
56
  """
58
57
 
58
+ _icon_name = "errorbar.png"
59
+
59
60
  def __init__(
60
61
  self,
61
62
  curveparam: CurveParam | None = None,
@@ -73,7 +74,6 @@ class ErrorBarCurveItem(CurveItem):
73
74
  self._dx = None
74
75
  self._dy = None
75
76
  self.__minmaxarrays: dict[bool, tuple[float, float, float, float]] = {}
76
- self.setIcon(get_icon("errorbar.png"))
77
77
 
78
78
  def serialize(
79
79
  self,
@@ -10,7 +10,6 @@ from __future__ import annotations
10
10
  import sys
11
11
  from typing import TYPE_CHECKING
12
12
 
13
- from guidata.configtools import get_icon
14
13
  from guidata.utils.misc import assert_interfaces_valid
15
14
  from qwt import QwtPlot, QwtPlotGrid
16
15
 
@@ -36,6 +35,7 @@ class GridItem(QwtPlotGrid):
36
35
 
37
36
  _readonly = True
38
37
  _private = False
38
+ _icon_name = "grid.png"
39
39
 
40
40
  def __init__(self, gridparam: GridParam | None = None) -> None:
41
41
  super().__init__()
@@ -47,7 +47,6 @@ class GridItem(QwtPlotGrid):
47
47
  self.immutable = True # set to false to allow moving points around
48
48
  self.update_params() # won't work completely because it's not yet
49
49
  # attached to plot (actually, only canvas background won't be updated)
50
- self.setIcon(get_icon("grid.png"))
51
50
 
52
51
  def types(self) -> tuple[type[IItemType], ...]:
53
52
  """Returns a group or category for this item.
@@ -95,6 +94,22 @@ class GridItem(QwtPlotGrid):
95
94
  """
96
95
  return self._private
97
96
 
97
+ def get_icon_name(self) -> str:
98
+ """Return the icon name
99
+
100
+ Returns:
101
+ Icon name
102
+ """
103
+ return self._icon_name
104
+
105
+ def set_icon_name(self, icon_name: str) -> None:
106
+ """Set the icon name
107
+
108
+ Args:
109
+ icon_name: Icon name
110
+ """
111
+ self._icon_name = icon_name
112
+
98
113
  def set_selectable(self, state: bool) -> None:
99
114
  """Set item selectable state
100
115
 
@@ -12,7 +12,6 @@ import weakref
12
12
  from typing import TYPE_CHECKING
13
13
 
14
14
  import numpy as np
15
- from guidata.configtools import get_icon
16
15
  from guidata.dataset import update_dataset
17
16
  from guidata.utils.misc import assert_interfaces_valid
18
17
  from qwt import QwtPlotCurve
@@ -67,6 +66,7 @@ class HistogramItem(CurveItem):
67
66
  """
68
67
 
69
68
  __implements__ = (IBasePlotItem,)
69
+ _icon_name = "histogram.png"
70
70
 
71
71
  def __init__(
72
72
  self,
@@ -92,7 +92,6 @@ class HistogramItem(CurveItem):
92
92
  self.histparam = histparam
93
93
  CurveItem.__init__(self, curveparam)
94
94
  self.setCurveAttribute(QwtPlotCurve.Inverted)
95
- self.setIcon(get_icon("histogram.png"))
96
95
 
97
96
  def set_hist_source(self, src: BaseImageItem) -> None:
98
97
  """Set histogram source
@@ -10,7 +10,6 @@ import os.path as osp
10
10
  from typing import TYPE_CHECKING, Any
11
11
 
12
12
  import numpy as np
13
- from guidata.configtools import get_icon
14
13
  from guidata.dataset import update_dataset
15
14
  from guidata.utils.misc import assert_interfaces_valid
16
15
  from qtpy import QtCore as QC
@@ -82,6 +81,7 @@ class BaseImageItem(QwtPlotItem):
82
81
  _can_rotate = False
83
82
  _readonly = False
84
83
  _private = False
84
+ _icon_name = "image.png"
85
85
 
86
86
  def __init__(
87
87
  self, data: np.ndarray | None = None, param: Any | None = None
@@ -134,7 +134,6 @@ class BaseImageItem(QwtPlotItem):
134
134
  if data is not None:
135
135
  self.set_data(data)
136
136
  self.param.update_item(self)
137
- self.setIcon(get_icon("image.png"))
138
137
 
139
138
  # ---- Public API ----------------------------------------------------------
140
139
  def get_default_param(self) -> Any:
@@ -777,6 +776,22 @@ class BaseImageItem(QwtPlotItem):
777
776
  """
778
777
  return self.data is None or self.data.size == 0
779
778
 
779
+ def get_icon_name(self) -> str:
780
+ """Return the icon name
781
+
782
+ Returns:
783
+ Icon name
784
+ """
785
+ return self._icon_name
786
+
787
+ def set_icon_name(self, icon_name: str) -> None:
788
+ """Set the icon name
789
+
790
+ Args:
791
+ icon_name: Icon name
792
+ """
793
+ self._icon_name = icon_name
794
+
780
795
  def set_selectable(self, state: bool) -> None:
781
796
  """Set item selectable state
782
797
 
@@ -7,7 +7,6 @@ from collections.abc import Callable
7
7
  from typing import TYPE_CHECKING
8
8
 
9
9
  import numpy as np
10
- from guidata.configtools import get_icon
11
10
  from guidata.dataset import update_dataset
12
11
  from guidata.utils.misc import assert_interfaces_valid
13
12
  from qtpy import QtCore as QC
@@ -75,6 +74,7 @@ class ImageFilterItem(BaseImageItem):
75
74
  _can_select = True
76
75
  _can_resize = True
77
76
  _can_move = True
77
+ _icon_name = "funct.png"
78
78
 
79
79
  def __init__(
80
80
  self, image: RawImageItem | None, filter: Callable, param: ImageFilterParam
@@ -92,7 +92,6 @@ class ImageFilterItem(BaseImageItem):
92
92
 
93
93
  self.imagefilterparam = param
94
94
  self.imagefilterparam.update_imagefilter(self)
95
- self.setIcon(get_icon("funct.png"))
96
95
 
97
96
  # ---- Public API -----------------------------------------------------------
98
97
  def set_image(self, image: RawImageItem | None) -> None:
@@ -6,7 +6,6 @@ import sys
6
6
  from typing import TYPE_CHECKING
7
7
 
8
8
  import numpy as np
9
- from guidata.configtools import get_icon
10
9
  from guidata.dataset import update_dataset
11
10
  from guidata.utils.misc import assert_interfaces_valid
12
11
  from qtpy import QtCore as QC
@@ -206,6 +205,7 @@ class Histogram2DItem(BaseImageItem):
206
205
  """
207
206
 
208
207
  __implements__ = (IBasePlotItem, IBaseImageItem, IHistDataSource, IVoiImageItemType)
208
+ _icon_name = "histogram2d.png"
209
209
 
210
210
  def __init__(
211
211
  self,
@@ -234,7 +234,6 @@ class Histogram2DItem(BaseImageItem):
234
234
 
235
235
  self.set_lut_range([0, 10.0])
236
236
  self.set_data(X, Y, Z)
237
- self.setIcon(get_icon("histogram2d.png"))
238
237
 
239
238
  # ---- BaseImageItem API ---------------------------------------------------
240
239
  def get_default_param(self) -> Histogram2DParam:
@@ -16,7 +16,6 @@ from __future__ import annotations
16
16
  from typing import TYPE_CHECKING, Any
17
17
 
18
18
  import numpy as np
19
- from guidata.configtools import get_icon
20
19
  from guidata.dataset import update_dataset
21
20
  from guidata.utils.misc import assert_interfaces_valid
22
21
  from qtpy import QtCore as QC
@@ -207,6 +206,22 @@ class AbstractLabelItem(QwtPlotItem):
207
206
  y0 = yMap.transform(self.G[1])
208
207
  return x0, y0
209
208
 
209
+ def get_icon_name(self) -> str:
210
+ """Return the icon name
211
+
212
+ Returns:
213
+ Icon name
214
+ """
215
+ return self._icon_name
216
+
217
+ def set_icon_name(self, icon_name: str) -> None:
218
+ """Set the icon name
219
+
220
+ Args:
221
+ icon_name: Icon name
222
+ """
223
+ self._icon_name = icon_name
224
+
210
225
  def set_selectable(self, state: bool) -> None:
211
226
  """Set item selectable state
212
227
 
@@ -497,6 +512,7 @@ class LabelItem(AbstractLabelItem):
497
512
  """
498
513
 
499
514
  __implements__ = (IBasePlotItem, ISerializableType)
515
+ _icon_name = "label.png"
500
516
 
501
517
  def __init__(
502
518
  self, text: str | None = None, labelparam: LabelParam | None = None
@@ -505,7 +521,6 @@ class LabelItem(AbstractLabelItem):
505
521
  self.text = QG.QTextDocument()
506
522
  self.marker: qwt.symbol.QwtSymbol | None = None
507
523
  super().__init__(labelparam)
508
- self.setIcon(get_icon("label.png"))
509
524
 
510
525
  def __reduce__(self) -> tuple[type, tuple]:
511
526
  """Return a tuple containing the constructor and its arguments"""
@@ -645,6 +660,7 @@ class LegendBoxItem(AbstractLabelItem):
645
660
  """
646
661
 
647
662
  __implements__ = (IBasePlotItem, ISerializableType)
663
+ _icon_name = "legend.png"
648
664
 
649
665
  def __init__(self, labelparam: LabelParam = None) -> None:
650
666
  self.font = None
@@ -652,7 +668,6 @@ class LegendBoxItem(AbstractLabelItem):
652
668
  super().__init__(labelparam)
653
669
  # saves the last computed sizes
654
670
  self.sizes = 0.0, 0.0, 0.0, 0.0
655
- self.setIcon(get_icon("legend.png"))
656
671
 
657
672
  def types(self) -> tuple[type[IItemType], ...]:
658
673
  """Returns a group or category for this item.
@@ -11,7 +11,6 @@ from sys import maxsize
11
11
  from typing import TYPE_CHECKING
12
12
 
13
13
  import numpy as np
14
- from guidata.configtools import get_icon
15
14
  from guidata.dataset import update_dataset
16
15
  from guidata.utils.misc import assert_interfaces_valid
17
16
  from qtpy import QtCore as QC
@@ -64,6 +63,7 @@ class PolygonMapItem(QwtPlotItem):
64
63
  _can_resize = False
65
64
  _can_move = False
66
65
  _can_rotate = False
66
+ _icon_name = "polygonmap.png"
67
67
 
68
68
  def __init__(self, param: PolygonMapParam | None = None) -> None:
69
69
  super().__init__()
@@ -78,7 +78,6 @@ class PolygonMapItem(QwtPlotItem):
78
78
  # (polygon k points are _pts[_n[k-1]:_n[k]])
79
79
  self._c = None # Color of polygon Nx2 [border,background] as RGBA uint32
80
80
  self.update_params()
81
- self.setIcon(get_icon("polygonmap.png"))
82
81
 
83
82
  def types(self) -> tuple[type[IItemType], ...]:
84
83
  """Returns a group or category for this item.
@@ -125,6 +124,22 @@ class PolygonMapItem(QwtPlotItem):
125
124
  """
126
125
  return self._can_move
127
126
 
127
+ def get_icon_name(self) -> str:
128
+ """Return the icon name
129
+
130
+ Returns:
131
+ Icon name
132
+ """
133
+ return self._icon_name
134
+
135
+ def set_icon_name(self, icon_name: str) -> None:
136
+ """Set the icon name
137
+
138
+ Args:
139
+ icon_name: Icon name
140
+ """
141
+ self._icon_name = icon_name
142
+
128
143
  def set_selectable(self, state: bool) -> None:
129
144
  """Set item selectable state
130
145
 
@@ -6,7 +6,6 @@ import math
6
6
  from typing import TYPE_CHECKING
7
7
 
8
8
  import numpy as np
9
- from guidata.configtools import get_icon
10
9
  from guidata.dataset import update_dataset
11
10
  from guidata.utils.misc import assert_interfaces_valid
12
11
  from qtpy import QtCore as QC
@@ -38,6 +37,7 @@ class Axes(PolygonShape):
38
37
  """
39
38
 
40
39
  CLOSED: bool = True
40
+ _icon_name = "gtaxes.png"
41
41
 
42
42
  def __init__(
43
43
  self,
@@ -60,7 +60,6 @@ class Axes(PolygonShape):
60
60
  else:
61
61
  self.axesparam = axesparam
62
62
  self.axesparam.update_param(self)
63
- self.setIcon(get_icon("gtaxes.png"))
64
63
 
65
64
  def __reduce__(self) -> tuple:
66
65
  """Reduce object to picklable state"""
@@ -38,6 +38,22 @@ class AbstractShape(QwtPlotItem):
38
38
  self.selected = False
39
39
 
40
40
  # ------IBasePlotItem API----------------------------------------------------
41
+ def get_icon_name(self) -> str:
42
+ """Return the icon name
43
+
44
+ Returns:
45
+ Icon name
46
+ """
47
+ return self._icon_name
48
+
49
+ def set_icon_name(self, icon_name: str) -> None:
50
+ """Set the icon name
51
+
52
+ Args:
53
+ icon_name: Icon name
54
+ """
55
+ self._icon_name = icon_name
56
+
41
57
  def set_selectable(self, state: bool) -> None:
42
58
  """Set item selectable state
43
59
 
@@ -7,7 +7,6 @@ import sys
7
7
  from typing import TYPE_CHECKING
8
8
 
9
9
  import numpy as np
10
- from guidata.configtools import get_icon
11
10
  from guidata.utils.misc import assert_interfaces_valid
12
11
  from qtpy import QtCore as QC
13
12
  from qtpy import QtGui as QG
@@ -36,6 +35,7 @@ class EllipseShape(PolygonShape):
36
35
  """
37
36
 
38
37
  CLOSED = True
38
+ _icon_name = "circle.png"
39
39
 
40
40
  def __init__(
41
41
  self,
@@ -48,17 +48,16 @@ class EllipseShape(PolygonShape):
48
48
  super().__init__(shapeparam=shapeparam)
49
49
  self.is_ellipse = False
50
50
  self.set_xdiameter(x1, y1, x2, y2)
51
- self.setIcon(get_icon("circle.png"))
52
51
 
53
52
  def switch_to_ellipse(self):
54
53
  """Switch to ellipse mode"""
55
54
  self.is_ellipse = True
56
- self.setIcon(get_icon("ellipse_shape.png"))
55
+ self.set_icon_name("ellipse_shape.png")
57
56
 
58
57
  def switch_to_circle(self):
59
58
  """Switch to circle mode"""
60
59
  self.is_ellipse = False
61
- self.setIcon(get_icon("circle.png"))
60
+ self.set_icon_name("circle.png")
62
61
 
63
62
  def set_xdiameter(self, x0: float, y0: float, x1: float, y1: float) -> None:
64
63
  """Set the coordinates of the ellipse's X-axis diameter