v3.15.0
v3.15.0 (2025-10-18)
✨ Features
-
imagetool: auto-compute small dask arrays (4b10312)
When loading data into the imagetool, if the data is a dask array and its size is below a certain threshold (configurable via
erlab.interactive.options["io/compute_threshold"]or the settings GUI), the data will be automatically computed into memory. Default threshold is 2048 MB.Additionally, adds a "Load Into Memory" action to the
Filemenu in ImageTool only visible for chunked arrays which calls.compute()on the data when triggered. -
io.plugins.erpes: cache .zip files as HDF5 files for faster loading (412fdc4)
When loading a
.zipfile, cache it as an.h5file in a hidden cache directory. This speeds up subsequent loads of the same file. Also, DA maps are now always loaded as chunked (dask) arrays, improving scalability for large data. -
manager: show child tools (ff1f9b1)
When opening analysis tools (e.g.,
dtool,ktool, ...) from an imagetool in the manager, the child tools are now displayed in the manager as well. When saving and loading the workspace, the state of these child tools is also preserved.This change also enables the user to cherry-pick which tools to save when saving the workspace, or to load only a subset of tools from a saved workspace.
Note that this change accompanies many changes across the whole interactive module under the hood. Although workspaces saved with older versions should still be loadable, workspaces saved with this version will not be loadable in older versions, with ambiguous error messages.
-
interactive: add
show_tracebackutility function that displays error messages with highlighted tracebacks (6798f83) -
manager: enable reindexing tools (62b41a4)
Adds a new action to reset all indices of ImageTools in the manager in the order they appear.
-
manager: enhance integration with Jupyter notebooks (69ef2af)
Adds a new magic command
%watchto monitor and sync data between ImageTool manager and Jupyter notebooks. This feature allows users to easily update data in the notebook when changes are made in the ImageTool window and vice versa, facilitating a smoother workflow for data analysis and visualization.Also adds a new function,
erlab.interactive.imagetool.manager.fetchwhich allows users to fetch a copy of the data in a specific ImageTool window in the manager by its index. -
utils.hashing: add utilities for hashing xarray DataArrays (#172) (4fc1f5f)
Adds a new module that provides
fingerprint_dataarray, a function to generate a unique fingerprint for xarray DataArrays. This is useful for quickly comparing data and checking for changes.
🐞 Bug Fixes
-
io.plugins.maestro: fix concurrent access to cache dir (21f5df8)
-
manager: update icons in menubar on system appearance change (eb357a3)
-
io: make igor datatree backend compatible with xarray 2025.9.1 (8d8eab5)
-
manager: improve compatibility with numpy <2.3 (9019613)
Note that from this version, the ImageTool manager is no longer compatible with previous versions of
erlab. -
io: suppress xarray warnings due to new defaults introduced in pydata/xarray#10062 (#175) (2f1cd64)
⚡️ Performance
-
manager: micro-optimizations to file loading mechanism (be1c624)
-
explorer: micro-optimization for data explorer rendering, might be effective on windows (0f6ef67)
♻️ Code Refactor
-
imagetool: add icons for some menu actions and buttons (b232640)
-
explicitly remove support for Qt5 (995c96b)
-
io: use dask for parallel loading (081c706)
This commit changes the parallel loading mechanism from
joblibtodask. Theparallel_kwargsattribute for loaders are now ignored. In order to configure parallel loading, users should set up thedaskclient accordingly. -
manager: allow using the
Enterkey (Returnon macOS) to open selected items (83ef7bc) -
manager: set workspace file default extension to
.itwsto avoid confusion with regular HDF5 files (6455528) -
new ImageTool Manager icon for macOS (c15ce26)
-
io.plugins.erpes: add new temperature sensors (b56f2b0)
-
use pydantic for user configuration handling (#179) (252bf14)
Changed the internal implementation of ImageTool user configuration handling, making future maintenance easier.
-
utils.formatting: make some private formatting functions public (da28dd5)
[main beab9fb] bump: version 3.14.1 → 3.15.0
3 files changed, 3 insertions(+), 3 deletions(-)