PlotPy 2.4.2__tar.gz → 2.5.1__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 (523) hide show
  1. {plotpy-2.4.2 → plotpy-2.5.1}/CHANGELOG.md +114 -158
  2. {plotpy-2.4.2 → plotpy-2.5.1}/MANIFEST.in +0 -1
  3. {plotpy-2.4.2/PlotPy.egg-info → plotpy-2.5.1}/PKG-INFO +1 -1
  4. {plotpy-2.4.2 → plotpy-2.5.1/PlotPy.egg-info}/PKG-INFO +1 -1
  5. {plotpy-2.4.2 → plotpy-2.5.1}/PlotPy.egg-info/SOURCES.txt +2 -0
  6. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/tools/reference.rst +2 -0
  7. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/__init__.py +1 -1
  8. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/constants.py +8 -0
  9. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/events.py +616 -294
  10. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/image/base.py +6 -6
  11. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/image/misc.py +2 -1
  12. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/shape/range.py +10 -0
  13. plotpy-2.5.1/plotpy/locale/fr/LC_MESSAGES/plotpy.mo +0 -0
  14. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/panels/contrastadjustment.py +5 -5
  15. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/panels/csection/csitem.py +4 -3
  16. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/panels/csection/csplot.py +10 -11
  17. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/plot/base.py +23 -23
  18. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/plot/plotwidget.py +15 -13
  19. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/styles/axes.py +2 -1
  20. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/styles/image.py +11 -0
  21. plotpy-2.5.1/plotpy/tests/features/test_image_data_update.py +130 -0
  22. plotpy-2.5.1/plotpy/tests/tools/test_cyclic_import.py +30 -0
  23. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/vistools.py +5 -0
  24. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_dotarraydemo.py +9 -1
  25. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/__init__.py +1 -0
  26. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/base.py +6 -4
  27. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/image.py +64 -8
  28. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/basetransform.py +4 -2
  29. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/colormap/widget.py +15 -0
  30. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/fit.py +2 -2
  31. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/fliprotate.py +3 -3
  32. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/rotatecrop.py +3 -3
  33. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/selectdialog.py +3 -3
  34. {plotpy-2.4.2 → plotpy-2.5.1}/setup.py +1 -2
  35. {plotpy-2.4.2 → plotpy-2.5.1}/src/histogram2d.c +93 -93
  36. {plotpy-2.4.2 → plotpy-2.5.1}/src/mandelbrot.c +93 -93
  37. plotpy-2.4.2/plotpy/locale/fr/LC_MESSAGES/plotpy.mo +0 -0
  38. {plotpy-2.4.2 → plotpy-2.5.1}/LICENSE +0 -0
  39. {plotpy-2.4.2 → plotpy-2.5.1}/PlotPy.egg-info/dependency_links.txt +0 -0
  40. {plotpy-2.4.2 → plotpy-2.5.1}/PlotPy.egg-info/entry_points.txt +0 -0
  41. {plotpy-2.4.2 → plotpy-2.5.1}/PlotPy.egg-info/requires.txt +0 -0
  42. {plotpy-2.4.2 → plotpy-2.5.1}/PlotPy.egg-info/top_level.txt +0 -0
  43. {plotpy-2.4.2 → plotpy-2.5.1}/README.md +0 -0
  44. {plotpy-2.4.2 → plotpy-2.5.1}/colormaps/README.md +0 -0
  45. {plotpy-2.4.2 → plotpy-2.5.1}/colormaps/_cm.py +0 -0
  46. {plotpy-2.4.2 → plotpy-2.5.1}/colormaps/colormap.py +0 -0
  47. {plotpy-2.4.2 → plotpy-2.5.1}/colormaps/matplotlib_cmaps.py +0 -0
  48. {plotpy-2.4.2 → plotpy-2.5.1}/doc/_static/favicon.ico +0 -0
  49. {plotpy-2.4.2 → plotpy-2.5.1}/doc/changelog.rst +0 -0
  50. {plotpy-2.4.2 → plotpy-2.5.1}/doc/conf.py +0 -0
  51. {plotpy-2.4.2 → plotpy-2.5.1}/doc/dev/build.rst +0 -0
  52. {plotpy-2.4.2 → plotpy-2.5.1}/doc/dev/contribute.rst +0 -0
  53. {plotpy-2.4.2 → plotpy-2.5.1}/doc/dev/guiqwt_to_plotpy.csv +0 -0
  54. {plotpy-2.4.2 → plotpy-2.5.1}/doc/dev/guiqwt_to_plotpy.rst +0 -0
  55. {plotpy-2.4.2 → plotpy-2.5.1}/doc/dev/index.rst +0 -0
  56. {plotpy-2.4.2 → plotpy-2.5.1}/doc/dev/platforms.rst +0 -0
  57. {plotpy-2.4.2 → plotpy-2.5.1}/doc/dev/v1_to_guidata_v3.csv +0 -0
  58. {plotpy-2.4.2 → plotpy-2.5.1}/doc/dev/v1_to_v2.csv +0 -0
  59. {plotpy-2.4.2 → plotpy-2.5.1}/doc/dev/v1_to_v2.rst +0 -0
  60. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/colormapmanager.rst +0 -0
  61. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/events.rst +0 -0
  62. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/fit.rst +0 -0
  63. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/fliprotate.rst +0 -0
  64. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/imagefile.rst +0 -0
  65. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/index.rst +0 -0
  66. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/io.rst +0 -0
  67. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/items/builder.rst +0 -0
  68. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/items/examples.rst +0 -0
  69. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/items/index.rst +0 -0
  70. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/items/overview.rst +0 -0
  71. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/items/reference.rst +0 -0
  72. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/mathutils/colormaps.rst +0 -0
  73. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/mathutils/geometry.rst +0 -0
  74. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/mathutils/index.rst +0 -0
  75. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/mathutils/scaler.rst +0 -0
  76. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/panels/index.rst +0 -0
  77. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/panels/overview.rst +0 -0
  78. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/panels/reference.rst +0 -0
  79. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/plot/examples.rst +0 -0
  80. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/plot/index.rst +0 -0
  81. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/plot/overview.rst +0 -0
  82. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/plot/reference.rst +0 -0
  83. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/pyplot.rst +0 -0
  84. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/resizedialog.rst +0 -0
  85. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/rotatecrop.rst +0 -0
  86. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/selectdialog.rst +0 -0
  87. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/signals.rst +0 -0
  88. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/styles/index.rst +0 -0
  89. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/styles/overview.rst +0 -0
  90. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/styles/reference.rst +0 -0
  91. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/tools/examples.rst +0 -0
  92. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/tools/index.rst +0 -0
  93. {plotpy-2.4.2 → plotpy-2.5.1}/doc/features/tools/overview.rst +0 -0
  94. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/my_plot_manager.png +0 -0
  95. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/my_plot_manager.svg +0 -0
  96. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/panorama-vertical.png +0 -0
  97. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/panorama-vertical.svg +0 -0
  98. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/panorama.png +0 -0
  99. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/panorama.svg +0 -0
  100. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/plot_widgets.png +0 -0
  101. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/plot_widgets.svg +0 -0
  102. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/plotpy-banner.png +0 -0
  103. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/plotpy-vertical.png +0 -0
  104. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/__init__.png +0 -0
  105. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/computations.png +0 -0
  106. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/contrast.png +0 -0
  107. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/cross_section.png +0 -0
  108. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/cross_section2.png +0 -0
  109. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/dotarraydemo.png +0 -0
  110. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/filtertest1.png +0 -0
  111. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/filtertest2.png +0 -0
  112. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/fit.png +0 -0
  113. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/get_point.png +0 -0
  114. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/hist2d.png +0 -0
  115. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/image_plot_tools.png +0 -0
  116. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/imagefilter.png +0 -0
  117. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/imagesuperp.png +0 -0
  118. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/imagexy.png +0 -0
  119. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/manager.png +0 -0
  120. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/mandelbrot.png +0 -0
  121. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/pcolor.png +0 -0
  122. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/plot.png +0 -0
  123. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/simple_dialog.png +0 -0
  124. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/simple_window.png +0 -0
  125. {plotpy-2.4.2 → plotpy-2.5.1}/doc/images/screenshots/transform.png +0 -0
  126. {plotpy-2.4.2 → plotpy-2.5.1}/doc/index.rst +0 -0
  127. {plotpy-2.4.2 → plotpy-2.5.1}/doc/intro/examples.rst +0 -0
  128. {plotpy-2.4.2 → plotpy-2.5.1}/doc/intro/index.rst +0 -0
  129. {plotpy-2.4.2 → plotpy-2.5.1}/doc/intro/installation.rst +0 -0
  130. {plotpy-2.4.2 → plotpy-2.5.1}/doc/intro/licenses.rst +0 -0
  131. {plotpy-2.4.2 → plotpy-2.5.1}/doc/intro/motivation.rst +0 -0
  132. {plotpy-2.4.2 → plotpy-2.5.1}/doc/intro/overview.rst +0 -0
  133. {plotpy-2.4.2 → plotpy-2.5.1}/doc/requirements.rst +0 -0
  134. {plotpy-2.4.2 → plotpy-2.5.1}/doc/update_requirements.py +0 -0
  135. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/builder/__init__.py +0 -0
  136. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/builder/annotation.py +0 -0
  137. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/builder/curvemarker.py +0 -0
  138. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/builder/image.py +0 -0
  139. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/builder/label.py +0 -0
  140. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/builder/plot.py +0 -0
  141. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/builder/shape.py +0 -0
  142. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/config.py +0 -0
  143. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/coords.py +0 -0
  144. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/colormaps_default.json +0 -0
  145. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/apply.png +0 -0
  146. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/arredit.png +0 -0
  147. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/arrow_down.png +0 -0
  148. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/arrow_up.png +0 -0
  149. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/autorefresh.png +0 -0
  150. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/autoscale.png +0 -0
  151. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/axes.png +0 -0
  152. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/busy.png +0 -0
  153. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/cell_edit.png +0 -0
  154. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/center.png +0 -0
  155. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/cmap_edit.png +0 -0
  156. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/contrast.png +0 -0
  157. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/copy.png +0 -0
  158. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/copytoclipboard.png +0 -0
  159. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/csapplylut.png +0 -0
  160. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/csautoscale.png +0 -0
  161. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/csection.png +0 -0
  162. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/csection_a.png +0 -0
  163. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/csection_line.png +0 -0
  164. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/csection_oblique.png +0 -0
  165. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/csperimage.png +0 -0
  166. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/curve_downsample.png +0 -0
  167. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/curvestyles/dots.png +0 -0
  168. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/curvestyles/lines.png +0 -0
  169. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/curvestyles/steps.png +0 -0
  170. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/curvestyles/sticks.png +0 -0
  171. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/curvetypes/xfy.png +0 -0
  172. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/curvetypes/yfx.png +0 -0
  173. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/delete.png +0 -0
  174. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/edit.png +0 -0
  175. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/edit_point_selection.png +0 -0
  176. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/editors/edit.png +0 -0
  177. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/editors/edit_add.png +0 -0
  178. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/editors/editcopy.png +0 -0
  179. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/editors/editdelete.png +0 -0
  180. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/editors/editpaste.png +0 -0
  181. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/editors/fileimport.png +0 -0
  182. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/editors/filesave.png +0 -0
  183. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/editors/imshow.png +0 -0
  184. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/editors/insert.png +0 -0
  185. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/editors/plot.png +0 -0
  186. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/editors/rename.png +0 -0
  187. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/eliminate_outliers.png +0 -0
  188. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/eraser.png +0 -0
  189. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/exit.png +0 -0
  190. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/expander_down.png +0 -0
  191. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/expander_right.png +0 -0
  192. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/export.png +0 -0
  193. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/file.png +0 -0
  194. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/fileclose.png +0 -0
  195. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/fileimport.png +0 -0
  196. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filenew.png +0 -0
  197. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/fileopen.png +0 -0
  198. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filesave.png +0 -0
  199. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filesaveas.png +0 -0
  200. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/doc.png +0 -0
  201. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/gif.png +0 -0
  202. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/html.png +0 -0
  203. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/jpg.png +0 -0
  204. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/pdf.png +0 -0
  205. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/png.png +0 -0
  206. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/pps.png +0 -0
  207. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/ps.png +0 -0
  208. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/tar.png +0 -0
  209. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/tgz.png +0 -0
  210. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/tif.png +0 -0
  211. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/txt.png +0 -0
  212. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/xls.png +0 -0
  213. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/filetypes/zip.png +0 -0
  214. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/font.png +0 -0
  215. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/full_range.png +0 -0
  216. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/funct.png +0 -0
  217. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/hcursor.png +0 -0
  218. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/hflip.png +0 -0
  219. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/imagestats.png +0 -0
  220. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/item_list.png +0 -0
  221. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/items/annotation.png +0 -0
  222. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/items/curve.png +0 -0
  223. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/items/errorbar.png +0 -0
  224. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/items/grid.png +0 -0
  225. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/items/histogram.png +0 -0
  226. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/items/histogram2d.png +0 -0
  227. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/items/image.png +0 -0
  228. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/items/label.png +0 -0
  229. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/items/legend.png +0 -0
  230. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/items/polygonmap.png +0 -0
  231. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/magnifier.png +0 -0
  232. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/cross.png +0 -0
  233. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/diamond.png +0 -0
  234. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/ellipse.png +0 -0
  235. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/hexagon.png +0 -0
  236. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/point.png +0 -0
  237. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/square.png +0 -0
  238. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/star.png +0 -0
  239. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/triangle_d.png +0 -0
  240. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/triangle_l.png +0 -0
  241. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/triangle_r.png +0 -0
  242. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/triangle_u.png +0 -0
  243. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markers/xcross.png +0 -0
  244. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markerstyles/cross_marker.png +0 -0
  245. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markerstyles/horiz_marker.png +0 -0
  246. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/markerstyles/vert_marker.png +0 -0
  247. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/mask/mask_circle.png +0 -0
  248. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/mask/mask_circle_outside.png +0 -0
  249. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/mask/mask_rectangle.png +0 -0
  250. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/mask/mask_rectangle_outside.png +0 -0
  251. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/mask/mask_tool.png +0 -0
  252. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/max.png +0 -0
  253. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/min.png +0 -0
  254. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/move.png +0 -0
  255. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/multipoint_selection.png +0 -0
  256. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/none.png +0 -0
  257. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/not_found.png +0 -0
  258. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/on_curve.png +0 -0
  259. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/bdiagpattern.png +0 -0
  260. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/crosspattern.png +0 -0
  261. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/dense1pattern.png +0 -0
  262. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/dense2pattern.png +0 -0
  263. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/dense3pattern.png +0 -0
  264. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/dense4pattern.png +0 -0
  265. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/dense5pattern.png +0 -0
  266. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/dense6pattern.png +0 -0
  267. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/dense7pattern.png +0 -0
  268. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/diagcrosspattern.png +0 -0
  269. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/fdiagpattern.png +0 -0
  270. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/horpattern.png +0 -0
  271. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/nobrush.png +0 -0
  272. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/solidpattern.png +0 -0
  273. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/patterns/verpattern.png +0 -0
  274. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/plotpy-banner.svg +0 -0
  275. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/plotpy-vertical.svg +0 -0
  276. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/plotpy.svg +0 -0
  277. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/point_selection.png +0 -0
  278. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/print.png +0 -0
  279. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/python.png +0 -0
  280. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/quickview.png +0 -0
  281. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/rectangular_select.png +0 -0
  282. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/refresh.png +0 -0
  283. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/save_all.png +0 -0
  284. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/scales/lin_lin.png +0 -0
  285. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/scales/lin_log.png +0 -0
  286. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/scales/log_lin.png +0 -0
  287. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/scales/log_log.png +0 -0
  288. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/selection.png +0 -0
  289. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/settings.png +0 -0
  290. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shape.png +0 -0
  291. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shapes/circle.png +0 -0
  292. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shapes/contour.png +0 -0
  293. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shapes/ellipse_shape.png +0 -0
  294. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shapes/freeform.png +0 -0
  295. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shapes/gtaxes.png +0 -0
  296. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shapes/marker.png +0 -0
  297. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shapes/oblique_rectangle.png +0 -0
  298. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shapes/point_shape.png +0 -0
  299. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shapes/polyline.png +0 -0
  300. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shapes/rectangle.png +0 -0
  301. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/shapes/segment.png +0 -0
  302. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/snapshot.png +0 -0
  303. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/styles/dash.png +0 -0
  304. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/styles/dashdot.png +0 -0
  305. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/styles/dashdotdot.png +0 -0
  306. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/styles/dot.png +0 -0
  307. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/styles/solid.png +0 -0
  308. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/trash.png +0 -0
  309. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/trimage_lock.png +0 -0
  310. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/trimage_unlock.png +0 -0
  311. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/vcursor.png +0 -0
  312. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/vflip.png +0 -0
  313. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/xcursor.png +0 -0
  314. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/xmax.png +0 -0
  315. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/xmin.png +0 -0
  316. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/xrange.png +0 -0
  317. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/data/icons/zlog.svg +0 -0
  318. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/external/__init__.py +0 -0
  319. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/external/sliders/__init__.py +0 -0
  320. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/external/sliders/_generic_range_slider.py +0 -0
  321. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/external/sliders/_generic_slider.py +0 -0
  322. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/external/sliders/_labeled.py +0 -0
  323. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/external/sliders/_misc.py +0 -0
  324. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/external/sliders/_range_style.py +0 -0
  325. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/external/sliders/_sliders.py +0 -0
  326. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/interfaces/__init__.py +0 -0
  327. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/interfaces/items.py +0 -0
  328. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/interfaces/panel.py +0 -0
  329. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/interfaces/plotmanager.py +0 -0
  330. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/io.py +0 -0
  331. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/__init__.py +0 -0
  332. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/annotation.py +0 -0
  333. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/contour.py +0 -0
  334. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/curve/__init__.py +0 -0
  335. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/curve/base.py +0 -0
  336. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/curve/errorbar.py +0 -0
  337. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/grid.py +0 -0
  338. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/histogram.py +0 -0
  339. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/image/__init__.py +0 -0
  340. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/image/filter.py +0 -0
  341. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/image/image_items.py +0 -0
  342. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/image/masked.py +0 -0
  343. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/image/transform.py +0 -0
  344. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/label.py +0 -0
  345. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/polygonmap.py +0 -0
  346. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/shape/__init__.py +0 -0
  347. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/shape/axis.py +0 -0
  348. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/shape/base.py +0 -0
  349. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/shape/ellipse.py +0 -0
  350. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/shape/marker.py +0 -0
  351. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/shape/point.py +0 -0
  352. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/shape/polygon.py +0 -0
  353. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/shape/rectangle.py +0 -0
  354. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/shape/segment.py +0 -0
  355. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/items/shape/svg.py +0 -0
  356. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/lutrange.py +0 -0
  357. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/mathutils/__init__.py +0 -0
  358. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/mathutils/arrayfuncs.py +0 -0
  359. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/mathutils/colormap.py +0 -0
  360. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/mathutils/geometry.py +0 -0
  361. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/mathutils/scaler.py +0 -0
  362. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/panels/__init__.py +0 -0
  363. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/panels/base.py +0 -0
  364. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/panels/csection/__init__.py +0 -0
  365. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/panels/csection/cswidget.py +0 -0
  366. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/panels/itemlist.py +0 -0
  367. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/plot/__init__.py +0 -0
  368. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/plot/interactive.py +0 -0
  369. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/plot/manager.py +0 -0
  370. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/pyplot.py +0 -0
  371. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/styles/__init__.py +0 -0
  372. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/styles/base.py +0 -0
  373. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/styles/curve.py +0 -0
  374. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/styles/errorbar.py +0 -0
  375. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/styles/histogram.py +0 -0
  376. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/styles/label.py +0 -0
  377. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/styles/polygonmap.py +0 -0
  378. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/styles/shape.py +0 -0
  379. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/__init__.py +0 -0
  380. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/benchmarks/__init__.py +0 -0
  381. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/benchmarks/test_benchmarks.py +0 -0
  382. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/benchmarks/test_bigimages.py +0 -0
  383. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/benchmarks/test_loadtest.py +0 -0
  384. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/conftest.py +0 -0
  385. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/data/brain.png +0 -0
  386. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/data/brain_cylinder.png +0 -0
  387. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/data/mr-brain.dcm +0 -0
  388. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/data/svg_target.svg +0 -0
  389. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/data/svg_tool.svg +0 -0
  390. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/data.py +0 -0
  391. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/__init__.py +0 -0
  392. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_auto_curve_image.py +0 -0
  393. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_autoscale_shapes.py +0 -0
  394. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_builder.py +0 -0
  395. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_colormap_editor.py +0 -0
  396. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_colormap_manager.py +0 -0
  397. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_computations.py +0 -0
  398. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_contrast.py +0 -0
  399. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_cursors.py +0 -0
  400. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_dicom_image.py +0 -0
  401. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_fit.py +0 -0
  402. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_image_coords.py +0 -0
  403. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_imagefilter.py +0 -0
  404. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_imagesuperp.py +0 -0
  405. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_loadsaveitems_hdf5.py +0 -0
  406. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_loadsaveitems_json.py +0 -0
  407. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_loadsaveitems_pickle.py +0 -0
  408. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_manager.py +0 -0
  409. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_no_auto_tools.py +0 -0
  410. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_plot_log.py +0 -0
  411. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_plot_types.py +0 -0
  412. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_plot_yreverse.py +0 -0
  413. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_pyplot.py +0 -0
  414. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/features/test_resize.py +0 -0
  415. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/__init__.py +0 -0
  416. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_annotations.py +0 -0
  417. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_curves.py +0 -0
  418. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_curves_highdpi.py +0 -0
  419. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_hist2d.py +0 -0
  420. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_histogram.py +0 -0
  421. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_image.py +0 -0
  422. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_image_contour.py +0 -0
  423. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_image_masked.py +0 -0
  424. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_image_masked_xy.py +0 -0
  425. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_image_rgb.py +0 -0
  426. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_image_xy.py +0 -0
  427. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_mandelbrot.py +0 -0
  428. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_pcolor.py +0 -0
  429. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_polygons.py +0 -0
  430. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_svgshapes.py +0 -0
  431. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/items/test_transform.py +0 -0
  432. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/__init__.py +0 -0
  433. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_actiontool.py +0 -0
  434. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_cross_section.py +0 -0
  435. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_cross_section_line.py +0 -0
  436. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_cross_section_oblique.py +0 -0
  437. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_customize_shape_tool.py +0 -0
  438. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_downsample_curve.py +0 -0
  439. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_edit_point.py +0 -0
  440. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_get_point.py +0 -0
  441. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_get_points.py +0 -0
  442. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_get_rectangle.py +0 -0
  443. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_get_rectangle_with_svg.py +0 -0
  444. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_get_segment.py +0 -0
  445. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_image_plot_tools.py +0 -0
  446. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_stats_tools.py +0 -0
  447. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/tools/test_zaxislog.py +0 -0
  448. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/__init__.py +0 -0
  449. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_annotation_tools.py +0 -0
  450. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_aspect_ratio_tool.py +0 -0
  451. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_baseplot.py +0 -0
  452. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_builder_annotation.py +0 -0
  453. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_builder_curve.py +0 -0
  454. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_builder_image.py +0 -0
  455. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_builder_shape.py +0 -0
  456. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_contour.py +0 -0
  457. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_cursor_tools.py +0 -0
  458. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_curve_tools.py +0 -0
  459. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_display_coords_tool.py +0 -0
  460. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_events.py +0 -0
  461. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_fontparam.py +0 -0
  462. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_geometry.py +0 -0
  463. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_io.py +0 -0
  464. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_line.py +0 -0
  465. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_line_cross_section_tool.py +0 -0
  466. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_manipulate_selection.py +0 -0
  467. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_mask_tool.py +0 -0
  468. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_multiline_tools.py +0 -0
  469. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_oblique_cross_section_tool.py +0 -0
  470. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_plot_curve.py +0 -0
  471. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_plot_image.py +0 -0
  472. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_rect_zoom.py +0 -0
  473. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_seg_dist.py +0 -0
  474. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_styles.py +0 -0
  475. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/test_tools_export.py +0 -0
  476. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/unit/utils.py +0 -0
  477. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/__init__.py +0 -0
  478. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_filtertest1.py +0 -0
  479. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_filtertest2.py +0 -0
  480. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_fliprotate.py +0 -0
  481. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_plot_timecurve.py +0 -0
  482. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_qtdesigner.py +0 -0
  483. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_qtdesigner.ui +0 -0
  484. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_resize_dialog.py +0 -0
  485. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_rotatecrop.py +0 -0
  486. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_simple_dialog.py +0 -0
  487. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_simple_window.py +0 -0
  488. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tests/widgets/test_syncplot.py +0 -0
  489. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/annotation.py +0 -0
  490. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/axes.py +0 -0
  491. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/cross_section.py +0 -0
  492. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/cursor.py +0 -0
  493. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/curve.py +0 -0
  494. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/item.py +0 -0
  495. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/label.py +0 -0
  496. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/misc.py +0 -0
  497. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/plot.py +0 -0
  498. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/selection.py +0 -0
  499. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/tools/shape.py +0 -0
  500. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/__init__.py +0 -0
  501. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/about.py +0 -0
  502. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/colormap/__init__.py +0 -0
  503. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/colormap/_slider.py +0 -0
  504. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/colormap/editor.py +0 -0
  505. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/colormap/manager.py +0 -0
  506. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/imagefile.py +0 -0
  507. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/qtdesigner.py +0 -0
  508. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy/widgets/resizedialog.py +0 -0
  509. {plotpy-2.4.2 → plotpy-2.5.1}/plotpy-tests.desktop +0 -0
  510. {plotpy-2.4.2 → plotpy-2.5.1}/pyproject.toml +0 -0
  511. {plotpy-2.4.2 → plotpy-2.5.1}/qtdesigner/plotplugin.py +0 -0
  512. {plotpy-2.4.2 → plotpy-2.5.1}/requirements.txt +0 -0
  513. {plotpy-2.4.2 → plotpy-2.5.1}/setup.cfg +0 -0
  514. {plotpy-2.4.2 → plotpy-2.5.1}/src/arrays.hpp +0 -0
  515. {plotpy-2.4.2 → plotpy-2.5.1}/src/contour2d.c +0 -0
  516. {plotpy-2.4.2 → plotpy-2.5.1}/src/debug.hpp +0 -0
  517. {plotpy-2.4.2 → plotpy-2.5.1}/src/histogram2d.pyx +0 -0
  518. {plotpy-2.4.2 → plotpy-2.5.1}/src/mandelbrot.pyx +0 -0
  519. {plotpy-2.4.2 → plotpy-2.5.1}/src/pcolor.cpp +0 -0
  520. {plotpy-2.4.2 → plotpy-2.5.1}/src/points.hpp +0 -0
  521. {plotpy-2.4.2 → plotpy-2.5.1}/src/scaler.cpp +0 -0
  522. {plotpy-2.4.2 → plotpy-2.5.1}/src/scaler.hpp +0 -0
  523. {plotpy-2.4.2 → plotpy-2.5.1}/src/traits.hpp +0 -0
