Skip to content

Releases: kmnhan/erlabpy

v3.5.1

14 Jan 09:17
Compare
Choose a tag to compare

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(-)

v3.5.0

04 Jan 12:40
Compare
Choose a tag to compare

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(-)

v3.4.0

02 Jan 13:55
Compare
Choose a tag to compare

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(-)

v3.3.0

23 Dec 07:04
Compare
Choose a tag to compare

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(-)

v3.2.3

19 Dec 05:13
Compare
Choose a tag to compare

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(-)

v3.2.2

14 Dec 16:53
Compare
Choose a tag to compare

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(-)

v3.2.1

14 Dec 16:19
Compare
Choose a tag to compare

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(-)

v3.2.0

14 Dec 13:15
Compare
Choose a tag to compare

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(-)

v3.1.2

05 Dec 05:24
Compare
Choose a tag to compare

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(-)

v3.1.1

28 Nov 23:53
Compare
Choose a tag to compare

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(-)