Plotpy

Latest version: v2.7.0

Safety actively analyzes 688649 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 7 of 9

2.3.2

In this release, test coverage is 79%.

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.

💥 New features / Enhancements:

* Colormap: added "Apply" button to the colormap manager
* Automated test suite:
* Test coverage has been improved from 75% to 79%
* The following features are now covered by unit tests:
* Panning with the mouse move events
* Zooming with the mouse wheel/move events
* Curve statistics tool
* Image rotation and translations via `SelectTool` (simulating mouse events)
* Masked areas in images and `ImageMaskTool`
* `LockTrImageTool`
* Cursor tools (`HCursorTool`, `VCursorTool`, `XCursorTool` and `HRangeTool`)
* `DisplayCoordsTool`: simulation of 'Alt' and 'Ctrl' keys
* Complete coverage for `MultiLineTool` and `FreeFormTool`
* Selection tools (`RectangularSelectionTool` and `SelectTool`)

🛠️ Bug fixes:

* Image statistics tool: fixed "No available data" message when the tool rectangular region top Y coordinate is above the image top Y coordinate
* 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
* Colormap: fixed context menu entry update (colormap icon was updated as expected, but the colormap name was not)
* Rotate/crop dialog: added missing toolbar on plot widget
* Flip/rotate dialog: added missing toolbar on plot widget
* Fixed issue with oblique averaged cross section computation (`AttributeError` when clicking on the empty cross section plot)

2.3.1

Bug fixes:

* Fixed build failures occuring on non-Windows platforms (Issue 54)
* Fixed requirements in README and setup.py: guiqwt v2.3 requires guidata v1.6

2.3.0

In this release, test coverage is 75%.

💥 New features:

* Added support for colormap inversion:
* The user can now invert the colormap of an image item:
* From the image parameters dialog ("Invert colormap" checkbox)
* From the plot context menu (right-click on the image item)
* `BaseImageItem.set_color_map` method takes a new `invert` parameter (which defaults to `None`, meaning that the behavior is unchanged)
* New `ReverseColormapTool`: registered by default in the plot widget, like the `ColormapTool` (add the "Invert colormap" entry in the context menu of the image)

🛠️ Bug fixes:

* `ErrorBarCurveItem`: fixed NumPy deprecation warning ("Conversion of an array with ndim > 0 to a scalar is deprecated [...]")

ℹ️ Other changes:

* Image plot items deserialization:
* 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).
* 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.
* `ImageIOHandler`: removed `add_change_path` and `adapt_path` methods
* Fix typo in `tests.features.test_colormap_editor` module: renamed function `test_colormap_manager` to `test_colormap_editor`
* Removed unnecessary `BaseImageItem.get_color_map_name` method

2.2.1

New features:

* Added support for plot items serialization/deserialization to/from HDF5:
* See `save_item`, `load_item`, `save_items` and `load_items` functions in `guiqwt.io`
* io.save_item/load_item (HDF5): None can be saved/loaded instead of a real item
* See `serialize` (save to) and `deserialize` (load from) methods in plot objects (save all items) or plot item objects
* See the new test `loadsaveitems_hdf5.py`
* builder/images: added option 'center_on' to center image data on point of coordinates 'center_on' (tuple)
* Flip/Rotate widget/dialog: added method 'set_parameters' to set default transform parameters
* guiqwt.tools.SignalStatsTool.move: added X range to label
* BaseCurveWidget/BaseImageWidget: added argument `curve_antialiasing` to switch on/off the curve antialiasing feature (this option may be passed to CurveWidget, CurveDialog, ImageWidget or ImageDialog through the `options` dictionary)
* (Issue 29) Added test 'customize_shape_tool.py' to demonstrate how easy it is to customize a shape created with a tool like RectangleTool, EllipseTool, etc.
* (Issue 37) Plot axis widget: added support for mouse double-click to set the axis range

Possible API compatibility issues:

* guiqwt now requires Python 2.6 (Python 2.5 support has been dropped)
* `guiqwt.io` module: file type filters are now sorted depending on data types
* `iohandler.load_filters` and `iohandler.save_filters` properties have been replaced by a method `iohandler.get_filters`:
* iohandler.load_filter --> iohandler.get_filters('load')
* iohandler.save_filter --> iohandler.get_filters('save')
* guidata.hdf5io.HDF5Reader.read: argument 'dataset' was renamed to 'instance'
* MaskedImageItem: masked_areas attribute is now a list of MaskedArea objects (so that MaskedImageItem objects serialization is easier to implement)
* Removed deprecated tools DuplicateCurveTool and DeleteCurveTool

