Skip to content

2.0.0: 2024/01/30

Compare
Choose a tag to compare
@t20100 t20100 released this 30 Jan 13:53
· 5 commits to 2.0 since this release
0077c17

This version of silx supports Python 3.7 to 3.12.
This is the last version of silx supporting Python 3.7.
The silx.gui package supports PySide6, PyQt6 and PyQt5 (PySide2 is no longer supported).

Breaking API change: silx.gui.plot.PlotWidget's add methods (i.e., addCurve, addImage, ...) returns the plot item object instance instead of its legend (#3996).

What's Changed...

silx applications

  • Added silx compare, a dedicated application to compare images (PR #3788, #3827, #3884, #3943, #3944)

  • silx view:

    • Added --slices option (PR #3860)
    • Added supports for data URL containing "**" to match multiple sub groups (PR #3795)
    • Added keyboard shortcuts for open/close all (PR #3863)
    • Improved: Stopped displaying a message box for each error (PR #3955)
    • Improved: Use matplotlib if OpenGL is not available (PR #3905)
    • Fixed support of NXData image with 0-length axis (PR #3768)
    • Fixed setting focus at startup when opening a dataset (PR #3953)
  • silx.app.utils: Refactored (PR #3811)

silx.io

  • silx.io.dictdump:

    • Removed dicttoh5's overwrite_data argument (PR #3806)
    • Improved error message for dicttoh5 with non-serializable data (PR #3937)
    • Fixed h5todict errors argument issue (PR #3749) and fixed-length string issue (PR #3748)
  • silx.io.h5py_utils:

    • Fixed retry (PR #3775)
    • Fixed: Do not call multiprocessing module in frozen binaries (PR #3984)
  • silx.io.nxdata.parser: Fixed NXdata validation (PR #3782)

  • silx.io.url:

    • Added support of URLs with slices to DataUrl (PR #3821)
    • Added typings for DataUrl (PR #3968)
    • Fixed DataUrl: Allow file_path to be None (PR #4051)
  • silx.io.utils:

    • Added support of bare file to get_data with check_schemas=True argument (PR #3859)
    • Improved: open do not lock the file (PR #3939)
    • Fixed small/big endian support in test (PR #3873)
    • Fixed h5py_read_dataset support of empty arrays (PR #4052)

silx.math

  • Fixed several function docstrings (PR #3774)
  • silx.math.colormap: Added normalize function to normalize to uint8 (PR #3785)
  • silx.math.fit: Added split pseudo-voigt with split lorentzian fraction (PR #3902)

silx.opencl

  • Fixed regression with PoCL and order of floating point operations (PR #3935)

  • Fixed: skip test on broken platform (PR #3809)

  • Fixed: prevent crash at init when loading silx with PortableCL + Cuda devices (PR #3924)

  • silx.opencl.atomic: Added new checking for atomic32 and atomic64 operation (PR #3855)

  • silx.opencl.backprojection: Removed deprecated fourier_filter function (PR #3816)

  • silx.opencl.codec:

    • Added `bitshuffle_lz4`` decompression (PR #3714)
    • Added support of pyopencl's Buffer and Array to BitshuffleLz4.decompress (PR #3787)
  • `silx.opencl.common``:

    • Removed OpenCL.create_context useFp64 argument (PR #3801)
    • Reworked initialisation of the module (PR #3903)
    • Updated: Defer to pyopencl the interpretation of PYOPENCL_CTX (PR #3933)
  • silx.opencl.convolution: Removed Python 2 compatible code (PR #3818)

silx.third_party

  • Removed copy of scipy's Delaunay from third_party (PR #3808)
  • Deprecated EdfFile and TiffIO (PR #3841)

silx.gui

  • silx.gui:

    • Added support for QT_API environment variable (PR #3981)
    • Added a warning about pyOpenGL and Qt compatibility (PR #3738)
    • Added some Python typing (PR #3957)
    • Removed support of PySide6<6.4 (PR #3872)
    • Improved qWidgetFactory test fixture (PR #4009)
    • Fixed support of PySide 6.4 enums (PR #3737)
    • Fixed support of PyQt6 (PR #3960, #3966, #3989, #3999, #4003)
    • Fixed support of OpenGL with python3.12 and pyopengl <=3.1.7 (PR #3982)
    • Fixed OpenGL version parsing (PR #3733)
  • silx.gui.colors:

    • Added indexed color names support to rgba (PR #3836, #3861)
    • Added typing (PR #3974)
    • silx.gui.colors.rgba: Changed from AssertionError to ValueError (PR #3864)
    • Improved: Colormap.setVRange raises an exception if the range is not finite (PR #3794)
  • silx.gui.constants: Added: expose URI used to drag and drop DataUrl (PR #3796)

  • silx.gui.data:

    • Fixed issue with hdf5 attributes string formatting (PR #3790)
    • silx.gui.data.DataView: Removed patch for pymca <v5.3.0 support (PR #3800)
    • silx.gui.data.HDF5TableView: Fixed virtual and external dataset information (PR #3717)
    • silx.gui.data.RecordTableView: Fixed issue with datasets with many rows failing to load due to incorrect variable type (PR #3926)
  • silx.gui.dialog:

    • silx.gui.dialog.ColormapDialog:

      • Added DisplayMode to API by renaming _DataInPlotMode (PR #3964)
      • Fixed layout (PR #3792)
      • Fixed state when updating Item (PR #3833)
      • Fixed robustness of tools with item inheriting from ImageBase (PR #3858)
  • silx.gui.hdf5:

    • Added NXnote to the list of describable classes (PR #3832)
    • Added tests for H5Node soft link to an external link issue (PR #3220)
  • silx.gui.qt:

    • Updated PySide6 loadUi function (PR #3783)
    • Fixed Python>3.9 support (PR #3779)
  • silx.gui.plot:

    • silx.gui.plot.actions: Added typings for PlotAction (PR #3941)

    • silx.gui.plot.items:

      • Added Marker item font configuration (PR #3956)

      • Added background color for markers and removed automatic background color (PR #4012)

      • Added get|setLineGapColor methods to Curve and Histogram (PR #3973)

      • Renamed Shape.get|setLineBgColor to get|setLineGapColor (PR #4001)

      • Deprecated Curve and Image sequence-like access (PR #3803)

      • Improved handling of data ndim and shape for image items (PR #3976)

      • Fixed: Removed ImageDataAggregated all-NaN warning (PR #3786)

      • Fixed Shape display with dashes and a background color (PR #3906)

      • silx.gui.plot.items.roi:

        • Added RegionOfInterest's getText and setText methods (PR #3847)
        • Added populateContextMenu method to ROIs (PR #3891)
        • Added ArcROI.getPositionRole method (PR #3894)
        • Added ROIs base classes to documentation (PR #3839)
        • Removed deprecated methods RegionOfInterest.get|setLabel (PR #3810)
        • Improved `ArcROI``: Hide the handler instead of hidding the symbol (PR #3887)
        • Improved: highlighted RegionOfInterest takes priority for interactions (PR #3975)
        • Fixed ROI initialisation with parent (PR #4053)
    • silx.gui.plot.ColorBar: Fixed division by zero issue (PR #4013)

    • silx.gui.plot.CompareImages:

      • Added profile to compare image (PR #3845)
      • Improved consistency of autoscale (PR #3823)
      • Fixed the A-B visualization mode (PR #3856)
    • silx.gui.plot.ImageStack:

      • Added URL removal feature if the list is editable (PR #3913)
      • Fixed ImageStack handling of visible state (PR #3834)
      • Fixed issue (PR #4050)
    • silx.gui.plot.ImageView: Fixed histogram visibility (PR #3742)

    • silx.gui.plot.PlotWidget:

      • Breaking changes:

        • Changed add* methods return value to return the item instead of its legend (PR #3996)
        • Refactored management of items (PR #3986, #3988)
      • Added margins argument to PlotWidget.setLimits (PR #3828)

      • Added Plotwidget.get|setDefaultColors and updated default colors behavior (PR #3835)

      • Added PlotWidget.sigBackendChanged (PR #3890)

      • Added per-axis zoom (PR #3842, #3843)

      • Added support for 'other' kind of plot items (PR #3908)

      • Added support of matplotlib tight layout as an experimental feature (PR #3865)

      • Added support of line style defined as (offset, (dash pattern)) (PR #4020)

      • Added support for indexed color names support (PR #3836)

      • Added sample script to check and compare backend features (PR #4031)

      • Changed curve default colors to matchthe one from matplotlib >=2.0 (PR #3853)

      • Changed curve highlighting to use by default a linewidth of 2 (PR #3854)

      • Changed plot axes tick labels behavior to use offsets (PR #4007)

      • Changed: use the default font from mpl (PR #4025)

      • Changed font management (PR #4047)

      • Improved rendering for OpenGL backend (PR #4002, #4015, #4023, #4034, #4038)

      • Fixed documentation (PR #3773)

      • Fixed mouse cursor update (PR #3904)

      • Fixed: do not reset zoom when changing axes scales (PR #3862, #3869)

      • Fixed: use PlotWidget.get|setActiveScatter instead of private method (PR #3987)

      • Fixed tick display of time series (PR #4000)

      • Fixed matplotlib marker without background (PR #4028)

    • silx.gui.plot.PlotWindow: Fixed display of zoom in/out actions (PR #3837)

    • silx.gui.plot.RulerToolButton: Added interactive plot measurement tool (PR #3959, #4005)

    • silx.gui.plot.StackView: Removed setColormap autoscale argument (PR #3805)

    • silx.gui.plot.tools:

      • silx.gui.plot.tools.PositionInfo: Fixed support of dark theme (PR #3965)

      • silx.gui.plot.tools.profile: Fixed concurrency issue with RGB profiles (PR #3846)

      • silx.gui.plot.tools.roi.RegionOfInterestManager:

        • Changed interaction mode for ROI creation (PR #3978)
        • Fixed display glitch (PR #3954)
  • silx.gui.plot3d:

    • Updated font management (PR #4047)

    • Fixed deprecation warning (PR #4046)

    • silx.gui.plot3d.ParamTreeView:

      • Added typing and code cleanup (PR #3972)
      • Fixed Qt6 support (PR #3971)
  • silx.gui.utils.image: Added support of QImage.Format_Grayscale8 to convertQImageToArray (PR #3958)

  • silx.gui.widgets:

    • silx.gui.widgets.FloatEdit:

      • Added widgetResizable feature (PR #4006)
      • Added typing and code cleanup (PR #3972)
    • silx.gui.widgets.StackedProgressBar: Added widget displaying more complex information progress information (PR #4008)

    • silx.gui.plot.widgets.UrlList: Added UrlList widget (PR #3913)

    • silx.gui.widget.UrlSelectionTable:

      • Improved look&feel and enabled drag&drop from silx view (PR #3797)
      • Updated: Split the URL column in 3 columns (PR #3822)
      • Fixed exception with interaction, renamed get|setSelection to get|setUrlSelection (PR #3791)
    • silx.gui.widgets.WaiterOverlay: Added a widget to display processing wheel on top of another widget (PR #3876)

  • silx.utils:

    • silx.utils.launcher: Improved error message (PR #3793)
    • silx.utils.retry: Fixed: Lazy-loading of multiprocessing module (PR #3979)

Miscellaneous

  • Dependencies:

    • Removed support of Python 3.6 (PR #3712), PySide2 (PR #3784) and fabio<0.9 (PR #3829)
    • Replaced setuptools's pkg_resources with packaging as runtime dependency (PR #3910)
    • Fixed support of pint >= 0.20 (PR #3725), cython (PR #3770, #4033) and PyInstaller v6 (PR #4041)
    • Fixed deprecation warnings from numpy, scipy, matplotlib and h5py (PR #3741, #3777, #4045, #3980)
  • Clean-up:

    • Removed features deprecated since <1.0.0 (PR #3798, #3799, #3802, #3804)
    • Removed remaining Python2 support (PR #3815, #3840, #3952)
    • Removed unused imports (PR #3814)
    • Replaced OrderedDict by dict (PR #3830)
    • Updated: Using black to format the code (PR #3991)
    • Fixed typo: 4 " quotes instead of 3. (PR #3838)
  • Build:

    • Removed setup.py commands and options (PR #3831)
    • Removed constraint on setuptools version (PR #3909)
    • Updated build dependencies (PR #4035)
    • Fixed Windows fat binary filename and links (PR #4048)
    • Bump to 2.0.dev (PR #4014)
  • Debian packaging:

    • Removed Debian 10 and 11 packaging (PR #4017)
    • Added Debian 12 packaging (PR #3812)
    • Added pytest-mock to Debian build dependencies (PR #3740)
    • Updated build-deb.sh (PR #4022, #3772) and rules (PR #3732)
  • Updated documentation (PR #3765, #3899, #3970, #3994, #4037, #4036, #4039, #4042, #4055)

  • Updated continuous integration (PR #3727, #3967, #3983)

  • Fixed tests (PR #3722, #3723, #4043, #4044)

New Contributors

Full Changelog: v1.1.2...v2.0.0