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