Version 2.5¶
PlotPy Version 2.5.1 (2024-08-01)¶
ℹ️ Release V2.5.0 was a fugitive release that was replaced by V2.5.1 due to packaging issues.
In this release, test coverage is 79%.
💥 New features / Enhancements:
Alternative dictionary argument for plot options:
This new feature was introduced in the context of the cyclic import bug fix, to avoid importing the
plotpy.plotmodule just to get thePlotOptionsorBasePlotOptionsclassesAll classes (and a few functions) that used to take an
optionsargument as aBasePlotOptionsorPlotOptionsinstance now also accept a dictionary argument with the same keys as theBasePlotOptionsorPlotOptionsclass attributes, and the same values as the corresponding attributesThis concerns the following classes and functions:
plotpy.plot.BasePlotplotpy.plot.PlotWidgetplotpy.plot.PlotDialogplotpy.plot.PlotWindowplotpy.plot.SubPlotWidgetplotpy.plot.SyncPlotWindowplotpy.tools.RotateCropToolplotpy.widgets.fit.FitDialogplotpy.widgets.fliprotate.FlipRotateDialogplotpy.widgets.rotatecrop.RotateCropDialogplotpy.widgets.selectdialog.SelectDialogplotpy.widgets.selectdialog.select_with_shape_tool
Added “Lock LUT range” option for image items:
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_datamethod)When enabled, the LUT range is locked and the LUT range is not adjusted when updating the image item data
The option is available in image parameters dialog
A new tool
LockLUTRangeToolhas 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 neededSee test script
tests.features.test_image_data_updatefor an example of usage of the new option and tool
Added missing
set_stylemethod toXRangeSelectionclass: this method is used to set the style of the range selection item from configuration options
🛠️ Bug fixes:
Issue #19 - Fix
distutilsdeprecation in setup.py: replaceddistutils.corebysetuptoolsin 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)Fix cyclic import in
plotpy.toolsmodule:Some tools in
plotpy.toolssubpackage were importing theplotpy.plotmodule, which was importing theplotpy.toolsmodule, causing a cyclic import issueThis is now fixed by introducing new constants for axis IDs in the
plotpy.constantsmodule, and using them everywhere in the code, thus avoiding to import theplotpy.plotmodule just to get the axis IDs
Fix empty label in X/Y cross section plots:
This is a regression introduced in V2.1.0
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
The label now shows “Enable a marker” as previously
Fix historic unexpected behavior of interactive tools:
When triggering an interactive tool (e.g. by clicking on the corresponding toolbar button), the tool
activatemethod was called twice, which was not expected, but was not causing any issue given the current implementationHowever, when defining custom interactive tools, this behavior could lead to unexpected results (i.e. really executing activation actions twice)
This is now fixed: the
activatemethod is called only once when triggering an interactive tool