Recent Releases of https://github.com/kmnhan/erlabpy

https://github.com/kmnhan/erlabpy - v3.14.0

v3.14.0 (2025-08-12)

✨ Features

  • imagetool: add cursor color customization (c90b52d)

Adds a new dialog that can be used to customize the colors of cursors in the ImageTool. This allows users to set specific colors for each cursor, and also allows sampling cursor colors from colormaps.

  • imagetool: add toggle action for cursor visibility (c2a6640)

Allows users to toggle the visibility of cursors. The new action is located in the View menu, and can be accessed with the keyboard shortcut Shift + V.

  • plotting.bz: add plot_bz function for plotting arbitrary 2D Brillouin zones given the basis vectors (11fa5a8)

  • interactive: implement user customization options for interactive tools (6af26f3)

Users can now customize various default settings related to ImageTool, such as the default cursor color and colormap. The options can be modified from a new preference menu option in the menu bar of ImageTool and ImageTool manager. The changes are saved and restored across sessions.

🐞 Bug Fixes

  • imagetool: fixes cursor removal resulting in incorrect autorange behavior (240c29e)

  • imagetool: fix selection of cropped data with manual limits (55cd311)

  • io.plugins.erpes: fix loading incomplete 2-motor scan (6de4558)

Fixes an issue where incomplete 2-motor scans with nan values in datetime coordinates failed to load.

  • interactive.colors: automatically load all colormaps when given cmap is not found (7bdf47d)

♻️ Code Refactor

  • imagetool: improve robustness of dialog management (f23bfda)

Contains some internal changes to dialog creation and garbage collection, avoiding exec(). Users should not notice any difference in functionality.

  • plotting.annotations: enhance mark_points function with additional options (84e80a1)

  • interactive: include stack trace in error dialogs for better debugging (1c59997)

  • plotting.annotations: remove seldom used label_subplots_nature function (28150fc)

  • remove unused private functions (59734d1)

  • io.utils: deprecate wrapper functions for xarray I/O (a1d740b)

Deprecates open_hdf5, load_hdf5, save_as_hdf5, and save_as_netcdf in favor of direct xarray methods. Use xarray.open_dataarray and xarray.DataArray.to_netcdf directly for better compatibility and performance.

[main 5dfcb6a] bump: version 3.13.0 → 3.14.0 3 files changed, 3 insertions(+), 3 deletions(-)

- Python
Published by github-actions[bot] 7 months ago

https://github.com/kmnhan/erlabpy - v3.13.0

v3.13.0 (2025-07-18)

✨ Features

  • interactive.explorer: improve open in finder functionality (8571106)

On macOS and windows, using the open in finder/explorer functionality now also highlights the selected file in the file manager instead of just opening the directory.

  • interactive.explorer: add multiple tabs to data explorer (04bfcdf)