Bug fixes:

* MaskedImageItem/bugfix: fixed rounding error when applying mask to item
* io.imread: drastically reduced loading time with PIL.Image
* RGB images support: fixed vertical orientation issue
* Fixed memory leaks in selection tool, image/curve stats tools and contrast tool
* Curve plot: setting axis scale of both X and Y axes at the same time was not working
* Issue 27: fixed FTBFS on kfreebsd due to Werror flag (patch from Frédéric Picca)
* FreeFormTool/MultiLineTool: fixed warning when clicking the first two points if these two points are at the exact same position (happened only when creating such a shape on an empty canvas)
* Fixed "Edit data..." tool: `oedit` function returns None when dialog is canceled or an array when it's validated (fixed "truth value" error)
* (Issue 32) pyplot/better compatibility with Matplotlib: `plot` now accepts lists instead of NumPy arrays
* (Issue 33) tools.LoadItemsTool: parent constructor was not called
* (Issue 36) plot.PlotManager: fixed typo when setting the plot manager to `plot_id`

2.2.0

In this release, test coverage is 75%.

New features:

* Added `SIG_ITEM_PARAMETERS_CHANGED` signal to `BasePlot` class:
* 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)
* This signal is emitted with the item as argument
* 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.
* Added new colormap presets:
* `viridis`, `plasma`, `inferno`, `magma`, `cividis`
* `afmhot`
* `coolwarm`, `bwr`, `seismic`
* `gnuplot2`, `CMRmap`, `rainbow`, `turbo`
* Fixed all qualitative colormaps:
* All qualitative colormaps have been re-computed because they are not supposed to be interpolated, which was the case and made them unusable
* The qualitative colormaps are now usable and look like the ones from Matplotlib
* Colormap manager:
* Added a button to remove a custom colormap
* The preset colormaps *and* the currently selected colormap are read-only
* Added automatic unit tests for interactive tools:
* `AnnotatedCircleTool`, `AnnotatedEllipseTool`, `AnnotatedObliqueRectangleTool`, `AnnotatedPointTool`, `AnnotatedRectangleTool`, `AnnotatedSegmentTool`
* `AverageCrossSectionTool`, `CrossSectionTool`, `ObliqueCrossSectionTool`, `LineCrossSectionTool`
* `EditPointTool`, `SelectPointsTool`, `SelectPointTool`
* `AspectRatioTool`, `ImageStatsTool`, `SnapshotTool`
* `DisplayCoordsTool`, `RectZoomTool`
* `CircleTool`, `EllipseTool`, `FreeFormTool`, `MultiLineTool`, `ObliqueRectangleTool`, `PointTool`, `RectangleTool`, `SegmentTool`
* Internal package reorganization: moved icons to `plotpy/data/icons` folder

2.1.6

Other changes:

* guiqwt.pyplot.savefig:
* added support for all image types supported by Qt (JPEG, TIFF, PNG, ...)
* first argument (`fname`) may now be a file-like object (e.g. StringIO)
* guiqwt.baseplot/curve: added stepsize in `set_axis_limits` and removed from `set_axis_ticks`
* guiqwt.image:
* QuadGridItem: allow set_data to update X,Y along with Z
* new item PolygonMapItem: PolygonMapItem is intended to display maps i.e. items containing several hundreds of independent polygons
* guiqwt.builder.make.error: added options 'errorbarwidth', 'errorbarcap', 'errorbarmode' and 'errorbaralpha' (avoid having to tweak the ErrorBarParam to customize these settings)
* guiqwt.pyplot/pydicom: avoid the annoying warning message about the DICOM dictionnary revert
* guiqwt.tools:
* EditItemDataTool: new tool for editing displayed curve/image data using a GUI-based array editor (this feature requires the `spyderlib` library)

Bug fixes:

* ErrorBarCurveItem (error bar curves):
* now handling NaNs uncertainties properly
* handling runtime warnings that could end badly in draw method (example: transforming a zero in log scale)
* Annotations/pickle bugfix: a QString (instead of unicode) was pickled for annotation title, hence leading to compatiblity issues with PyQt API v2
* guiqwt.io.array_to_dicomfile: fixed value representation error for smallest/largest pixel value parameters
* guiqwt.resizedialog.is_edit_valid: fixed compatibility issue with PyQt API v2
* Sift: upgraded deployment script for compatibility with guidata v1.4+
* geometry.colvector: fixed major regression in coordinates calculations (significative impact on TrImageItem related features)

Page 7 of 9

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.