@@ -1,5 +1,52 @@
1
1
  # Changelog #
2
2
 
3
+ ## Version 2.5.0 ##
4
+
5
+ In this release, test coverage is 79%.
6
+
7
+ 💥 New features / Enhancements:
8
+
9
+ * Alternative dictionary argument for plot options:
10
+ * This new feature was introduced in the context of the cyclic import bug fix, to avoid importing the `plotpy.plot` module just to get the `PlotOptions` or `BasePlotOptions` classes
11
+ * All classes (and a few functions) that used to take an `options` argument as a `BasePlotOptions` or `PlotOptions` instance now also accept a dictionary argument with the same keys as the `BasePlotOptions` or `PlotOptions` class attributes, and the same values as the corresponding attributes
12
+ * This concerns the following classes and functions:
13
+ * `plotpy.plot.BasePlot`
14
+ * `plotpy.plot.PlotWidget`
15
+ * `plotpy.plot.PlotDialog`
16
+ * `plotpy.plot.PlotWindow`
17
+ * `plotpy.plot.SubPlotWidget`
18
+ * `plotpy.plot.SyncPlotWindow`
19
+ * `plotpy.tools.RotateCropTool`
20
+ * `plotpy.widgets.fit.FitDialog`
21
+ * `plotpy.widgets.fliprotate.FlipRotateDialog`
22
+ * `plotpy.widgets.rotatecrop.RotateCropDialog`
23
+ * `plotpy.widgets.selectdialog.SelectDialog`
24
+ * `plotpy.widgets.selectdialog.select_with_shape_tool`
25
+
26
+ * Added "Lock LUT range" option for image items:
27
+ * This new option is disabled by default, which matches the previous behavior: when updating an image item data, the LUT range is automatically adjusted to the new data range (if not passed as an argument to the `BaseImageItem.set_data` method)
28
+ * When enabled, the LUT range is locked and the LUT range is not adjusted when updating the image item data
29
+ * The option is available in image parameters dialog
30
+ * A new tool `LockLUTRangeTool` has been implemented to toggle the option from the plot context menu: the tool is not registered by default in the plot widget, but can be added by the host application if needed
31
+ * See test script `tests.features.test_image_data_update` for an example of usage of the new option and tool
32
+
33
+ * Added missing `set_style` method to `XRangeSelection` class: this method is used to set the style of the range selection item from configuration options
34
+
35
+ 🛠️ Bug fixes:
36
+
37
+ * [Issue #19](https://github.com/PlotPyStack/PlotPy/issues/19) - Fix `distutils` deprecation in setup.py: replaced `distutils.core` by `setuptools` in the setup.py script to avoid the deprecation warning when building the package with Python 3.10 and 3.11, and to ensure compatibility with earlier Python versions (PlotPy is already compatible with the most recent Python versions: this only concerns the build system)
38
+ * Fix cyclic import in `plotpy.tools` module:
39
+ * Some tools in `plotpy.tools` subpackage were importing the `plotpy.plot` module, which was importing the `plotpy.tools` module, causing a cyclic import issue
40
+ * This is now fixed by introducing new constants for axis IDs in the `plotpy.constants` module, and using them everywhere in the code, thus avoiding to import the `plotpy.plot` module just to get the axis IDs
41
+ * Fix empty label in X/Y cross section plots:
42
+ * This is a regression introduced in V2.1.0
43
+ * When showing the X/Y cross section plots (using the plot context menu), an empty label was displayed at the center of each of those plots
44
+ * The label now shows "Enable a marker" as previously
45
+ * Fix historic unexpected behavior of interactive tools:
46
+ * When triggering an interactive tool (e.g. by clicking on the corresponding toolbar button), the tool `activate` method was called twice, which was not expected, but was not causing any issue given the current implementation
47
+ * However, when defining custom interactive tools, this behavior could lead to unexpected results (i.e. really executing activation actions twice)
48
+ * This is now fixed: the `activate` method is called only once when triggering an interactive tool
49
+
3
50
  ## Version 2.4.2 ##
4
51
 
5
52
  In this release, test coverage is 79%.
@@ -7,14 +54,10 @@ In this release, test coverage is 79%.
7
54
  🛠️ Bug fixes:
8
55
 
9
56
  * [Issue #17](https://github.com/PlotPyStack/PlotPy/issues/17):
10
- * Debian's Python team has reported that the contour unit test was failing on `arm64`
11
- architecture
12
- * This is the opportunity to replace the `contour2d` Cython extension by scikit-image's
13
- `find_contours` function, thus avoiding to reinvent the wheel by relying on a more
14
- robust and tested implementation
57
+ * Debian's Python team has reported that the contour unit test was failing on `arm64` architecture
58
+ * This is the opportunity to replace the `contour2d` Cython extension by scikit-image's `find_contours` function, thus avoiding to reinvent the wheel by relying on a more robust and tested implementation
15
59
  * The `contour2d` Cython extension is removed from the source code
16
- * The contour related features remain the same, but the implementation is now based on
17
- scikit-image's `find_contours` function
60
+ * The contour related features remain the same, but the implementation is now based on scikit-image's `find_contours` function
18
61
  * The scikit-image dependency is added to the package requirements
19
62
 
20
63
  ## Version 2.4.1 ##
@@ -24,10 +67,8 @@ In this release, test coverage is 79%.
24
67
  🛠️ Bug fixes:
25
68
 
26
69
  * Contrast adjustment panel:
27
- * A regression was introduced in V2.0.0: levels histogram was no longer removed from
28
- contrast adjustment panel when the associated image was removed from the plot
29
- * This is now fixed: when an image is removed, the histogram is removed as well and
30
- the contrast panel is refreshed (which was not the case even before the regression)
70
+ * A regression was introduced in V2.0.0: levels histogram was no longer removed from contrast adjustment panel when the associated image was removed from the plot
71
+ * This is now fixed: when an image is removed, the histogram is removed as well and the contrast panel is refreshed (which was not the case even before the regression)
31
72
 
32
73
  ## Version 2.4.0 ##
33
74
 
@@ -36,30 +77,21 @@ In this release, test coverage is 79%.
36
77
  💥 New features / Enhancements:
37
78
 
38
79
  * Contrast adjustment panel:
39
- * New layout: the vertical toolbar (which was constrained in a small area on the
40
- right side of the panel) is now a horizontal toolbar at the top of the panel,
41
- beside the title
42
- * New "Set range" button: allows the user to set manually the minimum and maximum
43
- values of the histogram range
80
+ * New layout: the vertical toolbar (which was constrained in a small area on the right side of the panel) is now a horizontal toolbar at the top of the panel, beside the title
81
+ * New "Set range" button: allows the user to set manually the minimum and maximum values of the histogram range
44
82
  * New Z-axis logarithmic scale feature:
45
83
  * Added new tool `ZAxisLogTool` to toggle the Z-axis logarithmic scale
46
84
  * The tool is registered by default in the plot widget, like the `ColormapTool`
47
- * When enabled, the active image item is displayed after applying a base-10
48
- logarithm to its pixel values
85
+ * When enabled, the active image item is displayed after applying a base-10 logarithm to its pixel values
49
86
  * Curve statistics tool `CurveStatsTool` is now customizable:
50
87
  * When adding the tool: `plot_widget.manager.add_tool(CurveStatsTool, labelfuncs=(...))`
51
88
  * Or after: `plot_widget.manager.get_tool(CurveStatsTool).set_labelfuncs(...)`
52
- * The `labelfuncs` parameter is a list of tuples `(label, func)` where `label` is the
53
- label displayed in the statistics table, and `func` is a function that takes the
54
- curve data and returns the corresponding statistic value (see the documentation for
55
- more details)
89
+ * The `labelfuncs` parameter is a list of tuples `(label, func)` where `label` is the label displayed in the statistics table, and `func` is a function that takes the curve data and returns the corresponding statistic value (see the documentation for more details)
56
90
  * Image statistics tool `ImageStatsTool` is now customizable:
57
91
  * When adding the tool: `plot_widget.manager.add_tool(ImageStatsTool, stats_func=...)`
58
92
  * Or after: `plot_widget.manager.get_tool(ImageStatsTool).set_stats_func(...)`
59
- * The `stats_func` parameter is a function that takes the image item and selected
60
- rectangle coordinates, and returns a string with the statistics to display
61
- * New `SIG_AXIS_PARAMETERS_CHANGED` signal emitted by `BasePlot` when the axes parameters
62
- are changed (e.g. when the axes are inverted, or the scale is changed)
93
+ * The `stats_func` parameter is a function that takes the image item and selected rectangle coordinates, and returns a string with the statistics to display
94
+ * New `SIG_AXIS_PARAMETERS_CHANGED` signal emitted by `BasePlot` when the axes parameters are changed (e.g. when the axes are inverted, or the scale is changed)
63
95
  * New "Reverse X axis" feature:
64
96
  * Added new tool `ReverseXAxisTool` to toggle the X-axis direction
65
97
  * The tool is registered by default in the plot widget, like its Y-axis counterpart
@@ -67,14 +99,10 @@ In this release, test coverage is 79%.
67
99
  🛠️ Bug fixes:
68
100
 
69
101
  * Contrast adjustment panel:
70
- * Fixed histogram update issues when no image was currently selected (even if the
71
- an image was displayed and was selected before)
72
- * Histogram range was not updated when either the minimum or maximum value was set
73
- using the "Minimum value" or "Maximum value" buttons (which have been renamed to
74
- "Min." and "Max." in this release)
102
+ * Fixed histogram update issues when no image was currently selected (even if the an image was displayed and was selected before)
103
+ * Histogram range was not updated when either the minimum or maximum value was set using the "Minimum value" or "Maximum value" buttons (which have been renamed to "Min." and "Max." in this release)
75
104
  * Histogram range was not updated when the "Set full range" button was clicked
76
- * Image parameters: contrast range was not updated when the image Z axis bounds were
77
- changed using the "Parameters" dialog
105
+ * Image parameters: contrast range was not updated when the image Z axis bounds were changed using the "Parameters" dialog
78
106
 
79
107
  🧹 API cleanup:
80
108
 
@@ -89,17 +117,13 @@ In this release, test coverage is 79%.
89
117
 
90
118
  ## Version 2.3.5 ##
91
119
 
92
- This release is mainly intended to fix the Windows binary distribution, which was not
93
- supporting NumPy 2.0.
120
+ This release is mainly intended to fix the Windows binary distribution, which was not supporting NumPy 2.0.
94
121
 
95
122
  🛠️ Bug fixes:
96
123
 
97
- * Moved back `conftest.py` to the `tests` folder (was in the root folder), so that
98
- `pytest` can be executed with proper configuration when running the test suite
99
- from the installed package
124
+ * Moved back `conftest.py` to the `tests` folder (was in the root folder), so that `pytest` can be executed with proper configuration when running the test suite from the installed package
100
125
 
101
- * Removed benchmarks from automated test suite (not relevant for the end user):
102
- added `plotpy-benchmarks` script to run the benchmarks
126
+ * Removed benchmarks from automated test suite (not relevant for the end user): added `plotpy-benchmarks` script to run the benchmarks
103
127
 
104
128
  ## Version 2.3.4 ##
105
129
 
@@ -123,10 +147,8 @@ In this release, test coverage is 79%.
123
147
 
124
148
  * Moved up `LineCrossSection` import for consistency with other cross-section panels
125
149
  * Unexpected behavior regarding `io.load_items` and `io.save_items` functions:
126
- * Those functions were serializing and deserializing most of the parameters of the
127
- plot items, but not their visibility state
128
- * This is now fixed: the visibility state of the plot items is now saved and restored
129
- as expected
150
+ * Those functions were serializing and deserializing most of the parameters of the plot items, but not their visibility state
151
+ * This is now fixed: the visibility state of the plot items is now saved and restored as expected
130
152
 
131
153
  ℹ️ Other changes:
132
154
 
@@ -136,8 +158,7 @@ In this release, test coverage is 79%.
136
158
 
137
159
  In this release, test coverage is 79%.
138
160
 
139
- Version 2.3.2 fixes a blocking issue with the colormap editor unit test introduced
140
- in version 2.3.1. The latter is a fugitive release that was not announced.
161
+ Version 2.3.2 fixes a blocking issue with the colormap editor unit test introduced in version 2.3.1. The latter is a fugitive release that was not announced.
141
162
 
142
163
  💥 New features / Enhancements:
143
164
 
@@ -158,17 +179,12 @@ in version 2.3.1. The latter is a fugitive release that was not announced.
158
179
 
159
180
  🛠️ Bug fixes:
160
181
 
161
- * Image statistics tool: fixed "No available data" message when the tool rectangular
162
- region top Y coordinate is above the image top Y coordinate
163
- * Label items (`LabelItem`, `LegendBoxItem`, `DataInfoLabel`, ...) were not emitting
164
- the `SIG_ITEM_MOVED` signal when moved interactively (with the mouse) if the item
165
- anchor was attached to the canvas
166
- * Colormap: fixed context menu entry update (colormap icon was updated as expected, but
167
- the colormap name was not)
182
+ * Image statistics tool: fixed "No available data" message when the tool rectangular region top Y coordinate is above the image top Y coordinate
183
+ * Label items (`LabelItem`, `LegendBoxItem`, `DataInfoLabel`, ...) were not emitting the `SIG_ITEM_MOVED` signal when moved interactively (with the mouse) if the item anchor was attached to the canvas
184
+ * Colormap: fixed context menu entry update (colormap icon was updated as expected, but the colormap name was not)
168
185
  * Rotate/crop dialog: added missing toolbar on plot widget
169
186
  * Flip/rotate dialog: added missing toolbar on plot widget
170
- * Fixed issue with oblique averaged cross section computation (`AttributeError` when
171
- clicking on the empty cross section plot)
187
+ * Fixed issue with oblique averaged cross section computation (`AttributeError` when clicking on the empty cross section plot)
172
188
 
173
189
  ## Version 2.3.0 ##
174
190
 
@@ -180,28 +196,20 @@ In this release, test coverage is 75%.
180
196
  * The user can now invert the colormap of an image item:
181
197
  * From the image parameters dialog ("Invert colormap" checkbox)
182
198
  * From the plot context menu (right-click on the image item)
183
- * `BaseImageItem.set_color_map` method takes a new `invert` parameter (which
184
- defaults to `None`, meaning that the behavior is unchanged)
185
- * New `ReverseColormapTool`: registered by default in the plot widget, like the
186
- `ColormapTool` (add the "Invert colormap" entry in the context menu of the image)
199
+ * `BaseImageItem.set_color_map` method takes a new `invert` parameter (which defaults to `None`, meaning that the behavior is unchanged)
200
+ * New `ReverseColormapTool`: registered by default in the plot widget, like the `ColormapTool` (add the "Invert colormap" entry in the context menu of the image)
187
201
 
188
202
  🛠️ Bug fixes:
189
203
 
190
- * `ErrorBarCurveItem`: fixed NumPy deprecation warning
191
- ("Conversion of an array with ndim > 0 to a scalar is deprecated [...]")
204
+ * `ErrorBarCurveItem`: fixed NumPy deprecation warning ("Conversion of an array with ndim > 0 to a scalar is deprecated [...]")
192
205
 
193
206
  ℹ️ Other changes:
194
207
 
195
208
  * Image plot items deserialization:
196
- * When an image plot item is deserialized, and needs to be reloaded from a file,
197
- the file path is adapted to the current working directory if file is not found
198
- (this is the legacy behavior).
199
- * An unnecessary call to `ImageIOHandler.adapt_path` method was removed from the
200
- `RawImageItem.deserialize` method: this issue has to be handled by the host
201
- application, not by the PlotPy library.
209
+ * When an image plot item is deserialized, and needs to be reloaded from a file, the file path is adapted to the current working directory if file is not found (this is the legacy behavior).
210
+ * An unnecessary call to `ImageIOHandler.adapt_path` method was removed from the `RawImageItem.deserialize` method: this issue has to be handled by the host application, not by the PlotPy library.
202
211
  * `ImageIOHandler`: removed `add_change_path` and `adapt_path` methods
203
- * Fix typo in `tests.features.test_colormap_editor` module: renamed function
204
- `test_colormap_manager` to `test_colormap_editor`
212
+ * Fix typo in `tests.features.test_colormap_editor` module: renamed function `test_colormap_manager` to `test_colormap_editor`
205
213
  * Removed unnecessary `BaseImageItem.get_color_map_name` method
206
214
 
207
215
  ## Version 2.2.0 ##
@@ -211,36 +219,27 @@ In this release, test coverage is 75%.
211
219
  New features:
212
220
 
213
221
  * Added `SIG_ITEM_PARAMETERS_CHANGED` signal to `BasePlot` class:
214
- * This signal is emitted when the parameters of an item are changed using the
215
- parameters dialog, or a specific tool (e.g. the colormap selection tool,
216
- or the lock/unlock tool for image items)
222
+ * This signal is emitted when the parameters of an item are changed using the parameters dialog, or a specific tool (e.g. the colormap selection tool, or the lock/unlock tool for image items)
217
223
  * This signal is emitted with the item as argument
218
- * It is often emitted before the `SIG_ITEMS_CHANGED` signal, which is global to all
219
- items, but not necessarily. For example, when the colormap of an image is changed,
220
- the `SIG_ITEM_PARAMETERS_CHANGED` signal is emitted for the image item, but the
221
- `SIG_ITEMS_CHANGED` signal is not emitted.
224
+ * It is often emitted before the `SIG_ITEMS_CHANGED` signal, which is global to all items, but not necessarily. For example, when the colormap of an image is changed, the `SIG_ITEM_PARAMETERS_CHANGED` signal is emitted for the image item, but the `SIG_ITEMS_CHANGED` signal is not emitted.
222
225
  * Added new colormap presets:
223
226
  * `viridis`, `plasma`, `inferno`, `magma`, `cividis`
224
227
  * `afmhot`
225
228
  * `coolwarm`, `bwr`, `seismic`
226
229
  * `gnuplot2`, `CMRmap`, `rainbow`, `turbo`
227
230
  * Fixed all qualitative colormaps:
228
- * All qualitative colormaps have been re-computed because they are not supposed to be
229
- interpolated, which was the case and made them unusable
231
+ * All qualitative colormaps have been re-computed because they are not supposed to be interpolated, which was the case and made them unusable
230
232
  * The qualitative colormaps are now usable and look like the ones from Matplotlib
231
233
  * Colormap manager:
232
234
  * Added a button to remove a custom colormap
233
235
  * The preset colormaps *and* the currently selected colormap are read-only
234
236
  * Added automatic unit tests for interactive tools:
235
- * `AnnotatedCircleTool`, `AnnotatedEllipseTool`, `AnnotatedObliqueRectangleTool`,
236
- `AnnotatedPointTool`, `AnnotatedRectangleTool`, `AnnotatedSegmentTool`
237
- * `AverageCrossSectionTool`, `CrossSectionTool`, `ObliqueCrossSectionTool`,
238
- `LineCrossSectionTool`
237
+ * `AnnotatedCircleTool`, `AnnotatedEllipseTool`, `AnnotatedObliqueRectangleTool`, `AnnotatedPointTool`, `AnnotatedRectangleTool`, `AnnotatedSegmentTool`
238
+ * `AverageCrossSectionTool`, `CrossSectionTool`, `ObliqueCrossSectionTool`, `LineCrossSectionTool`
239
239
  * `EditPointTool`, `SelectPointsTool`, `SelectPointTool`
240
240
  * `AspectRatioTool`, `ImageStatsTool`, `SnapshotTool`
241
241
  * `DisplayCoordsTool`, `RectZoomTool`
242
- * `CircleTool`, `EllipseTool`, `FreeFormTool`, `MultiLineTool`,
243
- `ObliqueRectangleTool`, `PointTool`, `RectangleTool`, `SegmentTool`
242
+ * `CircleTool`, `EllipseTool`, `FreeFormTool`, `MultiLineTool`, `ObliqueRectangleTool`, `PointTool`, `RectangleTool`, `SegmentTool`
244
243
  * Internal package reorganization: moved icons to `plotpy/data/icons` folder
245
244
 
246
245
  ## Version 2.1.2 ##
@@ -248,11 +247,8 @@ New features:
248
247
  New features:
249
248
 
250
249
  * Added `Echelon` alpha function to the image parameters:
251
- * The `Echelon` alpha function is a step function, so that the alpha channel is
252
- 0 (full transparency) for the lowest value of the Lookup Table (LUT) and opaque
253
- (transparency level set by the `Global alpha` parameter) for the other values
254
- * This feature is added to the other existing alpha functions: `Constant`, `Linear`,
255
- `Sigmoid`, and `Hyperbolic tangent`
250
+ * The `Echelon` alpha function is a step function, so that the alpha channel is 0 (full transparency) for the lowest value of the Lookup Table (LUT) and opaque (transparency level set by the `Global alpha` parameter) for the other values
251
+ * This feature is added to the other existing alpha functions: `Constant`, `Linear`, `Sigmoid`, and `Hyperbolic tangent`
256
252
 
257
253
  Bug fixes:
258
254
 
@@ -265,10 +261,7 @@ Bug fixes:
265
261
  * API breakage (unintentional) in V2.1.0:
266
262
  * In V2.1.0, `mathutils.colormap` module was renamed to `mathutils.colormaps`
267
263
  * Original `mathutils.colormap` module naming is restored in this release
268
- * Colormap selection from the toolbar was not triggering the `SIG_ITEMS_CHANGED` signal
269
- (every time an item parameter is changed, the `SIG_ITEMS_CHANGED` signal has to be
270
- emitted by the `BasePlot` instance to notify the application that the plot has been
271
- modified)
264
+ * Colormap selection from the toolbar was not triggering the `SIG_ITEMS_CHANGED` signal (every time an item parameter is changed, the `SIG_ITEMS_CHANGED` signal has to be emitted by the `BasePlot` instance to notify the application that the plot has been modified)
272
265
 
273
266
  ## Version 2.1.0 ##
274
267
 
@@ -280,24 +273,16 @@ New features:
280
273
  * New `tools.SelectPointsTool` to select graphically multiple points on a plot
281
274
  * New `tools.EditPointTool` to edit graphically the position of a point on a plot
282
275
  * New downsampling feature:
283
- * The user may enable it to reduce the number of points displayed on a curve
284
- (e.g. when the curve is too dense)
285
- * The downsampling factor is adjustable
286
- (default to 10, i.e. 1 point out of 10 is displayed)
276
+ * The user may enable it to reduce the number of points displayed on a curve (e.g. when the curve is too dense)
277
+ * The downsampling factor is adjustable (default to 10, i.e. 1 point out of 10 is displayed)
287
278
  * The feature is disabled by default
288
279
  * Image-related features:
289
280
  * New "Colormap Manager":
290
- * Before this release, the colormap selection was limited to presets (e.g. "gray",
291
- "jet", etc.)
292
- * Now, the user can select a preset, edit it, or create a new one from scratch
293
- thanks to the new "Colormap Manager" dialog
281
+ * Before this release, the colormap selection was limited to presets (e.g. "gray", "jet", etc.)
282
+ * Now, the user can select a preset, edit it, or create a new one from scratch thanks to the new "Colormap Manager" dialog
294
283
  * New line cross section feature:
295
- * Before this release, the cross section feature was limited to either horizontal
296
- or vertical lines, or an average cross section withing a rectangle (aligned with
297
- the axes, or oblique)
298
- * Now, the user can draw a line cross section with the new "Line Cross Section"
299
- tool: the intensity profile associated to the drawn segment is displayed in a
300
- dedicated plot
284
+ * Before this release, the cross section feature was limited to either horizontal or vertical lines, or an average cross section withing a rectangle (aligned with the axes, or oblique)
285
+ * Now, the user can draw a line cross section with the new "Line Cross Section" tool: the intensity profile associated to the drawn segment is displayed in a dedicated plot
301
286
  * Added support for gestures:
302
287
  * Zooming in/out with the a two-finger pinch gesture
303
288
  * Panning with a two-finger drag gesture
@@ -345,59 +330,36 @@ Documentation:
345
330
 
346
331
  ## Version 2.0.0 ##
347
332
 
348
- This version is the first release of the 2.0 series, which is distributed under the
349
- [BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause).
333
+ This version is the first release of the 2.0 series, which is distributed under the [BSD 3-Clause License](https://opensource.org/licenses/BSD-3-Clause).
350
334
 
351
335
  PlotPy 2.0 is a major release that brings a lot of new features and bug fixes.
352
336
 
353
- When initiated in 2016, PlotPy 1.0 was the result of the merge of two projects (as well
354
- as some other changes, e.g. a redesign of the API):
337
+ When initiated in 2016, PlotPy 1.0 was the result of the merge of two projects (as well as some other changes, e.g. a redesign of the API):
355
338
 
356
- * [guidata](https://pypi.org/project/guidata/), a Python library generating graphical
357
- user interfaces for easy dataset editing and display
358
- * [guiqwt](https://pypi.org/project/guiqwt/), a Python library providing efficient 2D
359
- data-plotting features (curve/image visualization and related tools) for interactive
360
- computing and signal/image processing application development
339
+ * [guidata](https://pypi.org/project/guidata/), a Python library generating graphical user interfaces for easy dataset editing and display
340
+ * [guiqwt](https://pypi.org/project/guiqwt/), a Python library providing efficient 2D data-plotting features (curve/image visualization and related tools) for interactive computing and signal/image processing application development
361
341
 
362
- With PlotPy 2.0, the [guidata](https://pypi.org/project/guidata/) code base has been
363
- reextracted: PlotPy now relies on [guidata](https://pypi.org/project/guidata/) as a
364
- dependency, like before the merge.
342
+ With PlotPy 2.0, the [guidata](https://pypi.org/project/guidata/) code base has been reextracted: PlotPy now relies on [guidata](https://pypi.org/project/guidata/) as a dependency, like before the merge.
365
343
 
366
- PlotPy 2.0 also integrates all the bug fixes (>30) and new features that were added to
367
- [guiqwt](https://pypi.org/project/guiqwt/) since the merge (i.e. between 2016 and 2023).
344
+ PlotPy 2.0 also integrates all the bug fixes (>30) and new features that were added to [guiqwt](https://pypi.org/project/guiqwt/) since the merge (i.e. between 2016 and 2023).
368
345
 
369
346
  Supported versions of Python and Qt bindings have been updated:
370
347
 
371
- * Python: 3.8, 3.9, and 3.10 (3.11 should work too, but will be officially supported
372
- when dropping support for Python 3.8, to keep a 3-year support period)
373
- * Qt bindings: PyQt5 (even if PyQt6 and PySide6 are not officially supported, efforts
374
- have been made and will continue to be made to support them)
348
+ * Python: 3.8, 3.9, and 3.10 (3.11 should work too, but will be officially supported when dropping support for Python 3.8, to keep a 3-year support period)
349
+ * Qt bindings: PyQt5 (even if PyQt6 and PySide6 are not officially supported, efforts have been made and will continue to be made to support them)
375
350
 
376
351
  PlotPy 2.0 is a major release because it also brings a lot of new features:
377
352
 
378
- * `plot.PlotWidget`, `plot.PlotDialog`, and `plot.PlotWindow`: API overhaul
379
- (simple, more consistent, more flexible, more extensible - see documentation
380
- for details)
381
- * `plot.SyncPlotWindow`: new class to show multiple plots in a single window,
382
- in a synchronized way (zoom, pan, etc.)
383
- * `widgets.selectdialog.SelectDialog`: a dialog box to select items using a
384
- shape tool (segment, rectangle or custom)
353
+ * `plot.PlotWidget`, `plot.PlotDialog`, and `plot.PlotWindow`: API overhaul (simple, more consistent, more flexible, more extensible - see documentation for details)
354
+ * `plot.SyncPlotWindow`: new class to show multiple plots in a single window, in a synchronized way (zoom, pan, etc.)
355
+ * `widgets.selectdialog.SelectDialog`: a dialog box to select items using a shape tool (segment, rectangle or custom)
385
356
  * Image lookup table (LUT):
386
- * Initially, the LUT alpha channel was either constant (input parameter
387
- `alpha` was a float between 0 and 1) or linearly dependent on the image
388
- pixel values (when the `alpha_mask` parameter was enabled)
389
- * Now, the LUT may be either constant (same as before) or dependent on
390
- the image pixel values but not only linearly: the LUT alpha channel may
391
- follow a linear, a sigmoid or an hyperbolic tangent function (see the new
392
- `alpha_function` parameter). The old `alpha_mask` parameter was removed
357
+ * Initially, the LUT alpha channel was either constant (input parameter `alpha` was a float between 0 and 1) or linearly dependent on the image pixel values (when the `alpha_mask` parameter was enabled)
358
+ * Now, the LUT may be either constant (same as before) or dependent on the image pixel values but not only linearly: the LUT alpha channel may follow a linear, a sigmoid or an hyperbolic tangent function (see the new `alpha_function` parameter). The old `alpha_mask` parameter was removed
393
359
  * Image pixels are now centered on their coordinates:
394
- * This means that the pixel at row `i` and column `j` is centered on the point
395
- `(j, i)` (before, the top-left corner of the pixel at row `i` and column `j`
396
- was centered on the point `(j, i)`)
397
- * This convention is more consistent with the way images are displayed in other
398
- scientific image processing tools
399
- * This is one of the benefits of porting back [guiqwt](https://pypi.org/project/guiqwt/)
400
- changes since the merge (i.e. between 2016 and 2023)
360
+ * This means that the pixel at row `i` and column `j` is centered on the point `(j, i)` (before, the top-left corner of the pixel at row `i` and column `j` was centered on the point `(j, i)`)
361
+ * This convention is more consistent with the way images are displayed in other scientific image processing tools
362
+ * This is one of the benefits of porting back [guiqwt](https://pypi.org/project/guiqwt/) changes since the merge (i.e. between 2016 and 2023)
401
363
  * New SVG-based shapes:
402
364
  * `items.RectangleSVGShape`: rectangle shape based on SVG data or file
403
365
  * `items.SquareSVGShape`: square shape based on SVG data or file
@@ -413,21 +375,17 @@ PlotPy 2.0 is a major release because it also brings a lot of new features:
413
375
  * `make.contours()` for generating a list of `items.ContourItem` objects
414
376
  * `make.annotated_point()` for `items.AnnotatedPoint`
415
377
  * `make.polygon()` for `items.PolygonShape`
416
- * `make.svg()` for `items.RectangleSVGShape`, `items.SquareSVGShape`,
417
- and `items.CircleSVGShape`
378
+ * `make.svg()` for `items.RectangleSVGShape`, `items.SquareSVGShape`, and `items.CircleSVGShape`
418
379
  * Added JSON serialization support for all plot items (curve, image, etc.)
419
380
 
420
- * Brand new documentation, based on Sphinx with links to other projects API, examples
421
- and tutorials (e.g. on development related topics).
381
+ * Brand new documentation, based on Sphinx with links to other projects API, examples and tutorials (e.g. on development related topics).
422
382
  * Black code formatting on all Python files
423
383
  * New automated test suite:
424
384
  * Automatic execution: `--unattended` command line option (Qt loop is bypassed)
425
- * Test suite based on `pytest`, supporting `pytest-cov` for coverage testing,
426
- `pytest-xvfb` for headless testing, and `pytest-qt` for Qt testing
385
+ * Test suite based on `pytest`, supporting `pytest-cov` for coverage testing, `pytest-xvfb` for headless testing, and `pytest-qt` for Qt testing
427
386
  * Added support for Coverage: test coverage improved up to 70%
428
387
  * Added typing annotations on (almost) all Python files
429
- * Distribution: switched to `pyproject.toml` (still relying on `setuptools` and
430
- `setup.py` for building Cython/C++ extensions)
388
+ * Distribution: switched to `pyproject.toml` (still relying on `setuptools` and `setup.py` for building Cython/C++ extensions)
431
389
  * Added code quality configuration files:
432
390
  * `.pylintrc`: pylint configuration file
433
391
  * `.isort.cfg`: isort configuration file
@@ -451,8 +409,7 @@ PlotPy 2.0 also brings a lot of bug fixes and improvements:
451
409
  * `TrImageItem` rotation algorithm
452
410
  * Oblique cross-section test
453
411
  * About dialog, version informations
454
- * Ported all [guiqwt](https://pypi.org/project/guiqwt/) bug fixes since the merge
455
- (i.e. between 2016 and 2023):
412
+ * Ported all [guiqwt](https://pypi.org/project/guiqwt/) bug fixes since the merge (i.e. between 2016 and 2023):
456
413
  * Added support for Visual Studio 2015 and earlier
457
414
  * Speeding-up image alpha channel calculation
458
415
  * Optimized colormap icon caching
@@ -460,6 +417,5 @@ PlotPy 2.0 also brings a lot of bug fixes and improvements:
460
417
  * Added load test (with a very large number of plot widgets)
461
418
  * Coordinates inversion in `EllipseShape`
462
419
  * ValueError with levels histogram
463
- * Various fixes regarding plot item creation, cross-section features,
464
- PyQt5 support, DICOM support, TIFF support, etc.
420
+ * Various fixes regarding plot item creation, cross-section features, PyQt5 support, DICOM support, TIFF support, etc.
465
421
  * Etc.
@@ -3,6 +3,5 @@ graft qtdesigner
3
3
  graft src
4
4
  graft colormaps
5
5
  include *.desktop
6
- include conftest.py
7
6
  include CHANGELOG.md
8
7
  include requirements.txt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PlotPy
3
- Version: 2.4.2
3
+ Version: 2.5.1
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.4.2
3
+ Version: 2.5.1
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
@@ -391,6 +391,7 @@ plotpy/tests/features/test_cursors.py
391
391
  plotpy/tests/features/test_dicom_image.py
392
392
  plotpy/tests/features/test_fit.py
393
393
  plotpy/tests/features/test_image_coords.py
394
+ plotpy/tests/features/test_image_data_update.py
394
395
  plotpy/tests/features/test_imagefilter.py
395
396
  plotpy/tests/features/test_imagesuperp.py
396
397
  plotpy/tests/features/test_loadsaveitems_hdf5.py
@@ -426,6 +427,7 @@ plotpy/tests/tools/test_cross_section.py
426
427
  plotpy/tests/tools/test_cross_section_line.py
427
428
  plotpy/tests/tools/test_cross_section_oblique.py
428
429
  plotpy/tests/tools/test_customize_shape_tool.py
430
+ plotpy/tests/tools/test_cyclic_import.py
429
431
  plotpy/tests/tools/test_downsample_curve.py
430
432
  plotpy/tests/tools/test_edit_point.py
431
433
  plotpy/tests/tools/test_get_point.py
@@ -118,6 +118,8 @@ Image tools
118
118
  :members:
119
119
  .. autoclass:: plotpy.tools.ReverseColormapTool
120
120
  :members:
121
+ .. autoclass:: plotpy.tools.LockLUTRangeTool
122
+ :members:
121
123
  .. autoclass:: plotpy.tools.XCSPanelTool
122
124
  :members:
123
125
  .. autoclass:: plotpy.tools.YCSPanelTool
@@ -20,7 +20,7 @@ External resources:
20
20
  .. _GitHub: https://github.com/PierreRaybaut/plotpy
21
21
  """
22
22
 
23
- __version__ = "2.4.2"
23
+ __version__ = "2.5.1"
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
@@ -16,6 +16,14 @@ import enum
16
16
 
17
17
  from plotpy.config import _
18
18
 
19
+ # ===============================================================================
20
+ # Plot axes
21
+ # ===============================================================================
22
+
23
+ #: ID of the x axis
24
+ AXIS_IDS = Y_LEFT, Y_RIGHT, X_BOTTOM, X_TOP = range(4)
25
+
26
+
19
27
  # ===============================================================================
20
28
  # Plot types
21
29
  # ===============================================================================