The data explorer is now tabbed, allowing users to open and manage multiple directories simultaneously.

  • interactive.utils: enhance IconButton to accept additional icon customization options (1dee58b)

  • imagetool.manager: enhance data replacement logic (#153) (cf3005a)

The replace argument for itool now supports negative indices to replace the newest ImageTool window, and allows for replacing the next index if it has not yet been created. For example, if you have 2 windows open (indices 0 and 1), you can use replace=-1 to replace the newest window (index 1) or replace=2 to create a new window if it does not exist yet.

  • io.igor: add support for saving DataArrays to Igor Pro binary files (#152) (9207cde)

    • Implemented save_wave function in erlab.io.igor to save xarray DataArray objects as Igor Pro binary files (.ibw).
    • Adds a new dependency: igorwriter

🐞 Bug Fixes

  • io.plugins.da30: use libarchive-c only if it is correctly installed (017685f)

Improper installation of libarchive-c can lead to TypeError upon import. This change places the import of libarchive inside a try-except block to handle such cases gracefully, ensuring that the code falls back to using the built-in zipfile module if libarchive is not available or improperly installed.

  • io: remove alias for da30 and improve documentation (ea5ae2b)

♻️ Code Refactor

  • interactive.explorer: refactor into submodule (6313bbc)

  • interactive.explorer: misc. edits for future improvements (a6113ca)

[main af8923c] bump: version 3.12.1 → 3.13.0 3 files changed, 3 insertions(+), 3 deletions(-)

- Python
Published by github-actions[bot] 7 months ago

https://github.com/kmnhan/erlabpy - v3.12.1

v3.12.1 (2025-07-04)

🐞 Bug Fixes

  • io.plugins.merlin: take energy step from data attributes (84bc6b9)

Fixed and swept mode scans have random numerical errors in the start & step of the energy axis. The error of the step accumulates over the scan, effectively resulting in a tiny renormalization of the energy axis. We choose to ignore the energy axis information contained in the wave, and take the step from the attributes instead.

♻️ Code Refactor

  • io.plugins.merlin: do not subtract BL Energy from eV for Live XY and Live Polar scans (379fc8d)

The BL Energy attribute is not reliable for Live XY and Live Polar scans, so we just take the raw energy values like Igor Pro does.

[main 79f79a2] bump: version 3.12.0 → 3.12.1 3 files changed, 16 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] 8 months ago

https://github.com/kmnhan/erlabpy - v3.12.0

v3.12.0 (2025-06-29)

✨ Features

  • io: allow loading single-wave .itx files using xarray.open_dataarray (c5a0d59)

  • imagetool: allow more color options to be passed to the ImageTool constructor (983b7ab)

Adds boolean flag high_contrast and numbers vmin and vmax to the ImageTool constructor.

  • imagetool.manager: add duplicate functionality (f635236)

ImageTool windows in the manager can now be duplicated from the right-click context menu.

  • imagetool.manager: replace data in existing ImageTool manager windows (a86b64b)

Adds a new function erlab.interactive.imagetool.manager.replace_data that allows replacing the data in existing ImageTool manager windows. Also adds a new argument replace to the itool function which takes a list of indexes of existing ImageTool manager windows to replace their data.

  • io.dataloader: add new method pre_combine_multiple method for data pre-processing (91b7455)

Adds a new method pre_combine_multiple to the DataLoader class that allows pre-processing multiple data files prior to combining them.

🐞 Bug Fixes

  • analysis.tranform.symmetrize: fix subtract behavior to produce properly antisymmetrized output (#150) (b00625c)

  • goldtool: fix potential segfault by copying instead of supplying a pointer (5e3a812)

  • imagetool.manager: do not override recent directory and loader name for already open data explorer (e82c73b)

  • imagetool: preserve color levels when reloading compatible data (5948c56)

  • imagetool: keep color related settings when opening in new window from existing tool (96dfa7a)

  • imagetool: keep visible colorbar on unarchive or reload (1f3af1c)

  • imagetool.manager: fix tools not showing on windows (4e8f8a8)

  • io.plugins.merlin: fix broken energy axis while concatenating non-dither mode motor scans (861e68f)

  • analysis.fit.models: allow StepEdgeModel to be used in composite models (77fb4e6)

♻️ Code Refactor

  • imagetool.manager: improve server connection handling (7989b5d)

[main e77180d] bump: version 3.11.1 → 3.12.0 3 files changed, 3 insertions(+), 3 deletions(-)

- Python
Published by github-actions[bot] 8 months ago

https://github.com/kmnhan/erlabpy - v3.11.1

v3.11.1 (2025-05-28)

🐞 Bug Fixes

  • io.plugins.snu1: change wrong configuration value (a089d3a)

[main a4577dd] bump: version 3.11.0 → 3.11.1 3 files changed, 8 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] 9 months ago

https://github.com/kmnhan/erlabpy - v3.11.0

v3.11.0 (2025-05-28)

✨ Features

  • imagetool: add "Edit Coordinates" option (24e8875)

Adds a new feature to ImageTool that allows users to edit the coordinates directly. The new dialog can be accessed via Edit Coordinates in the Edit menu.

  • io.igor: add functions to read igor text files (#142) (1075b1e)

Also adds a data loader plugin for the spin-ARPES setup (system 1) at Seoul National University.

  • imagetool.manager: add check for invalid python identifiers when storing data with iPython (f3bf529)

  • io: add data loader for ALS BL10.0.1 HERS (4945fe7)

🐞 Bug Fixes

  • imagetool: preserve coordinate order displayed in repr (d54462c)

  • imagetool.manager: improve taskbar grouping on Windows (ae86938)

  • interactive: correctly show exceptions raised during initializing interactive tools (75fd45e)

  • imagetool: correctly display error message for undefined selection code in 2D data (6a1b276)

  • analysis.image: allow N-dimensional input to 2D curvature (83048b9)

Allow N-dimensional input to 2D curvature function. The curvature is computed for the first two dimensions.

[main 4102bd2] bump: version 3.10.2 → 3.11.0 3 files changed, 9 insertions(+), 3 deletions(-)

- Python
Published by github-actions[bot] 9 months ago

https://github.com/kmnhan/erlabpy - v3.10.2

v3.10.2 (2025-05-20)

🐞 Bug Fixes

  • io.dataloader: fix concatenation of multiple files (#139) (0f16d96)

Reverts the behavior of the concatenation of multiple files, fixing failures while loading multidimensional motor scans.

Also adds support for data across multiple files with some data missing non-dimensional coordinates.

  • imagetool.manager: set xarray option keep_attrs to True by default in console (330aca9)

♻️ Code Refactor

  • io.plugins.erpes: add 'laser_power' to coordinate attributes (#140) (0b86283)

  • remove deprecated direct comparison of uncertainties (c237a4d)

[main c0d69a1] bump: version 3.10.1 → 3.10.2 3 files changed, 5 insertions(+), 3 deletions(-)

- Python
Published by github-actions[bot] 9 months ago

https://github.com/kmnhan/erlabpy - v3.10.1

v3.10.1 (2025-05-01)

🐞 Bug Fixes

  • io.plugins.merlin: load motor position file as string to handle empty lines and trailing spaces (#136) (7305f8f)

[main 058ae67] bump: version 3.10.0 → 3.10.1 3 files changed, 8 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] 10 months ago

https://github.com/kmnhan/erlabpy - v3.10.0

v3.10.0 (2025-05-01)

✨ Features

  • dtool: add fillna() to generated code for input data with missing values (fc1ad89)

  • imagetool: add IPython magic commands for ImageTool integration (470e0b4)

Adds a new IPython magic command %itool for convenient integration of ImageTool with IPython and Jupyter notebooks. Load the extension using %load_ext erlab.interactive and run %itool? to see available commands.

  • imagetool: enable directly opening tools with cropped data (d6bf78a)

A new feature has been added to the imagetool that allows users to open the tool with cropped data directly. When holding down the Alt key (Option on Mac) while in the right-click menu of the image, relevant menus will automatically work with the data cropped to the currently visible range.

  • explorer: show the name of the current directory in data explorer (7262b4c)

  • imagetool: add edge correction menu (fb47f1b)

Adds a new menu item that allows correcting the Fermi edge by loading a polynomial fit result from a file saved from goldtool.

  • goldtool: add button to save polynomial fit to file (94422b1)

  • interactive.utils: add functions for saving and loading fit results from the GUI (30caff2)

🐞 Bug Fixes

  • imagetool: fix centered normalization and reverse colormap not being applied when loading or unarchiving (5626509)

  • imagetool: resolve undesired y axis autoscaling of line plots when resizing unrelated axes (a089c8b)

  • imagetool: resolve associated coords not updating on data reload (66c44f5)

Fixes associated coordinates limits not being updated when the data is reloaded.

  • plotting: fix color limits not being autoscaled when passing an iterable of norms to plot_slices (fbfd3ec)

⚡️ Performance

  • goldtool: do not apply correction if not required (6276883)

Greatly improves the performance of spline and polynomial fitting in goldtool by correcting data just in time.

♻️ Code Refactor

  • imagetool: improve error messages for invalid input (90d3461)

  • manager: add internal function to retreive recent directory (intraprocess only) (5d5cf96)

[main a38b330] bump: version 3.9.0 → 3.10.0 3 files changed, 23 insertions(+), 3 deletions(-)

- Python
Published by github-actions[bot] 10 months ago

https://github.com/kmnhan/erlabpy - v3.9.0

v3.9.0 (2025-04-16)

✨ Features

  • io.dataloader: implement loader-based parallel keyword arguments (ea8cfc6)

Allows plugins to pass different keyword arguments to joblib.Parallel by setting the parallel_kwargs class attribute.

  • ktool: set default angle offsets to coordinate values (a8115d0)

  • ktool: show current configuration in KspaceTool GUI (907aeb9)

  • analysis.image: add function to remove energy-independent 'stripe' artifacts (#122) (028239e)

🐞 Bug Fixes

  • io.dataloader: enhance value formatting for native datetime coordinates in summary (f79bce5)

  • io.plugins.erpes: fix summary generation (598fb2d)

  • utils.formatting: improve value formatting for various types and enhance datetime handling (7e34614)

  • ktool: properly set initial bounds and resolution (5abf988)

  • ktool: expand offset spin box range from ±180 to ±360 degrees (6895214)

  • qsel: preserve non-averaged coord in multidimensional associated coordinates (#127) (44ceb7e)

Fixes an issue where averaging over a dimension with DataArray.qsel() or DataArray.qsel.average() with multidimensional associated coordinates would average the coordinates over all dimensions instead of averaging over just the specified dimension.

  • utils.formatting: properly format numpy datetime64 objects (1c74983)

⚡️ Performance

  • io.plugins.erpes: default to threading (ebfc527)

  • io.plugins.da30: use libarchive-c library if it is installed when loading DA30 zip files (6b9369f)

♻️ Code Refactor

  • kspace: do not write offset attributes unless explicitly specified (613820f)

  • io.plugins.erpes: promote waveplate angle attributes to coordinates (6920528)

[main 12cc68b] bump: version 3.8.4 → 3.9.0 3 files changed, 13 insertions(+), 3 deletions(-)

- Python
Published by github-actions[bot] 10 months ago

https://github.com/kmnhan/erlabpy - v3.8.4

v3.8.4 (2025-04-09)

🐞 Bug Fixes

  • analysis.transform: correct symmetrize function to return full data (7ad76db)

[main 175c343] bump: version 3.8.3 → 3.8.4 3 files changed, 8 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] 11 months ago

https://github.com/kmnhan/erlabpy - v3.8.3

v3.8.3 (2025-04-09)

🐞 Bug Fixes

  • analysis.fit.minuit: properly support composite models (64b31a6)

  • qshow.fit: support interactively plotting components for concatenated fit results (6bec175)

  • analysis.transform.symmetrize: keep original coordinate direction in symmetrization (be255c2)

  • imagetool.manager: ensure console and explorer are closed on main window exit (d39360d)

  • analysis.transform.symmetrize: correct full mode symmetrization (e21aa3f)

♻️ Code Refactor

  • analysis.fit: add broadened Fermi-Dirac model without linear background (4c4552d)

[main a1bbddd] bump: version 3.8.2 → 3.8.3 3 files changed, 11 insertions(+), 3 deletions(-)

- Python
Published by github-actions[bot] 11 months ago

https://github.com/kmnhan/erlabpy - v3.8.2

v3.8.2 (2025-03-25)

🐞 Bug Fixes

  • analysis.transform.symmetrize: fix compatibility with data including NaN (ce173ce)

  • formatting: make float formatting use scientific notation for very small values (83843a0)

  • plugins.erpes: promote more attributes to coords (c2c066a)

  • dataloader: allow datetime and callable objects in additional_coords (732288f)

  • imagetool: update associated coords on show and reload; ensure float64 type for associated coordinates (1958b80)

  • qsel: allow passing arrays to simultaneously select multiple indices (a5c987b)

DataArray.qsel now supports collection arguments. For example, actions like darr.qsel(x=[1, 2, 3], x_width=2) now works properly.

  • analysis.fit.functions: allow passing arrays to any argument (ffe4914)

⚡️ Performance

  • imagetool.manager: improve server responsiveness (#117) (255c04f)

Changes the internal detection mechanism for running manager instances to be more reliable, along with some server side micro-optimizations.

♻️ Code Refactor

  • kspace: hide progress messages during momentum conversion (9eab40c)

Hides the printed messages during momentum conversion by default. The messages can be enabled by passing silent=False to DataArray.kspace.convert.

  • imagetool.fastslicing: fix type signature ordering (a409322)

[main 94881cc] bump: version 3.8.1 → 3.8.2 3 files changed, 13 insertions(+), 3 deletions(-)

- Python
Published by github-actions[bot] 11 months ago

https://github.com/kmnhan/erlabpy - v3.8.1

v3.8.1 (2025-03-11)

🐞 Bug Fixes

  • fit: allow convolution on piecewise evenly spaced domain (0d2c7e3)

⚡️ Performance

  • utils.array: micro-optimizations for uniformity check (4d4da4d)

[main 642bec3] bump: version 3.8.0 → 3.8.1 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] 12 months ago

https://github.com/kmnhan/erlabpy - v3.8.0

v3.8.0 (2025-03-11)

✨ Features

  • kspace: add method to convert between experimental configurations (7a426a8)

Adds a new method DataArray.kspace.as_configuration that allows the user to easily correct data loaded in the wrong configurations. This is useful for setups where the experimental geometry can be changed.

  • io.plugins: add mbs plugin for setups based on MB Scientific AB analyzers (#112) (43e454b)

  • imagetool: add Symmetrize dialog (4ebaeab)

  • imagetool.dialogs: enhance CropToViewDialog with dimension selection and validation (6394121)

  • imagetool: add Average dialog for averaging data over selected dimensions (2e81aec)

  • imagetool: include rotation angle in rotation transform suffix (2842c5f)

  • imagetool.manager: add new action to refresh ImageTool data from the file it was loaded from. (d822f73)

When performing real-time data analysis, it is often necessary to update the data in the ImageTool from the file it was loaded from. This commit adds a new Reload Data action to the right-click context menu of the ImageTool manger. The action is only visible when the data can be properly reloaded.

  • imagetool: retain cursor info when loading new data that is compatible with the current data (917851f)

  • analysis.gold: gold.poly now returns a fit result Dataset instead of a lmfit modelresult. (ff224e7)

  • analysis.gold: add background slope option for Fermi edge fitting (513e531)

  • io: allow temporary overriding of loader properties (#101) (bd4c50b)

Adds a new context manager, erlab.io.extend_loader, for temporarily overriding data loader behaviour.

This is especially useful for data across multiple files, where the user can specify additional attributes to treat as coordinates, allowing them to be concatenated.

  • explorer: add image preview and fine-grained loading control (dca8fcb)

  • imagetool: implement non-dimension coordinate plotting (48eac24)

1D Non-dimension coordinates associated with a data dimension can now be plotted alongside 1D slices on a secondary axis.

For instance, if an ARPES map has a temperature coordinate that varies for each mapping angle, the temperature coordinate can be plotted as a function of angle.

The plot can be toggled in the added item inside the View menu of the menu bar in ImageTool.

  • add accessor method for averaging over dimensions while retaining coordinates (90d28fb)

Adds DataArray.qsel.average, which takes dimension names and calls DataArray.qsel with the bin widths set to infinity. Unlike DataArray.mean, the new method retains coordinates associated with the averaged dimension.

  • analysis.fit.functions: make several fitting functions xarray-aware (53b3688)

  • utils.array: add broadcast_args decorator for DataArray broadcasting (76149b9)

Adds a new decorator that enables passing DataArrays to functions that only accepts numpy arrays or always returns numpy arrays, like numba-accelerated functions and some scipy functions.

  • analysis.transform: add symmetrize (#97) (aefb966)

Adds a new method erlab.analysis.transform.symmetrize for symmetrizing data across a single coordinate.

🐞 Bug Fixes

  • imagetool: center rotation guidelines on cursor position upon initialization (18a7114)

  • io.plugins.kriss: support tilt compensated angle maps (0229ea2)

  • io: enforce native endianness for Igor Pro waves (#114) (92fe389)

Data loaded from Igor Pro waves will now be converted to have native endianness. Some old data were loaded in big-endian by default, causing incompatibility with several numba functions, with ambiguous error messages.

  • io.plugins.kriss: properly assign rotation axes names (3dcb2ae)

  • imagetool.dialogs: make new windows opened within data transformation dialogs forget file path information (7a012cd)

  • imagetool: properly handle integer coordinates, closes #94 (5f0cd36)

  • imagetool: correct 1D data axis padding (68f59e9)

  • imagetool: allow loading data saved with non-default colormap (#102) (c476be2)

  • io.dataloader: preserve darr name when loading without values (3310ed6)

  • imagetool: allow data with constant coordinates (6ed4f2b)

  • imagetool.manager: disable scrolling in image preview (bd77e8d)

  • io.plugins.da30: zero DA offset for non-DA lens modes (#96) (a3bdf84)

♻️ Code Refactor

  • move fitting accessors to xarray-lmfit (#110) (9106cef)

DataArray.modelfit and Dataset.modelfit are deprecated. The functionality has been moved to the xarray-lmfit package, and can be accessed via DataArray.xlm.modelfit and Dataset.xlm.modelfit as a drop-in replacement.

  • ktool: adjust default lattice parameter spinbox step to 0.1 for finer adjustments (d7cba80)

  • improve error message for missing hvplot package (a0c2460)

  • utils.array: simplify decorators for 2D array checks (7275e2e)

[main 8902951] bump: version 3.7.0 → 3.8.0 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] 12 months ago

https://github.com/kmnhan/erlabpy - v3.7.0

v3.7.0 (2025-02-14)

✨ Features

  • imagetool: add 'Crop to View' functionality (ab6976b)

Adds new menu option that crops the data to the currently visible axes limits.

  • explorer: remember scroll location when selecting a different file (ae58268)

  • imagetool: reimplement axis linking logic (8f8648c)

Limits for all axes that correspond to the same dimension are now shared.

Furthermore, view limits are now also shared across linked tools.

  • io.dataloader: display progress bar when loading data from multiple files (#91) (4d3a704)

A progress bar is now displayed by default when loading data that spans multiple files. The visibility of the progress bar can be controlled with the newly added progress argument to erlab.io.load.

🐞 Bug Fixes

  • imagetool: improve manual range handling and auto range behavior (4864129)

  • imagetool: adjust bin spinbox range to include maximum data shape (701e189)

  • imagetool.manager: resolve exceptions that sometimes appear on initialization (04c23ba)

  • imagetool.manager: ensure compatibility with lazy-loaded data (6d57e13)

  • analysis.gold: fix incorrect normalization for Fermi edge fits and add resolution parameter (1fe773d)

  • analysis.fit.functions.general: properly normalize convolution kernel for small sigma (390769e)

  • ktool: resolve incompatibility with hv-dependent data (#88) (472e98e)

⚡️ Performance

  • analysis.fit.models.FermiEdgeModel: micro-optimizations related to EF guessing (afc5c90)

♻️ Code Refactor

  • io.plugins.da30: show error for invalid zip files (4c348e6)

  • goldtool: add initial resolution spinbox (9d8dd8d)

  • analysis.gold.quick_fit: enable resolution plot customization through keyword arguments (a3058e6)

  • io.plugins.da30: support loading unzipped DA30 scans (#89) (eadc676)

[main 567d989] bump: version 3.6.0 → 3.7.0 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.6.0

v3.6.0 (2025-02-03)

✨ Features

  • add support for Python 3.13, closes #58 (df4f479)

  • explorer: add a new interactive tool for browsing file systems (a70b222)

Adds a explorer GUI window that provides a view of the file system with a summary of selected ARPES data files.

The window can be started within ImageTool Manager from the File menu, or as a standalone application with python -m erlab.interactive.explorer.

Closes #83.

  • misc: add function to open directory in system's file manager (7d3db3f)

🐞 Bug Fixes

  • io.exampledata: replace sph_harm deprecated in scipy 1.15.0 with sph_harm_y (eba902c)

  • interactive.utils: ignore all other arguments for separator actions in DictMenuBar (5c94b92)

This fixes unintended text showing alongside menubar separators in some operating systems.

  • imagetool.manager: fix archived files being deleted after a few days (7d93442)

♻️ Code Refactor

  • io.exampledata: update sph_harm usage to match scipy 1.15.0 changes (1dde195)

  • replace direct typing imports with namespace imports (fc2825d)

  • imagetool: update type hints and preload fastbinning module (ab0b3fd)

  • io: improve docs structure by reorganizing namespace (5e2d7e5)

  • io: improve error messages for folders (8d63c09)

[main 567dfc8] bump: version 3.5.1 → 3.6.0 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.5.1

v3.5.1 (2025-01-14)

🐞 Bug Fixes

  • restool: improve parameter guessing and copied code formatting (0b33770)

The temperature and center can now be guessed independently.

♻️ Code Refactor

  • plotting: add literal option for point label formatting in mark_points_outside, consistent with mark_points (db723fd)

  • generalize fomatting DataArray to raw HTML (85c735e)

  • analysis.gold: add plot capability to quick_fit and deprecate quick_resolution (903450b)

Future code shoule use quick_fit with plot=True instead of quick_resolution.

  • ktool: add work function spinbox (31c5ae8)

  • io.dataloader: adds a extensions attribute to data loaders (a819960)

Data loaders can now choose to implement an extensions attribute that returns a set of file extensions supported by the loader. This reduces the possibility of the user trying to load files with a wrong loader and gives informative error messages.

  • io: expose load_krax as public API (3508a0a)

Adds a new function erlab.io.utils.load_krax that can parse MBS deflector maps saved as .krx.

[main 95508a0] bump: version 3.5.0 → 3.5.1 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.5.0

v3.5.0 (2025-01-04)

✨ Features

  • imagetool.manager: implement threaded file loading (feeb06b)

Data are now loaded in the background.

🐞 Bug Fixes

  • plotting: properly expose __all__ (03cdf89)

  • imagetool: inverted state and aspect ratio of axes are now properly restored (321c837)

♻️ Code Refactor

  • imagetool: make imagetool respect the most recently used loader and data directory if opened in the manager (df1d550)

[main d31bbbe] bump: version 3.4.0 → 3.5.0 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.4.0

v3.4.0 (2025-01-02)

✨ Features

  • introduce utils.array.sort_coord_order function (0e694d2)

Sorts coordinates order to be prettier! Sorting now applied in various places such as data loaders, ImageTool, and the qsel accessor.

  • interactive: add restool (fd838b1)

Adds a new interactive tool restool for fitting Fermi-Dirac distributions with a linear background to EDCs averaged over angles. The angle and energy range can be adjusted interactively.

  • imagetool.manager: add integration with IPython (cf346b9)

Adds a new action that stores data with the %store magic command. With this, it is much more easy to import data processed in the manager into jupyter notebook sessions.

  • imagetool.manager: add preview (9fdc63d)

Adds an image preview panel that shows the main image of the selected data.

Also, a new hover preview option can be toggled on to show the preview images when hovering over each item.

🐞 Bug Fixes

  • kspace: properly handle maps with energy given as kinetic (02bce90)

  • io.plugins.erpes: show warning when loading with index is ambiguous (95a88b6)

  • io: fixes loaded data losing their original names (a19f37a)

  • analysis.fit: handle NaN values in linear fit guesses (1aef937)

  • imagetool.manager: fix undefined selection order (4c486e2)

⚡️ Performance

♻️ Code Refactor

  • reorganize interactive module structure (87a6e89)

  • imagetool: add update parameter to apply_func (fd0238d)

  • accessors.kspace: make errors during momentum conversion due to missing coords or attrs more explicit (eb3d01c)

  • imagetool: change argument use_manager to manager in itool() (0929e5c)

  • imagetool: move main window setup from __init__.py to mainwindow.py (0997149)

This refactor enhances maintainability and readability by clearly separating the main window setup logic from the package initialization.

  • imagetool: disable manager by default (34e943f)

This update modifies itool and qshow so that tools are opened in the manager only when use_manager=True is explicitly specified.

To address the inconvenience, a new Move to Manager action with keyboard shortcut Ctrl+Shift+M has been added to the File menu of ImageTool windows opened outside the manager when the manager is running.

  • make sequence type checking function public and move to utils module (0475cfd)

Adds utils.misc.is_sequence_of, which checks if an object is a sequence of elements of the specified type.

  • imagetool: show all axes by default for 4D data (b034477)

  • imagetool: add icons to context menu items that opens a new window (1f548f7)

  • imagetool: streamline window title naming (0f9dcda)

  • replace boilerplate decimal calculation with new utils.array.effective_decimals (7873669)

  • imagetool: initial migration to QAction (7807174)

Mostly internal changes that reduces duplicate code and makes keyboard shortcuts robust.

  • imagetool.manager: refactor console and jitted functions to private modules to improve startup time (280bfd8)

[main d9524c1] bump: version 3.3.0 → 3.4.0 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.3.0

v3.3.0 (2024-12-23)

✨ Features

  • io: improve loader registry repr with descriptions and dynamic formatting (3f43405)

  • io: add descriptions to loaders for better user guidance (7087c04)

  • dtool: add boxcar filter and 1D curvature, along with internal improvements (0bd2b17)

  • analysis.image: add diffn function for nth derivative calculation (a70812f)

Adds a function that calculates accurate n-th order partial derivatives of DataArrays using findiff.

Also, functions that use derivatives including curvature and scaled_laplace now uses properly scaled derivatives from findiff. As a consequence, the output of these functions may be slightly different.

  • analysis.image: add boxcar filter (7475266)

  • analysis.image: add 1D curvature (522d554)

  • io.plugins.erpes: add data loader for our homelab system! (48dcbb4)

  • io.plugins.merlin: allow loading BL4 single file in ImageTool file menu (079914e)

  • io.dataloader: automatically load in parallel with per-loader threshold (33a8c63)

  • imagetool: add support for DataTree objects (c4c03e3)

🐞 Bug Fixes

  • imagetool.manager: fix dark mode handling and focus management in console (ed81f70)

  • imagetool.manager: bind associated tools to the manager (a38cf7f)

With this change, closing an ImageTool window no longer affects tools such as ktool and dtool opened in that ImageTool.

  • imagetool: make dimension order in exported image data from image plot consistent with the GUI (0ee225b)

  • imagetool: fix issue with selection with multiple binned dimensions (121c968)

  • io.dataloader: adjust condition to handle single file loading (d98c71f)

  • io.plugins.da30: update DA30Loader to handle multiple regions in one .pxt file (1ff8b93)

♻️ Code Refactor

  • io: deprecate choosing loaders with their aliases, closes #76 (464ee45)

  • interactive.utils: improve code generation (2b24e08)

  • replace direct imports with module references (b3ca55c)

  • io.nexusutils: defer error message until actually trying to load nexus files (8eec5aa)

[main aa8d3ed] bump: version 3.2.3 → 3.3.0 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.2.3

v3.2.3 (2024-12-19)

🐞 Bug Fixes

  • enforce strict monotonicity check in data loader (513554e)

  • da30: return empty dict instead of None for matches in loader (2d8b8ae)

  • io.dataloader: assign coords also for multifile scan of length 1 (0b14f75)

  • io.plugins.merlin: adjust handling logic for motor scan aborted after one file (1ac25f1)

♻️ Code Refactor

  • io: implement lazy loading (da5244a)

[main ec5a479] bump: version 3.2.2 → 3.2.3 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.2.2

v3.2.2 (2024-12-14)

♻️ Code Refactor

  • update deprecation warnings to FutureWarning for improved clarity (f2d7ae7)

[main 4a60f17] bump: version 3.2.1 → 3.2.2 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.2.1

v3.2.1 (2024-12-14)

🐞 Bug Fixes

  • docs: ensure docstring compatibility with matplotlib 3.10.0 (e881a6b)

[main 2b960f1] bump: version 3.2.0 → 3.2.1 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.2.0

v3.2.0 (2024-12-14)

✨ Features

  • io.dataloader: enhance data combination logic (80f2772)

When given multi-file data with multiple coordinates, the previous behavior was to include every coordinate as a dimension. This is logical for scans such as 4D position-dependent scans, but unnecessary for data like hv and angle dependent scans. Now, the loader will concatenate only along one axis if all motor coordinates are strictly monotonic. - constants: add Bohr radius (f8e4ca2) - imagetool.manager: enable concatenating selected data (44d61ba) - imagetool: add normalization option for 1D plot data (5417a32)

Adds an option to normalize 1D data with its mean to the right-click menu of 1D plots. - add lazy-loader support (e5ec658)

Properly implements SPEC 1 lazy-loading to top-level modules and the analysis module. Users can now directly access submodules after importing the top-level module only:

```

import erlab

erlab.analysis.transform.rotate(...)

``` - imagetool.manager: add console (470808f)

Adds a python console to the manager that can be triggered from the View menu. - imagetool: add keyboard shortcut to close ImageTool window (97a7533) - interactive.imagetool: add info box to manager (0918a5b)

Adds a textbox to ImageTool manager that shows coordinates and attributes of the selected window.

🐞 Bug Fixes

  • kspace: fix broken hv-dependent data momentum conversion (4695583)

Fixes completely wrong implementation of kz-dependent momentum conversion. I can't believe this went unnoticed! - imagetool: remove and reapply filter upon transformation (af54a1d) - imagetool: fix nonuniform data io and cropping (8b538e6) - imagetool: fix wrong cursor position when loading ImageTool state from file (e8191a8) - imagetool: resolve menu widgets losing keyboard focus (90f8868)

⚡️ Performance

  • imagetool.manager: accelerate opening new windows within the manager (d4380b7)
  • delay imports for performance optimization in interactive tools (abac874)

♻️ Code Refactor

  • plotting: update import statements to use erlab.plotting directly and deprecate erlab.plotting.erplot (6a19f6a)

The import convention import erlab.plotting.erplot as eplt is now deprecated. Users should replace them with import erlab.plotting as eplt. - imagetool: streamline namespace handling and improve layout structure (5506f18) - imagetool: move center zero button to context menu (48deb6d) - improve cli interface (34a4db1) - cleanup some function signatures (b04df05) - analysis.fit: enable lazy loading for fit functions (e877e12) - imagetool.manager: add ipython-based console (f0b0adf) - analysis.gold: adjust resolution plot cosmetics (5d4a486) - interactive.colors: minimize number of default colormaps (a4c750c)

Reduces the number of colormaps initially available in ImageTool. All colormaps can be loaded from the right-click menu of the colormap selection widget. - interactive.imagetool: simplify method names for clarity (48d0453)

[main 61c7cef] bump: version 3.1.2 → 3.2.0 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.1.2

v3.1.2 (2024-12-05)

🐞 Bug Fixes

  • plotting: correct axis labels in plot_array_2d (2fa358a)
  • interactive.imagetool: fix selection and io for non-uniform data (5670a15)
  • accessors.kspace: fix binding energy detection (ed26162)
  • interactive.imagetool: show unarchiving message on double click (d3dd3ee)
  • interactive.imagetool: fix saving and loading non-uniform data (73a1d4b)

[main 1f44932] bump: version 3.1.1 → 3.1.2 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.1.1

v3.1.1 (2024-11-28)

🐞 Bug Fixes

  • interactive.imagetool: fix compatibility issues with Windows (8691014)

[main 6700d27] bump: version 3.1.0 → 3.1.1 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.1.0

v3.1.0 (2024-11-28)

✨ Features

  • interactive.imagetool: overhaul manager UI (a2ce551)

Replaced widget-based implemenation with a model/view architecture. As a consequence, the displayed interface looks like a list. The user can now click a selected item to rename it, and drag items to reorder them. Each item now has a dedicated right-click menu. - interactive.imagetool.manager: improve file opening (da3425f)

Implements opening multiple files at once through the open menu of the manager. Also, add support for opening data files by dragging them into the manager window. - interactive.imagetool: add save and load functionality for workspace (a5d38af)

Enables users to save multiple ImageTool windows to a single file using the manager. - interactive.imagetool: show dialog when data is being loaded (5577249) - interactive.imagetool: change manager icon (3e20e63) - interactive.imagetool.manager: add menubar to manager (59326a1) - io.plugins: add summary generation to maestro loader (aa6f5d2) - plotting: add fine-grained control over color limit normalization (46c962f) - interactive.imagetool: open ktool from imagetool (d2cb8a7) - interactive.imagetool: add equal aspect ratio checkbox to right-click menu (d4db0cf) - interactive.imagetool: add crop menu (639749f) - interactive.utils: add qobject that handles mutually exclusive selection comboboxes (33b5f6b) - interactive.imagetool: add rename button to manager (56ac884) - interactive.imagetool: add open in new window option to right-click menu of each plot (8742659) - accessors.general: added qshow.params accessors for fit results (2592e5a)

Calling ds.qshow.params() on a fit result dataset will now plot the coefficient value and errorbars as a function of fit coordinates. - analysis.fit: add Fermi-Dirac distribution to MultiPeakFunction components (65a1e8c) - io.dataloader: add itool button to interactive summary (ba3aa15)

A button that can open the data directly in ImageTool has been added to the interactive summary. The button is displayed when the interactive summary is called while the ImageTool manager is running.

🐞 Bug Fixes

  • io.plugins.lorea: fix file dialog method (4c74105)
  • interactive.imagetool: resolve segfault on save current data (5699fa3)
  • interactive.imagetool: retain axis order when opening dtool and goldtool (e14c9fc)
  • io.plugins.merlin: fix match signature (5586cce)
  • interactive.imagetool: cursor sync for non-uniform coords (4aa1425)
  • io.plugins.maestro: fix wrong temperature attribute (6ed2a70)
  • io.dataloader: allow dimensions without coordinates in output data (752facf)
  • interactive: improve ktool compatibility with manager (4c775cf)
  • interactive.imagetool: fix opening slice in new tool when manager is running (db8e0af)
  • interactive.utils: fix opening with manager in tools (3726049)
  • accessors.general: allow qshow for fit results from multivariable Datasets (f5b88e7)
  • interactive.imagetool: fix wrong decimals for rotation center (3fc3a50)
  • accessors.general: fix component plotting for concatenated fit datasets with multiple models (7d2976d)

⚡️ Performance

  • interactive.imagetool: improve associated tool garbage collection (839dab0)
  • io: implement lazy loading for h5netcdf and nexusformat imports (3f219ae)
  • speed up initial import (d7f3b3c)

Accelerates initial import time by refactoring heavy imports to reside inside functions.

Importing the plotting module no longer automatically imports the colormap packages cmocean, cmasher, and colorcet. The user must add manual import statements. - analysis.interpolate: cache jitted interpolation functions (34521ef) - interactive.imagetool: optimize memory usage by reducing circular references (a675e1a)

♻️ Code Refactor

  • interactive.imagetool: make it easier to show and hide windows in manager (aefc560)
  • interactive.imagetool: use QSharedMemory instead of multiprocessing (234c19f)
  • plotting.general: use matplotlib api instead of xarray plot for 1D (9e38b2c)
  • io.dataloader: improve warning messages and error handling (1ebfa72)
  • interactive: move IconButton to interactive utils and add IconActionButton (e78190f)
  • interactive.imagetool: use HDF5 files instead of pickle to cache tools (be66297)
  • move AxesConfiguration from erlab.analysis.kspace to erlab.constants (3593d41)
  • plotting: streamline igor CT loading (e1e8baa)
  • io: update type hints for file handling functions to use Iterable (e3caf83)
  • io: streamline file identification logic and add user warnings for multiple file scenarios (05b7e6c)
  • io: replace several os.path calls with pathlib (bdfdd22)
  • dataloader: make some methods private (31cf008)

This makes all dataloader methods and attributes that are not meant to be overriden private. Affected methods and properties are combine_multiple, generate_summary, and name_map_reversed. - accessors.kspace: cleanup namespace (7af0d66)

Withdraws some internal properties and methods from public API. - directly import _THIS_ARRAY from xarray core (3bd72ec) - interactive.imagetool: improve dialog code structure (5a16686) - interactive.imagetool: move dialogs into new dedicated module (a90a735) - interactive.imagetool: improve error messages for invalid data (a715ba1)

[main d94b1b7] bump: version 3.0.0 → 3.1.0 2 files changed, 2 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] about 1 year ago

https://github.com/kmnhan/erlabpy - v3.0.0

v3.0.0 (2024-11-06)

Breaking Changes

  • Deprecated module erlab.io.utilities is removed. Use erlab.io.utils instead. (e189722)
  • Deprecated module erlab.interactive.utilities is removed. Use erlab.interactive.utils instead. (af2c81c)
  • Deprecated module erlab.characterization is removed. Use erlab.io.characterization instead. (8d770bf)
  • Deprecated module erlab.analysis.utils is removed. Use erlab.analysis.transform.shift and erlab.analysis.gold.correct_with_edge. (0b2ca44)
  • Deprecated alias slice_along_path in erlab.analysis is removed. Call from erlab.analysis.interpolate instead. (305832b)
  • Deprecated aliases correct_with_edge and quick_resolution in erlab.analysis are removed. Call from erlab.analysis.gold instead. (075eaf8)
  • Removed deprecated aliases load_igor_ibw and load_igor_pxp. Use xarray.open_dataarray and xarray.open_dataset instead. (7f07ad2)
  • The default attribute name for the sample temperature is changed to sample_temp from temp_sample. This will unfortunately break a lot of code that relies on the key temp_sample, but will be easy to refactor with find and replace. (32e1cd5)
  • All dataloaders must now add a new keyword argument to load_single, but implementing it is not mandatory.

Also, dataloaders that implements summary generation by overriding generate_summary must now switch to the new method.

See the summary generation section in the updated user guide.

Furthermore, the isummarize method is no longer public; code that uses this method should use summarize instead.

The usecache argument to the summarize method is no longer available, and the cache will be updated whenever it is outdated. (0f5dab4)

Features

  • io.igor: enable loading experiment files to DataTree (1835be0)

Added methods to the backend to allow using xarray.open_datatree and xarray.open_groups with Igor packed experiment files. Closes #29 - add qinfo accessor (eb3a742)

Adds a qinfo accessor that prints a table summarizing the data in a human readable format. Closes #27 - interactive.kspace: pass lattice parameters and colormap info to ktool (6830af3)

Added the ability to pass lattice vectors and colormaps to ktool. - interactive.kspace: add circle ROI to ktool (304e1a5)

Added a button to the visualization tab which creates a circle ROI. The position and radius can be edited by right-clicking on the roi. - interactive.colors: add zero center button to right-click colorbar (c037de1) - interactive.imagetool: add .ibw and .pxt files to load menu (73c3afe) - io.dataloader: allow passing rcParams to interactive summary plot (a348366) - io.dataloader: implement automatic summary generation (0f5dab4)

It is now much easier to implement a summary generation mechanism. This commit also adds a new keyword argument to load_single that can greatly speed up summary generation. - io.dataloader: support callable objects in additional_attrs (e209499)

Bug Fixes

  • interactive.imagetool: fix copy cursor value for numpy 2 (dc19c82)
  • io.dataloader: retain selected dimension in interactive summary (9d54f8b)
  • accessors.general: keep associated coords in qsel when averaging (03a7b4a)
  • io.dataloader: ignore old summary files (bda95fc)
  • io.plugins.kriss: fix KRISS ibw file match pattern (7ced571)
  • analysis.gold: retain attributes in quick_resolution (504acdc)
  • do not require qt libs on initial import (118ead6)

Code Refactor

  • io.igor: change wave dimension name handling (3e0586a)

Waves with both dim and unit labels provided were given a dim label formatted like dim(unit). This update changes this so that the dim label is just dim, and the unit is inserted to coordinate attrs. - io: remove deprecated module (e189722) - interactive: remove deprecated module (af2c81c) - remove deprecated module erlab.characterization (8d770bf) - analysis: remove deprecated module (0b2ca44) - analysis: remove deprecated alias (305832b) - analysis: remove deprecated aliases (075eaf8) - interactive.imagetool.manager: add prefix to temporary directories for better identification (e56163b) - io.plugins: implement DA30 file identification patterns in superclass (f6dfc44) - io: remove deprecated aliases (7f07ad2) - change temperature attribute name (32e1cd5)

Changes temp_sample to sample_temp for all data loaders and analysis code. - utils.formatting: change formatting for numpy arrays (95d9f0b)

For arrays with 2 or more dimensions upon squeezing, only the minimum and maximum values are shown. Also, arrays with only two entries are displayed as a list. - io.dataloader: disable parallel loading by default (fed2428)

Parallel loading is now disabled by default since the overhead is larger than the performance gain in most cases. - change some warnings to emit from user level (e81f2b1) - io.dataloader: cache summary only if directory is writable (85bcb80) - io.plugins: improve warning message when a plugin fails to load (9ee0b90) - io: update datatree to use public api (6c27e07)

Also bumps the minimum supported xarray version to 2024.10.0. - io.dataloader: make RegistryBase private (df7079e) - io.dataloader: rename loader registry attribute default_data_dir to current_data_dir (d87eba7)

The attribute default_data_dir has been renamed to current_data_dir so that it is consistent with current_loader. Accessing the old name is now deprecated.

Also, the current_loader and current_data_dir can now be assigned directly with a syntax like erlab.io.loaders.current_loader = "merlin".

Performance

  • io.plugins.da30: faster summary generation for DA30 zip files (22b77bf)
  • io.igor: suppress igor2 logging (5cd3a8c)
  • analysis.interpolate: extend acceleration (84daa88)

The fast linear interpolator now allows more general interpolation points like interpolating 3D data on a 2D grid. This means that passing method='linearfast' to DataArray.interp is faster in many cases.

[main 2c41bb1] bump: version 2.12.0 → 3.0.0 2 files changed, 5 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.12.0

v2.12.0 (2024-10-22)

Features

  • interactive.imagetool: add normalization option to View menu (53e2cf2)
  • io.dataloader: allow passing additional arguments to load_single (1652c20)
  • io.plugins: add support for two new beamlines, closes #61 (368263e)

Added plugins with preliminary support for Diamond I05 and ALBA BL20 LOREA. - io: add nexusutils module for working with NeXus files (2532941)

This commit adds a new submodule io.nexusutils that contains utilities for converting NeXus data to xarray data structures.

Bug Fixes

  • erlab.io.plugins.merlin: resolve typo in file dialog methods (39caa99)
  • erlab.accessors.general: make qsel accessor work along dimensions with no coordinates (7f0d259)
  • interactive.imagetool: avoid errors on termination (9fd044b)

Code Refactor

  • io: return path-like objects instead of strings in get_files (2eb9166)

[main 4b366a0] bump: version 2.11.2 → 2.12.0 2 files changed, 24 insertions(+), 1 deletion(-)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.11.2

v2.11.2 (2024-10-14)

Bug Fixes

  • io.dataloader: fix coordinate_attrs not being propagated (278675b)

[main f26621d] bump: version 2.11.1 → 2.11.2 2 files changed, 7 insertions(+), 1 deletion(-)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.11.1

v2.11.1 (2024-10-14)

Code Refactor

  • add app icon for imagetool manager (e1cbcd2)

[main 7becb7c] bump: version 2.11.0 → 2.11.1 2 files changed, 7 insertions(+), 1 deletion(-)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.11.0

v2.11.0 (2024-10-13)

Features

  • io.dataloader: add new argument that can control combining (bdec5ff)

Adds a new parameter combine to io.load. If False, returns a list of post-processed files without attempting to concatenate or merge the data into a single object. If True, retains the current default behavior.

Bug Fixes

  • imagetool: allow coords of any dtype coercible to float64 (4342ebc)
  • io.dataloader: properly handle combining multi-axis scans (2cd22c7)

Code Refactor

  • io.plugins: update type hints (54d0c5d)
  • remove unused imports (f1e35de)
  • interactive: add informative error message for missing pyqt (1347a02)
  • io.plugins: add warning when plugin load fails (ed5b184)

[main 8e66420] bump: version 2.10.0 → 2.11.0 2 files changed, 21 insertions(+), 1 deletion(-)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.10.0

v2.10.0 (2024-10-08)

Features

  • io.plugins: add loader for beamline ID21 ESM at NSLS-II (c07e490)

This commit adds a new data loader for beamline ID21 ESM at NSLS-II, Brookhaven National Laboratory. - io.dataloader: add formatters (2ee9a4a)

A new attribute named formatters and a new method get_formatted_attr_or_coord has been added to loaders. This allows custom per-attribute pretty-printing behavior. - io: add parallel argument to load (88cd924) - io: add xarray backend for igor files (1fe5ca5)

.pxt, .pxp, and .ibw files can now be opened with xarray methods such as xr.open_dataset and xr.open_dataarray. See the updated user guide for more information.

Bug Fixes

  • io.dataloader: properly reorder coordinates (3ebfb0f)

Coordinate order was broken for loaders which assign coordinates in inherited post_process. This is now fixed, and returned data will be consistently ordered with respect to the mapping, with the dimension coordinates coming first. - erlab.io.plugins.maestro: temporary fix for xarray issue (c2d04a3) - io.plugins.da30: properly handle output types (6297aba)

The DA30 loader now tries to return a dataset from .zip files only when there are no coordinate conflicts. In the case of conflicts, the loader will return a DataTree.

Also, single region DA30 .pxt files will now return a DataArray consistent with the equivalent .ibw file. - interactive.fermiedge: allow transposed input to fermi edge fitting tool (dcae75e) - interactive.imagetool: retain attrs when exporting slice (1bed572)

When accessing the data of a single slice from the right-click menu of ImageTool, the attributes of the original data are now kept. This allows saved slices or data opened in other tools to retain their attributes. - resolve gui script not working on windows with conda (62253d0) - io.dataloader: clear plot before loading in interactive summaries (21d6dea) - plotting.general: fix plot_slices compatibility with slice object as argument (5948a7b) - io: disable memmapping when loading data (c39da1b)

Memmapping seemed to interfere loading multiple files when called through ipywidgets.

Code Refactor

  • io.utils: use pathlib in get_files (b7a0f5b)
  • io.plugins.merlin: combine ImageTool file menu into single entry (6e28ac2)
  • io: add postprocessing and validation for DataTree objects (3fb3ff5)
  • io: add warning when file is ambiguous (8daabb8)
  • io: remove renaming steps from load_single in multi-file loaders (542f4f2)

Combining before renaming coords should be more straightforward - io: allow missing alpha coord (c9deed4)

Validation checks will not warn about missing detector angle, allowing XPS measurements. - io.dataloader: only allow real file or folder names as input (b9a59cc)

The previous behavior allowed passing f_001.pxt to load f_001_S001.pxt, f_001_S002.pxt... but this was confusing since there is no file named f_001.pxt. This commit disallows such input. - cleanup erplot namespace (007eedb) - io: implement metaclass (e787b1c)

Whenever the identify() method failed to find any files, subclasses had to explicitly raise FileNotFoundError. This resulted in a lot of boilerplate code and ambiguous error messages. Now, all subclasses can just return None in identify() when no files are found. The appropriate error is automatically raised. - io.igor: raise OSError on load fail (6c7a4c4) - move dataloader cell formatting implementation to utils module (0f2cb1c) - io: deprecate calling igor functions from top level namespace (bb8af7c)

Calling erlab.io.load_wave and erlab.io.load_experiment is deprecated. When writing new code, use xarray.load_dataarray and xarray.load_dataset instead.

Performance

  • interactive.imagetool: improve manager speed (891c4ee)

[main 04f06a0] bump: version 2.9.1 → 2.10.0 2 files changed, 6 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.9.1

v2.9.1 (2024-09-03)

Fix

  • ui file compatibility with Qt5 (66c776d)

[main 2cf1ef8] bump: version 2.9.0 → 2.9.1 2 files changed, 7 insertions(+), 1 deletion(-)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.9.0

v2.9.0 (2024-08-30)

Feat

  • interactive.imagetool: add rotation (fdeb8a9)

A rotation dialog has been added to the Edit menu. Rotation guidelines can be overlaid on the main image. - interactive.utils: add rotatable lines that can be rotated by dragging (31b55e5) - analysis.transform: add rotate function (83a2ad8)

Added a new function that can rotate DataArray values using spline interpolation. Previous simple implementations are marked as deprecated. - utils.array: add new functiontrim_na (c628b5b)

This function trims the edges of DataArrays where all values are NaN. - accessors.kspace: add method argument (204073e)

Momentum conversion through the convert() method of the kspace accessor now supports an additional keyword argument method that can be used to choose different interpolation methods supported by scipy.interpolate.RegularGridInterpolator. Note that methods other than 'linear' will take much longer to execute. - analysis.interpolate: add solver args (24be3b0)

FastInterpolator now supports solver and solver_args keyword arguments introduced in scipy 1.13.0. - interactive.colors: implement BetterColorBarItem limit editor (7dd1477)

A new context menu in BetterColorBarItem's viewbox enables manually editing color limits. - analysis.interpolate: implement slicing along a vector (cba8567)

A new function slice_along_vector has been added which enables interpolating through a line defined by a vector and a point. - interactive.imagetool: add goldtool and dtool to menu (33d5e35)

The interactive tools goldtool and dtool are now directly accessible from the right-click menu of 2D images in ImageTool. - accessors.general: add option to qsel.around to disable averaging (5aaed85) - plotting.general: add NonUniformImage functionality to plot_array (86d8c1a)

plot_array can now plot data with unevenly spaced coordinates. It uses matplotlib.image.NonUniformImage with the default interpolation option set to 'nearest'. The resulting plot may be different from xarray.DataArray.plot which uses pcolormesh to generate image plots. - interactive.imagetool: add copy limits to colorbar menu (29c37c4)

Right-clicking on the colorbar will now show a menu which contains a button that copies the current color limits to the clipboard. This is useful when manually adjusting color limits.

Fix

  • interactive.imagetool: properly disconnect signals (dce236f)
  • interactive.imagetool: fix autoscale when loading data (2c12f59)
  • interactive.imagetool: scale spinbox decimals relative to coordinate step size (9a801a5)
  • interactive.utils: update BetterSpinBox width on changing decimals (0a70884)
  • interactive: fix compatibility issue with PySide6 (da5f4af)
  • interactive.imagetool: do not copy code when unnecessary (9131029)
  • accessors.general: qshow now triggers hvplot properly for 1D data (8a84813)
  • interactive.imagetool: make manager socket use default backlog (0ac7f0b)
  • interactive.imagetool: ensure proper socket termination in manager (2cceb27)

Refactor

  • interactive.utils: improve code generation (78c403f)
  • analysis: move shift to transform (08baf05)

The shift function has been moved from utils to transform. Calling from the utils module is now deprecated. - analysis: cleanup namespace (e3e641d)

Three functions that were directly accesible from the erlab.analysis namespace are now deprecated. Import them from their respective modules. - remove deprecated module analysis.utilities (8b79ab5) - analysis.image: add check for NaN in input (095554f)

Derivative functions now check for NaNs in input data and raise a warning.

The interactive derivative tool automatically fills NaNs in the input data with zeros and shows a warning message. - remove unpacking inside np.r_ (6c27864) - improve initial import time (f720973)

[main de5f096] bump: version 2.8.5 → 2.9.0 2 files changed, 24 insertions(+), 2 deletions(-)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.8.6

v2.8.6 (2024-08-07)

Refactor

  • improve initial import time (f720973)

[main 511a2fc] bump: version 2.8.5 → 2.8.6 2 files changed, 7 insertions(+), 1 deletion(-)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.8.5

v2.8.5 (2024-07-31)

Fix

  • plotting.annotations: properly pass keyword arguments in mark_points_outside (2136939)
  • plotting.annotations: expose property label generation to public api (545781d)

[main 17678ef] bump: version 2.8.4 → 2.8.5 2 files changed, 8 insertions(+), 1 deletion(-)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.8.4

v2.8.4 (2024-07-26)

Ci

  • (pre-commit) update ruff hook (709f0d2)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.8.4-alpha.1

v2.8.4-alpha.1 (2024-07-26)

Chore

Ci

  • (semantic-release) change prerelease token to avoid conflict with setuptools-scm (8e0c726)

  • (pre-commit) update config (f242ca0)

  • add pre-release configuration (81a63a5)

  • (rtd) cleanup obsolete environment and requirement files (37d93bc)

  • (pre-commit) pre-commit autoupdate (ea5720d)

updates: - github.com/astral-sh/ruff-pre-commit: v0.5.0 → v0.5.1

  • (github) change schedule (144b554)

Documentation

  • fix typos (e22d200)

  • improve accessor and imagetool docstrings (5371767)

Fix

  • (erlab.plotting.general) improve plot_array keyword versatility (1dc41cd)

Enables additional kwargs with valid data dimensions as the key to be passed onto qsel.

  • (erlab.analysis.gold) fix quick_fit attribute detection (3797f93)

  • (interactive.imagetool) retain window title upon archiving (b5d8aa4)

Refactor

  • (plotting.general) remove LabeledCursor (912b4fb)

We skip the deprecation step since nobody is likely to be using it anyway.

  • (accessors) split submodule (6ed5c03)

Accessors in utils.py has been moved to general.py, so that utils.py only contains utilities for creating accessors.

  • improve type annotations (b242f44)

Style

Test

  • add missing tests (20e7634)

  • (interactive) improve interactive tool test coverage (7f24b81)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.8.3

v2.8.3 (2024-07-08)

Ci

  • (pre-commit) pre-commit autoupdate (4257d0c)

updates: - github.com/astral-sh/ruff-pre-commit: v0.4.10 → v0.5.0

Fix

  • (interactive.imagetool) various fixes related to manager (3d3f55e)

This fix incorporates many changes to the ImageTool and ImageTool Manager. First, the archiving function of the manager now works properly, and tries to clear memory eagerly. When opening data from a file using the GUI, the name of the file will now be displayed in the title bar of the ImageTool. This file name is also propagated to the name displayed in the manager. Furthermore, the archiving and show/hide functionality of the manager has been updated to restore the window geometry automatically. When the user shows or unarchives a hidden or archived window, the previous position of the window is restored. Some icons and the layout of the manager has been modified, and tooltips has been added to the buttons. Also, some unexpected behavior regarding linking has been resolved.

  • (plotting.plot3d) temporarily disable broken monkey patch (220f23f)

  • replace broken signature for dynamic functions (39a3954)

  • (interactive.imagetool) fix broken binning controls on loading fron GUI (0ca5437)

Refactor

  • satisfy type checker (042a7b1)

  • (interactive.imagetool) add batch close button to manager (efc6089)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.8.2

v2.8.2 (2024-07-01)

Chore

  • (deps) pin numpy<2.0 until upstream dependencies are fixed (5b538ba)

Ci

  • (github) allow manual trigger upload (a4c5959)

  • (github) rename workflow file (e3615c4)

  • (github) use single workflow file and test for different Qt libs (cd7d057)

  • (pre-commit) pre-commit autoupdate (1a86288)

updates: - github.com/astral-sh/ruff-pre-commit: v0.4.9 → v0.4.10

Documentation

  • update conda installation instructions (a475543)

  • improve user guide (400080e)

Added some more information in the indexing guide and fixed typos in the curve fitting guide.

Fix

  • (interactive.imagetool) fix crash while linking more than 3 tools (d5f8a30)

  • update resistance loader (6fcf2ab)

Refactor

  • (interactive.imagetool) show error message in GUI when opening file (287a7e8)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.8.2

v2.8.2 (2024-07-01)

Chore

  • (deps) pin numpy<2.0 until upstream dependencies are fixed (5b538ba)

Ci

  • (github) rename workflow file (e3615c4)

  • (github) use single workflow file and test for different Qt libs (cd7d057)

  • (pre-commit) pre-commit autoupdate (1a86288)

updates: - github.com/astral-sh/ruff-pre-commit: v0.4.9 → v0.4.10

Documentation

  • update conda installation instructions (a475543)

  • improve user guide (400080e)

Added some more information in the indexing guide and fixed typos in the curve fitting guide.

Fix

  • (interactive.imagetool) fix crash while linking more than 3 tools (d5f8a30)

  • update resistance loader (6fcf2ab)

Refactor

  • (interactive.imagetool) show error message in GUI when opening file (287a7e8)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.8.1

v2.8.1 (2024-06-21)

Ci

  • (pre-commit) pre-commit autoupdate (856aa0f)

updates: - github.com/astral-sh/ruff-pre-commit: v0.4.8 → v0.4.9

Fix

  • (interactive.imagetool) properly implement caching and linking from GUI (ffacdce)

  • (plotting.general) pass DataArray to func argument to plot_array (ed76e64)

Performance

  • (interactive.imagetool) speedup file loading and saving (a6c869b)

Use pickle to save and load files instead of erlab.io.load_hdf5 and erlab.io.save_as_hdf5.

Test

  • add coverage for QThread (ed74df0)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.8.0

v2.8.0 (2024-06-17)

Documentation

  • update user guide with ImageTool manager (21a2c09)

Feature

  • (erlab.io.plugins.ssrl52) changes to loader (512a89b)

The loader now promotes all attributes that varies during the scan to coordinates. Also, if the energy axis is given in kinetic energy and the work function is inferrable from the data attributes, the energy values are automatically converted to binding energy. This may require changes to existing code. This commit also includes a fix for hv-dependent swept cuts.

  • (erlab.io.dataloader) reorder output coordinates (178edd2)

Coordinates on the loaded data will now respect the order given in name_map and additional_coords, improving readability.

  • (interactive.imagetool) add ImageTool window manager (b52d249)

Start the manager with the cli command itool-manager. While running, all calls to erlab.interactive.imagetool.itool will make the ImageTool open in a separate process. The behavior can be controlled with a new keyword argument, use_manager.

  • (interactive.imagetool) add undo and redo (e7e8213)

Adjustments made in ImageTool can now be undone with Ctrl+Z. Virtually all actions except window size change and splitter position change should be undoable. Up to 1000 recent actions are stored in memory.

  • (interactive.imagetool) remember last used loader for each tool (eb0cd2f)

Fix

  • (interactive.imagetool) fix code generation behaviour for non-uniform coordinates (3652a21)

Refactor

  • (interactive.imagetool) preparation for saving and loading state (eca8262)

Test

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.7.2

v2.7.2 (2024-06-14)

Fix

  • (erlab.io) regression in handling getattr of dataloader (dd0a568)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.7.1

v2.7.1 (2024-06-14)

Ci

  • (github) schedule test runs (b5fa6c8)

  • (pre-commit) pre-commit autoupdate (#42) (a5a2de7)

updates: - github.com/astral-sh/ruff-pre-commit: v0.4.7 → v0.4.8 Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

Fix

  • (interactive.imagetool) Integrate data loaders to imagetool (7e7ea25)

A new property called file_dialog_methods can be set in each loader which determines the method and name that is used in the file chooser window in imagetool.

  • (accessors.kspace) hv_to_kz now accepts iterables (36770d7)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.7.0

v2.7.0 (2024-06-09)

Documentation

  • improve getting started guide (fed2108)

Feature

  • (analysis.gold) add function for quick resolution fitting (2fae1c3)

  • (analysis.fit) Add background option to MultiPeakModel and MultiPeakFunction (2ccd8ad)

Fix

  • (erlab.io.plugins) fix for hv-dependent data (d52152f)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.6.3

v2.6.3 (2024-06-07)

Ci

  • (pre-commit) pre-commit autoupdate (#41) (997e83d)

updates: - github.com/astral-sh/ruff-pre-commit: v0.4.5 → v0.4.7 Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

Fix

  • (erlab.io.plugins) support SSRL hv dependent data (1529b6a)

Refactor

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.6.2

v2.6.2 (2024-06-03)

Fix

  • (interactive.imagetool) fix regression with nonuniform data (67df972)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.6.1

v2.6.1 (2024-05-30)

Fix

  • re-trigger due to CI failure (b6d69b5)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.6.0

v2.6.0 (2024-05-30)

Ci

  • (github) disable parallel testing (fd024f5)

  • (github) enable color output (44071db)

  • (pre-commit) pre-commit autoupdate (acb9c1c)

updates: - github.com/astral-sh/ruff-pre-commit: v0.4.4 → v0.4.5

Documentation

  • add qsel.around to indexing guide (1f95659)

Feature

  • (interactive.imagetool) add bin amount label to binning controls (7a7a692)

  • add accessor for selecting around a point (aa24457)

  • (accessors.fit) add support for background models (550be2d)

If one coordinate is given but there are two independent variables are present in the model, the second one will be treated as the data. This makes the accessor compatible with y-dependent background models, such as the Shirley background provided in lmfitxps.

  • (io) make the dataloader behavior more customizable (4824127)

Now, a new average_attrs class attribute exists for attributes that would be averaged over multiple file scans. The current default just takes the attributes from the first file. This also works when you wish to demote a coordinate to an attribute while averaging over its values. For more fine-grained control of the resulting data attributes, a new method combine_attrs can be overridden to take care of attributes for scans over multiple files. The default behavior is to just use the attributes from the first file.

Fix

  • (plotting) make gradient_fill keep axis scaling (51507dd)

Refactor

  • (analysis.image) add check for 2D and uniform inputs (22bb02d)

  • try to fix synced itool garbage collection (932cc5a)

This only happens in GH actions, and it doesn't happen every time so it's hard to debug.

  • create utils subpackage to host internal methods (3fa2873)

The parallel module is now part of utils, without a compatibiliity layer or deprecation warning since nobody is using the functions from parallel anyway.

  • add deprecation warnings for utilities (5d375b8)

All submodules named utilities.py have been renamed to utils.py for consistency. The old call to utilities.py will still work but will raise a warning. The modules will be removed on 3.0 release.

  • rename erlab.interactive.utilities to erlab.interactive.utils (d9f1fb0)

  • rename erlab.analysis.utilities to erlab.analysis.utils (ed81b62)

  • rename erlab.io.utilities to erlab.io.utils (6e0813d)

  • (io.plugins.merlin) regard temperature as coordinate (2fda047)

- Python
Published by github-actions[bot] over 1 year ago

https://github.com/kmnhan/erlabpy - v2.5.4

v2.5.4 (2024-05-23)

Fix

  • (io.plugins.maestro) load correct beta for non deflector scans (5324c36)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.5.3

v2.5.3 (2024-05-22)

Fix

  • (io.utilities) get_files now only list files, not directories (60f9230)

  • (accessors.fit) add make_params call before determining param names, closes #38 (f1d161d)

  • (analysis.fit) make some models more robust to DataArray input (afe5ddd)

Refactor

  • add loader for ALS BL7 MAESTRO .h5 files (4f33402)

  • (interactive) add informative error message for missing Qt bindings (560615b)

  • (io) rename some internal variables and reorder (76fe284)

Also added a check for astropy in FITS file related utility.

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.5.2

v2.5.2 (2024-05-16)

Ci

  • (github) re-enable parallel tests and tweak coverage (0fd910f)

  • (github) disable .pyc generation (54c7dd1)

  • (codecov) update config path (47a833d)

Documentation

Fix

  • make mathtext copy default to svg (2f6e0e5)

  • resolve MemoryError in prominent color estimation (3bdcd03)

Due to numpy/numpy/#11879 changed the auto method to sqrt. This should also improve memory usage and speed, with little to no impact on the end result.

Test

  • fix clipboard and interactive tests (08d7448)

  • add tests across multiple modules (cc35955)

  • add tests interactive tools and plotting.atoms (a1b5154)

  • add tests for goldtool and dtool (99bac03)

  • increase test speed (031d2e3)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.5.1

v2.5.1 (2024-05-15)

Chore

  • exclude merge commits from semantic release (9179cab)

  • (deps) add dask to optional dependencies (cdc90dd)

  • add coverage configuration (9c1e6a5)

Ci

  • (github) ci changes for testing and coverage (67550d6)

Parallelized tests for gold.poly, setup Qt testing, and added .codecov.yml config file.

  • (github) update codecov script (5cab279)

  • (github) update test script (7dbb384)

  • (pre-commit) pre-commit autoupdate (#34) (acf3dc5)

Fix

Gradient fill disappears upon adding labels

  • (fit.models) wrong StepEdgeModel guess with DataArray input (6778c8d)

Refactor

  • (plotting) code cleanup (aef10e4)

Test

  • fix tests for interactive (57403f7)

  • add tests for analysis.gold (61d4d36)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.5.0

v2.5.0 (2024-05-13)

Chore

Ci

  • (pre-commit) update commit messages (0321ec1)

Documentation

  • make view button point to github (f968c37)

Feature

  • extended interactive accessor (f6f19ab)

The qshow accessor has been updated so that it calls hvplot (if installed) for data not supported by ImageTool. Also, the qshow accessor has been introduced to Datasets. For valid fit result datasets produced by the modelfit accessor, calling qshow will now show an hvplot-based interactive visualization of the fit result.

  • (itool) make itool accept Datasets (f77b699)

When a Dataset is passed to itool, each data variable will be shown in a separate ImageTool window.

  • (analysis.image) add multidimensional Savitzky-Golay filter (131b32d)

Fix

  • (itool) add input data dimension check (984f2db)

  • (analysis.image) correct argument order parsing in some filters (6043413)

  • (interactive) improve formatting for code copied to clipboard (d8b6d91)

Refactor

  • (plotting) update clean_labels to use Axes.label_outer (0c64756)

Unknown

  • Merge pull request #33 from kmnhan/dev-2.5 (dc9a9a8)

2.5 Update

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.4.2

v2.4.2 (2024-05-07)

Fix

  • (ktool) resolve ktool initialization problem, closes #32 (e88a58e)

  • (itool) disable flag checking for non-numpy arrays (da6eb1d)

Unknown

  • Merge pull request #31 from kmnhan/pre-commit-ci-update-config (e3a4a9f)

[pre-commit.ci] pre-commit autoupdate

  • [pre-commit.ci] pre-commit autoupdate (ec62bea)

updates: - github.com/astral-sh/ruff-pre-commit: v0.4.2 → v0.4.3

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.4.1

v2.4.1 (2024-05-03)

Fix

  • (plotting) fix wrong regex in scale_units (d7826d0)

  • fix bug in modelfit parameter concatenation (edaa556)

  • (itool) ensure DataArray is readable on load (5a0ff00)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.4.0

v2.4.0 (2024-05-02)

Chore

  • (deps) update dependencies (37c1b4b)

Numbagg is now an optional dependency.

Documentation

  • improve documentation (8f23f99)

  • improve io documentation (4369d23)

  • fix PyQt version pinning to resolve build failures on Qt6.7 (433ee9e)

Feature

  • (imagetool) add method to update only the values (ca40fe4)

  • add interpolation along a path (7366ec4)

The slice_along_path function has been added to analysis.interpolate, which enables easy interpolation along a evenly spaced path that is specified by its vertices and step size. The path can have an arbitrary number of dimensions and points.

Fix

  • (io) remove direct display call in interactive summary (d44b3a5)

This was causing duplicated plots.

  • (plotting) add some validation checks to plot_array (2e0753c)

The functions plot_array and plot_array_2d now checks if the input array coordinates are uniformly spaced. If they are not, a warning is issued and the user is informed that the plot may not be accurate.

  • (plotting) increase default colorbar size (3208399)

The default width argument to nice_colorbar is changed to 8 points. This ensures visibility in subplots, especially when constrained layout is used.

  • delay interactive imports until called (ad15910)

Refactor

Improve docstring formatting and tweak linter settings

Style

Unknown

  • Merge pull request #30 from kmnhan/pre-commit-ci-update-config (a550367)

[pre-commit.ci] pre-commit autoupdate

  • Merge pull request #28 from kmnhan/dev-2.4 (5d1f8fc)

2.4 Release

  • [pre-commit.ci] pre-commit autoupdate (3c351cc)

updates: - github.com/astral-sh/ruff-pre-commit: v0.4.1 → v0.4.2

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.3.2

v2.3.2 (2024-04-25)

Chore

  • pin PyQt due to tests failing on Qt6.7 (9dee08c)

Fix

  • (io) make summary caching togglable (99b8e22)

Also fixes a bug where interactive summary plots were duplicated

  • (io) data loader related fixes (da08e90)

DA30 dataloader now preserves case for attribute names from zip files. Post processing for datasets now works properly

Unknown

  • Merge pull request #24 from kmnhan/pre-commit-ci-update-config (bee9e5a)

[pre-commit.ci] pre-commit autoupdate

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.3.1

v2.3.1 (2024-04-25)

Chore

  • (deps) make iminuit and superqt optional (1bbcc24)

  • (deps) reduce dependencies (6a03518)

  • (github) update issue templates (6a2dd50)

  • (deps) update lmfit dependencies to include >1.3.0 (942a810)

Fix

  • (interactive) keep pointer for imagetool, fix typing issues (c98c38e)

  • (kspace) allow explicit coordinate kwargs (fe47efc)

Refactor

  • move characterization to io (9c30f1b)

  • make zip strict (ruff B905) (78bf5f5)

Style

  • add mypy compatible type hints (c97724d)

Unknown

  • Merge pull request #26 from kmnhan/dev (85a60b3)

  • Merge branch 'main' into dev (184afb0)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.3.0

v2.3.0 (2024-04-22)

Chore

  • cleanup directory (40e1f8d)

  • customize issue template chooser (0aa7617)

  • update issue templates (5dfb250)

Ci

  • (github) update test requirements (21080cc)

  • (readthedocs) rollback to 3.11 due to bug in python 3.12.0 and 3.12.1 (5eb6152)

Documentation

Updated requirements, contrib page, fitting guide. Source button now links to github.

  • fix typo in getting-started.rst (3304a18)

  • fix typos and add compat notes to getting-started (3bb2ac5)

  • add masking section, WIP (0844f6a)

  • add imagetool to user guide (84d3586)

  • update io and plotting documentation and cleanup contributing (b4c4f7c)

  • update badges (5e373f4)

  • enable latexpdf generation (7469271)

Feature

  • (kspace) rewrite conversion with xarray.apply_ufunc (156cef8)

Momentum conversion now relies on xarray broadcasting for all computations, and objects with extra dimensions such as temperature can be automatically broadcasted. Dask arrays can also be converted.

  • (exampledata) enable specifying seed for noise rng (aa542e8)

  • (interpolate) enable fast interpolation for 1D arrays (ff333a0)

  • make both arguments optional for loader_context (6780197)

  • (kspace) automatically detect kinetic energy axis and convert to binding (bbde447)

  • add more output and parallelization to fit accessor (59b35f5)

Allows dictionary of DataArrays as parameter to fit accessor. Now, the return Dataset contains the data and the best fit array. Relevant tests have been added.

  • add callable fit accessor using apply_ufunc (11e3546)

Add a Dataset.modelfit and DataArray.modelfit accessor with similar syntax and output as Dataset.curvefit. Closes #22

  • add option to plotarray2d so that users can pass non-normalized color array (74cf961)

  • (analysis.gold) add option to normalize energy axis in fitting (3dffad6)

This improves performance and results when eV is large like ~100eV.

Fix

  • (exampledata) change noise generation parameters (b213f11)

  • (fit) make FermiEdge2dModel compatible with flattened meshgrid-like input arrays (c0dba26)

  • fix progress bar for parallel objects that return generators (23d41b3)

Tqdm imports are also simplified. We no longer handle is_notebook ourselves, but just import from tqdm.auto

  • (plotting) fix 2d colormaps (8299576)

Allow images including nan to be plotted with gen2dcolormap, also handle plotarray2d colorbar aspect

Refactor

  • fix some type hints (2dfa5e1)

  • (example) move exampledata from interactive to io (1fc7e6c)

Also add sample data generation for fermi edge

  • refactor accessors as submodule (9fc37bd)

  • rewrite eitherdictor_kwargs with public api (34953d1)

  • move correctwithedge from era.utilities to era.gold (08a906f)

Calling from utilities will now raise a DeprecationWarning. The erlab.analysis namespace is unchanged, so the affect will be minimal.

  • qsel now raises a warning upon scalar indexing outside coordinate bounds (d6ed628)

Unknown

  • Merge pull request #23 from kmnhan/dev (4514a23)

Added new interface for fitting, see #22 for discussions. Made loader argument optional for erlab.io.loader_context so it can be used to just change the data directory. Momentum conversion has been rewritten using xarray.apply_ufunc, and is now dask-compatible. It also automatically determines the current energy axis (kinetic or binding).

  • Merge remote-tracking branch 'origin/main' into dev (fd8e1ad)

  • Merge pull request #20 from kmnhan/pre-commit-ci-update-config (f1b965e)

[pre-commit.ci] pre-commit autoupdate

  • [pre-commit.ci] pre-commit autoupdate (7e3a89e)

updates: - github.com/astral-sh/ruff-pre-commit: v0.3.5 → v0.3.7

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.2.2

v2.2.2 (2024-04-15)

Chore

  • cleanup pyproject.toml (0331132)

  • (deps) add ipywidgets to optional dependency group viz (0062966)

Ci

  • (readthdocs) update build python version and add zip format (b2cc6fc)

Documentation

  • (io) add tutorial for writing advanced plugins (11f289e)

  • add ipywidgets to intersphinx mapping (0ee46f8)

Fix

  • (io) unify call signature for summarize (e2782c8)

  • resolve failing tests due to changes in sample data generation (80f0045)

  • (interactive.exampledata) properly generate 2D data (825260c)

Performance

  • (io) speedup merlin summary generation by excluding duplicates (d6b4253)

Refactor

  • (io) allow for more complex setups (f67b2e4)

LoaderBase.infer_index now returns a second argument, which is a dictionary containing optional keyword arguments to load.

  • (io) provide rich interactive summary (b075a9e)

  • (io) include "Path" column in ssrl loader summary (ae1d8ae)

  • (io) improve array formatting in summary (1718529)

Test

  • add test for dataloader (64cde09)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.2.1

v2.2.1 (2024-04-14)

Chore

Documentation

  • rephrase some docstrings (e67597c)

  • add link to changelog (fbb6d32)

  • add ipywidgets as requirement (41024eb)

  • temporarily pin lmfit<1.3.0 to build docs (6b86ac2)

Fix

  • (fit) add sigma and amplitude expressions to MultiPeakModel parameters (3f6ba5e)

  • (fit.minuit) properly handle parameters constrained with expressions (d03f012)

Refactor

  • set informative model name for MultiPeakModel (d14ee9d)

  • add gaussian and lorentzian for consistency (07c0dfb)

Test

  • add tests for fit models (3f9125c)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.2.0

v2.2.0 (2024-04-12)

Documentation

  • improve fitting documentation (9e0a106)

  • add curve fitting guide (ff9743c)

  • add docstrings to plotting.colors (1a15a70)

Feature

  • enable component evaluation for MultiPeakModel (8875b74)

  • (analysis.fit) add BCS gap equation and Dynes formula (f862aa4)

Fix

  • curvefittingtool errors (9abb99c)

Refactor

  • cleanup fit namespace (906aa99)

  • rename ExtendedAffineBroadenedFD to FermiEdgeModel (a98aa82)

  • (interactive) exclude bad colormaps (877c915)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.1.3

v2.1.3 (2024-04-11)

Fix

  • (interactive) update data load functions used in imagetool (c3abe35)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.1.2

v2.1.2 (2024-04-11)

Documentation

Fix

  • (io) prevent specifying invalid data_dir (701b011)

  • (io) fixes merlin summary data type resolving (a91ad3d)

  • (io) fix summary loading (a5dd84a)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.1.1

v2.1.1 (2024-04-10)

Documentation

  • (io) improve docstrings and user guide (8e69abb)

  • update io documentation (b0d2d01)

  • change reference format (44e159a)

  • add missing type annotations and docstrings (b8c7471)

Fix

  • (io) enable specifying data_dir in loader context manager (37913b8)

  • (io) allow loader_class aliases to be None (7eae2eb)

Refactor

  • remove igor2 import checking (b64d8f7)

  • (io) default to always_single=True (007bb3b)

Style

  • sort all and change linter configuration (c07262e)

  • apply perf lint and more (9cb4242)

Test

  • refactor directory structure (895ea0d)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.1.0

v2.1.0 (2024-04-09)

Chore

  • update changelog template (46a79e5)

Ci

  • (pre-commit) merge pull request #18 from kmnhan/pre-commit-ci-update-config (7018fd3)

[pre-commit.ci] pre-commit autoupdate

Documentation

  • improve io guide (28a2961)

  • add docstring for undocumented io functions (3583aad)

  • change directory structure, rename contributing guide (0b3d734)

  • update development documentation (38efae6)

  • update installation instructions to include conda-forge (c0ca81d)

Feature

  • (interactive) overhaul dtool (8e5ec38)

Now supports interpolation, copying code, opening in imagetool, and 2D laplacian method.

  • (interactive) improve code generation (7cbe857)

Automatically shortens code and allows literals in kwargs

  • (interactive) extend xImageItem, add right-click menu to open imagetool (2b5bb2d)

Fix

  • sign error in minimum gradient (c45be0c)

  • (analysis.image) normalize data for mingrad output for numerical stability (0fc3711)

Refactor

  • (io) validation now defaults to warning instead of raising an error (8867a07)

Style

  • sort imports with ruff (81efec9)

  • avoid trailing whitespace in changelog (aafc441)

Test

  • fix tests according to minimum gradient behaviour change (41290f2)

Unknown

  • [pre-commit.ci] pre-commit autoupdate (1dc0de8)

updates: - github.com/pre-commit/pre-commit-hooks: v4.5.0 → v4.6.0

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v2.0.0

v2.0.0 (2024-04-08)

Breaking

  • fit unify dynamic function names (20d784c)

BREAKING CHANGE: PolyFunc is now PolynomialFunction, and FermiEdge2dFunc is now FermiEdge2dFunction. The corresponding model names are unchanged.

  • fit directly base models on lmfit.Model (59163d5)

BREAKING CHANGE: This change disables the use of guess_fit. All fitting must be performed in the syntax recommended by lmfit. Addition of a accessor or a convenience function for coordinate-aware fitting is planned in the next release.

Build

  • add templates for changelog and release notes (be72b24)

Chore

  • add setuptools_scm configuration (506faa6)

  • deps update dependency to use igor2>=0.5.6 now on conda-forge (b59fc5a)

  • deps remove igor2 direct dependency from requirements.txt (bfb5518)

  • deps remove importlib metadata (b5718e7)

  • deps update minimum versions and env configurations (18a3d67)

  • deps update dependencies (b3e2494)

  • deps remove importlib (8a6b818)

Ci

  • github swap pip installation order (afa4722)

Documentation

Feature

  • itool add copy code to PlotItem vb menu (7b4f30a)

For each plot in imagetool, a new 'copy selection code' button has been added to the right-click menu that copies the code that can slice the data to recreate the data shown in the plot.

  • add 2D curvature, finally closes #14 (7fe95ff)

  • plotting add N argument to plotarray2d (2cd79f7)

  • add scaled laplace (079e1d2)

  • add gaussian filter and laplacian (8628d33)

  • add derivative module with minimum gradient implementation (e0eabde)

Fix

  • dynamic properly broadcast xarray input (2f6672f)

  • fit.functions polynomial function now works for xarray input (3eb80de)

  • analysis.image remove critical typo (fb7de0f)

  • analysis.image dtype safety of cfunc (b4f9b17)

  • set autodownsample off for colorbar (256bf2d)

  • disable itool downsample (e626bba)

Performance

  • itool add explicit signatures to fastbinning (62e1d51)

Speedup initial binning by providing explicit signatures.

Refactor

  • update dtool to use new functions (a6e46bb)

  • analysis.image add documentation and reorder functions (340665d)

  • rename module to image and add citation (b74a654)

  • dtool cleanup unused code (f4abd34)

Unknown

  • tests: reduce test time by specifying explicit path (60fb0d0)

This will not trigger directory recursion, so tests will run a bit faster

  • tests: add tests for fitting functions (4992251)

  • tests: add tests for image and shift (7e4daeb)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.6.5

v1.6.5 (2024-04-03)

Fix

  • fix: make imports work without optional pip dependencies (b8ac11d)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.6.4

v1.6.4 (2024-04-03)

Fix

  • fix: load colormaps only when igor2 is available (7927c7d)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.6.3

v1.6.3 (2024-04-03)

Fix

  • fix: leave out type annotation for passing tests (eb25008)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.6.2

v1.6.2 (2024-04-03)

Fix

  • fix: igor2 does not have to be installed on import time (186727a)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.6.1

v1.6.1 (2024-04-03)

Chore

  • chore(deps): add pre-commit to dev dependency (3a2fccd)

  • chore: make csaps optional (db31b06)

  • chore: update issue templates (dfc2ab0)

Ci

  • ci(github): remove linting, let pre-commit handle it (b209ecb)

  • ci(pre-commit): add hooks (9b401c3)

Documentation

  • docs: rephrase kconv guide (dd2c022)

  • docs: add ipykernel dependency to resolve failing builds (e5774a5)

  • docs: add hvplot example (6997020)

Fix

  • fix: remove all pypi dependencies from pyproject.toml (1b2fd55)

Refactor

  • refactor: remove ktool_old (18ea072)

Style

  • style: apply ruff to deprecated imagetools (b2c7596)

  • style: apply pre-commit fixes (12b6441)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.6.0

v1.6.0 (2024-04-02)

Ci

  • ci: speedup tests (618851e)

  • ci: parallelize tests (232301a)

  • ci: migrate from pylint to ruff (2acd5e3)

  • ci: add pre-commit configuration (063067d)

Documentation

  • docs: add pre-commit ci status badge (ae39d3d)

  • docs: add pre-commit badges (1b6702b)

  • docs: replace black with ruff (cb1a4b5)

Feature

Refactor

  • refactor: remove deprecated function and dependencies (4b9c7b1)

Style

  • style: remove unnecessary dict call (ea0e0e8)

  • style: apply formatting (12e3a16)

  • style: remove implicit optionals and apply more linter suggestions (798508c)

  • style: reduce indentation (274a330)

  • style: move imports to type-checking block (e1f4005)

  • style: cleanup kwargs and unnecessary pass statements (7867623)

  • style: make collections literal (74a8878)

  • style: rewrite unnecessary dict calls as literal (10637f6)

  • style: format with ruff (64f3fed)

  • style: fix flake8-bugbear violations (4aade97)

  • style: apply ruff unsafe fixes (a1a7d9a)

  • style: lint with pyupgrade and ruff (244e053)

  • style: apply linter suggestions (7295cbc)

Unknown

  • [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci (b86c995)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.5.2

v1.5.2 (2024-04-01)

Documentation

  • docs: update user guide notebooks (80ab771)

  • docs: update docstring (b262765)

  • docs: update documentation (9051ed8)

Fix

  • fix: set values after setting bounds (ab6d682)

  • fix: proper patch all interpolator selection functions (b91834e)

  • fix: make bz voronoi robust (8259760)

Refactor

  • refactor: remove debug print statement in FastInterpolator class (712bd2c)

  • refactor: add edge correction (87adcef)

  • refactor: change variable name (b68949e)

  • refactor: make rotation transformations try fast interpolator first (e0a7908)

  • refactor: update warning message (af67c1a)

  • refactor: add several new accessors (664e92a)

  • refactor: use new accessors and attrs (8e1dee2)

  • refactor: add qplot accessor (cb9aa01)

  • refactor: remove annotate_cuts (004ee80)

  • refactor: dataloader cleanup (fd97780)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.5.1

v1.5.1 (2024-03-28)

Documentation

  • docs: update README screenshots (04d6b44)

  • docs: use svg plots (aaa4842)

  • docs: improve momentum conversion documentation (c315a1a)

  • docs: update dev docs (7406308)

Fix

  • fix: restore argname detection that was broken with namespace changes (863b702)

  • fix: namespace collision (10edcdc)

  • fix: followup namespace change (4c5222c)

Refactor

  • refactor: allow offsetview upate chaining

This also means that reprhtml_ is automatically displayed when update or reset is called. (8d5ca4f)

  • refactor: improve consistency in accessors

Added setter method for configuration too. (9596fd7)

  • refactor: make prints consistent (0021302)

  • refactor: change module names to prevent conflict with function names

Cleanup erplot namespace and move tools to interactive. (493a5aa)

  • refactor: follow class naming conventions (efb9610)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.5.0

v1.5.0 (2024-03-27)

Chore

  • chore: remove unnecessary dependency on colorcet, cmasher, cmocean and seaborn (5fd2d61)

  • chore: add isort profile to project configuration (df269a9)

  • chore: update dependencies and environment files

Fix python version and remove editable installs (6ec32dd)

  • chore: change pyclip dependency to pyperclip

Although pyclip supports copying bytes, it's not on conda-forge. Using pyperclip instead. (db78f8e)

Documentation

  • docs: add momentum conversion documentation draft (5410763)

  • docs: add installation and contribution information (93a4e7c)

  • docs: fix typo in README (2b5e2cf)

Feature

  • feat: add interactive tool to kspace accessor (fb91cdb)

Refactor

  • refactor: accessors are now registered upon package import (d79fee2)

Style

  • style: apply linter suggestions (fe35da9)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.4.1

v1.4.1 (2024-03-26)

Fix

  • fix: update package metadata

This should be classified as chore, but commiting as a fix to trigger CI (ecfb88f)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.4.0

v1.4.0 (2024-03-26)

Chore

  • chore: update workflow triggers (fb158f3)

  • chore: update build command (a22b8e5)

  • chore: update CI/CD badge urls (db61b29)

  • chore: make pyproject.toml compatible

README file link fixed, and remove direct dependencies. Add build command for automatic building (959f687)

  • chore: update workflows to upload to pypi (2902b68)

Documentation

  • docs: update docstring and apply linter suggestions (de3ee01)

  • docs: update README (8bd239f)

Feature

  • feat: calculate kz in MomentumAccessor

Add method that calculates kz array from given photon energy float (46979f9)

  • feat: make momentum conversion functions xarray compatible (a7aa34b)

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.3.1

v1.3.1 (2024-03-25)

Documentation

  • docs: update documentation

  • Move rst README contents to docs, replace with newly written markdown.

  • Add screenshot images to documentation and README (69a02fa)

  • docs: update README (15f61bf)

Fix

- Python
Published by github-actions[bot] almost 2 years ago

https://github.com/kmnhan/erlabpy - v1.3.0

v1.3.0 (2024-03-25)

Chore

  • chore: fix wrong branch name in release workflow (76a51b8)

  • chore: configure semantic release (3ebdecb)

  • chore: bump version to 1.2.1 (30ec306)

Documentation

Feature

  • feat(io): add new data loader plugin for DA30 + SES (7a27a2f)

Fix

  • fix(io): properly handle registry getattr

This fixes an issue where reprhtml_ will fallback to repr. Additionally, get will now raise a KeyError instead of a ValueError. (499526f)

Style

  • style: adjust loader registry repr (1fc31af)

  • style: remove incorrect type annotation (69dbf8a)

- Python
Published by github-actions[bot] almost 2 years ago