Erlab

Latest version: v3.8.1

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

Scan your dependencies

Page 2 of 12

3.4.0

✨ Features

- introduce `utils.array.sort_coord_order` function ([0e694d2](https://github.com/kmnhan/erlabpy/commit/0e694d241a281663fc21c48bb8a2e0d36ae5aaaf))

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](https://github.com/kmnhan/erlabpy/commit/fd838b1eac9f8b8936008a4f6af86b27955fed45))

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](https://github.com/kmnhan/erlabpy/commit/cf346b95c20b71e638e4cb7227595cc2d8b73eb2))

Adds a new action that stores data with the [`%store`](https://ipython.readthedocs.io/en/stable/config/extensions/storemagic.html) 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](https://github.com/kmnhan/erlabpy/commit/9fdc63d23253d6ccc783eb61eca406af085d4f9b))

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](https://github.com/kmnhan/erlabpy/commit/02bce9032c93087f549b59aa9d4594071e187b11))

- **io.plugins.erpes:** show warning when loading with index is ambiguous ([95a88b6](https://github.com/kmnhan/erlabpy/commit/95a88b6e77264f6e0c8ceca8e364bba12471ba6e))

- **io:** fixes loaded data losing their original names ([a19f37a](https://github.com/kmnhan/erlabpy/commit/a19f37a43f5cd3409d6e0c7e186f00d727bb75a2))

- **analysis.fit:** handle NaN values in linear fit guesses ([1aef937](https://github.com/kmnhan/erlabpy/commit/1aef93752a04ae4a4bddb8a302d1a6c0716082b4))

- **imagetool.manager:** fix undefined selection order ([4c486e2](https://github.com/kmnhan/erlabpy/commit/4c486e2c2f27cfb25c52edfbea695bac306b148f))

⚡️ Performance

- improve import time ([e2a2542](https://github.com/kmnhan/erlabpy/commit/e2a25429395b11c59e84212490f515d3294fb836))

♻️ Code Refactor

- reorganize interactive module structure ([87a6e89](https://github.com/kmnhan/erlabpy/commit/87a6e89f756a45213166dd166e60cfe45a624014))

- **imagetool:** add `update` parameter to `apply_func` ([fd0238d](https://github.com/kmnhan/erlabpy/commit/fd0238dcdbd5fe6e50c875c2b84f017780b82ce7))

- **accessors.kspace:** make errors during momentum conversion due to missing coords or attrs more explicit ([eb3d01c](https://github.com/kmnhan/erlabpy/commit/eb3d01cc7fc92687a7075a308abd9f52ccff2e1d))

- **imagetool:** change argument `use_manager` to `manager` in `itool()` ([0929e5c](https://github.com/kmnhan/erlabpy/commit/0929e5c9926f0e7cc68b37d71492cc2f0d143fda))

- **imagetool:** move main window setup from `__init__.py` to `mainwindow.py` ([0997149](https://github.com/kmnhan/erlabpy/commit/099714954de07ce6af50fa6dcd5a47ea3cf9c156))

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

- **imagetool:** disable manager by default ([34e943f](https://github.com/kmnhan/erlabpy/commit/34e943fcbca2741e020a36093420311acef78a99))

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](https://github.com/kmnhan/erlabpy/commit/0475cfd2fc5d3b861ef96c355862598828d7f0e5))

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](https://github.com/kmnhan/erlabpy/commit/b0344775fd512b40d5fa9d382d84d38d4e1ce64a))

- **imagetool:** add icons to context menu items that opens a new window ([1f548f7](https://github.com/kmnhan/erlabpy/commit/1f548f77a1b698d55637d37f896771f002473b54))

- **imagetool:** streamline window title naming ([0f9dcda](https://github.com/kmnhan/erlabpy/commit/0f9dcdaa0963baa9f20d6bacd330167295017be5))

- replace boilerplate decimal calculation with new `utils.array.effective_decimals` ([7873669](https://github.com/kmnhan/erlabpy/commit/78736690f811a055f8b3d49a7fdebbf77869be7c))

- **imagetool:** initial migration to QAction ([7807174](https://github.com/kmnhan/erlabpy/commit/7807174208c535ee27db244d7cb4811288367149))

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](https://github.com/kmnhan/erlabpy/commit/280bfd8cca7d146d0013103d8c45363804118137))

3.3.0

✨ Features

- **io:** improve loader registry repr with descriptions and dynamic formatting ([3f43405](https://github.com/kmnhan/erlabpy/commit/3f434050030b903750330ec5d927173a583e035f))

- **io:** add descriptions to loaders for better user guidance ([7087c04](https://github.com/kmnhan/erlabpy/commit/7087c04bfebafb6bf645948e2953dc254dbfb767))

- **dtool:** add boxcar filter and 1D curvature, along with internal improvements ([0bd2b17](https://github.com/kmnhan/erlabpy/commit/0bd2b17af300bea63420b3c6cd92ba4da20f472d))

- **analysis.image:** add `diffn` function for nth derivative calculation ([a70812f](https://github.com/kmnhan/erlabpy/commit/a70812f87e8ce766bea60cb1b82a42b855963f1a))

Adds a function that calculates accurate n-th order partial derivatives of DataArrays using [findiff](https://github.com/maroba/findiff).

Also, functions that use derivatives including `curvature` and `scaled_laplace` now uses properly scaled derivatives from [findiff](https://github.com/maroba/findiff). As a consequence, the output of these functions may be slightly different.

- **analysis.image:** add boxcar filter ([7475266](https://github.com/kmnhan/erlabpy/commit/74752663d065104db9d01e5407c490e7153aab97))

- **analysis.image:** add 1D curvature ([522d554](https://github.com/kmnhan/erlabpy/commit/522d5540ebb8c5831421ceec039884d0896ff8fc))

- **io.plugins.erpes:** add data loader for our homelab system! ([48dcbb4](https://github.com/kmnhan/erlabpy/commit/48dcbb47691f1250ade2f93968521471e61e08f6))

- **io.plugins.merlin:** allow loading BL4 single file in `ImageTool` file menu ([079914e](https://github.com/kmnhan/erlabpy/commit/079914e7d8e5c49fbb234bb1c50482559512f9af))

- **io.dataloader:** automatically load in parallel with per-loader threshold ([33a8c63](https://github.com/kmnhan/erlabpy/commit/33a8c63abed6bd8cf0db20aac8ea1cb0c6610232))

- **imagetool:** add support for DataTree objects ([c4c03e3](https://github.com/kmnhan/erlabpy/commit/c4c03e363f850551b59f6f683983f5ee48b0aa3c))

🐞 Bug Fixes

- **imagetool.manager:** fix dark mode handling and focus management in console ([ed81f70](https://github.com/kmnhan/erlabpy/commit/ed81f70a5a309756b4f333e7aa8c9b9b52e6fb25))

- **imagetool.manager:** bind associated tools to the manager ([a38cf7f](https://github.com/kmnhan/erlabpy/commit/a38cf7f582bb775e1a070c21c897b4fd1cd258ee))

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](https://github.com/kmnhan/erlabpy/commit/0ee225b50139ef2181a4df020432b1704b226f9b))

- **imagetool:** fix issue with selection with multiple binned dimensions ([121c968](https://github.com/kmnhan/erlabpy/commit/121c968a68da82bd53fa95d596d1486aa21e3715))

- **io.dataloader:** adjust condition to handle single file loading ([d98c71f](https://github.com/kmnhan/erlabpy/commit/d98c71f2e900884c8649741f3fe7c57c5838a3de))

- **io.plugins.da30:** update `DA30Loader` to handle multiple regions in one `.pxt` file ([1ff8b93](https://github.com/kmnhan/erlabpy/commit/1ff8b93590d78db041409a1e914fdf9c7d5d799b))

♻️ Code Refactor

- **io:** deprecate choosing loaders with their aliases, closes [76](https://github.com/kmnhan/erlabpy/issues/76) ([464ee45](https://github.com/kmnhan/erlabpy/commit/464ee455d0e843e93827b0a8cc28f2e94bbbd23b))

- **interactive.utils:** improve code generation ([2b24e08](https://github.com/kmnhan/erlabpy/commit/2b24e086c56108ae1220dfb3a4c8af7a253dc221))

- replace direct imports with module references ([b3ca55c](https://github.com/kmnhan/erlabpy/commit/b3ca55c241197f878e11b819663545d6cfcf2d52))

- **io.nexusutils:** defer error message until actually trying to load nexus files ([8eec5aa](https://github.com/kmnhan/erlabpy/commit/8eec5aabd40a75f6f26e113cc0bdd9c0d35759ec))

3.2.3

🐞 Bug Fixes

- enforce strict monotonicity check in data loader ([513554e](https://github.com/kmnhan/erlabpy/commit/513554efd350d5acffba0b6c0c1e787161052bf9))

- **da30:** return empty dict instead of None for matches in loader ([2d8b8ae](https://github.com/kmnhan/erlabpy/commit/2d8b8ae7f045ae085a35b6fdcce96b62a325f07e))

- **io.dataloader:** assign coords also for multifile scan of length 1 ([0b14f75](https://github.com/kmnhan/erlabpy/commit/0b14f750973b0dc897536a93ef50bfbdb1af216b))

- **io.plugins.merlin:** adjust handling logic for motor scan aborted after one file ([1ac25f1](https://github.com/kmnhan/erlabpy/commit/1ac25f1ec84a84199fba7ca1428859df28355f4c))

♻️ Code Refactor

- **io:** implement lazy loading ([da5244a](https://github.com/kmnhan/erlabpy/commit/da5244a10f100f670f67cf28e58fdf862342e1bb))

3.2.2

♻️ Code Refactor

- update deprecation warnings to FutureWarning for improved clarity ([f2d7ae7](https://github.com/kmnhan/erlabpy/commit/f2d7ae73ec7e611878ea9bfb75e5a69ff230822c))

3.2.1

🐞 Bug Fixes

- **docs:** ensure docstring compatibility with matplotlib 3.10.0 ([e881a6b](https://github.com/kmnhan/erlabpy/commit/e881a6b20e96d1a2fa5ab0cf933fed928228d039))

3.2.0

✨ Features

- **io.dataloader:** enhance data combination logic ([80f2772](https://github.com/kmnhan/erlabpy/commit/80f2772f2e991032c795b317d9502f7846f5766f))

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](https://github.com/kmnhan/erlabpy/commit/f8e4ca2245e3e2a922dc26387fa97bdc62c14340))

- **imagetool.manager:** enable concatenating selected data ([44d61ba](https://github.com/kmnhan/erlabpy/commit/44d61ba559d26a11b72d6151e08d490a91f5ca9f))

- **imagetool:** add normalization option for 1D plot data ([5417a32](https://github.com/kmnhan/erlabpy/commit/5417a32f4ea4fb661036279e00289d2a9012ddc1))

Adds an option to normalize 1D data with its mean to the right-click menu of 1D plots.

- add lazy-loader support ([e5ec658](https://github.com/kmnhan/erlabpy/commit/e5ec65895f347ce69c70bf999ec876261abbdd2b))

Properly implements [SPEC 1](https://scientific-python.org/specs/spec-0001/) 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](https://github.com/kmnhan/erlabpy/commit/470808fca209d93d18db041eb5a3a0cbb71f4672))

Adds a python console to the manager that can be triggered from the `View` menu.

- **imagetool:** add keyboard shortcut to close ImageTool window ([97a7533](https://github.com/kmnhan/erlabpy/commit/97a7533d578b2e28dc5e05c9ab4484762bb77817))

- **interactive.imagetool:** add info box to manager ([0918a5b](https://github.com/kmnhan/erlabpy/commit/0918a5b357298bf4bf943e785c2f4cfa111dce29))

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](https://github.com/kmnhan/erlabpy/commit/46955838e18d9ab940e2f786711a9a78626da3d3))

Fixes completely wrong implementation of kz-dependent momentum conversion. I can't believe this went unnoticed!

- **imagetool:** remove and reapply filter upon transformation ([af54a1d](https://github.com/kmnhan/erlabpy/commit/af54a1d52b8f8b53250aae9c9a950590a97853ad))

- **imagetool:** fix nonuniform data io and cropping ([8b538e6](https://github.com/kmnhan/erlabpy/commit/8b538e68312c3c92f223be0d8d1653c36c664abf))

- **imagetool:** fix wrong cursor position when loading ImageTool state from file ([e8191a8](https://github.com/kmnhan/erlabpy/commit/e8191a87aa9663c4e0ac5098ce0fcfe623fe5396))

- **imagetool:** resolve menu widgets losing keyboard focus ([90f8868](https://github.com/kmnhan/erlabpy/commit/90f8868de7a22b997cefd5b74a1f5a7f2e592c67))

⚡️ Performance

- **imagetool.manager:** accelerate opening new windows within the manager ([d4380b7](https://github.com/kmnhan/erlabpy/commit/d4380b7fca42e857f8cace0b6bd0d42a20bdbbda))

- delay imports for performance optimization in interactive tools ([abac874](https://github.com/kmnhan/erlabpy/commit/abac87401237d7f695261c51cb1a98d56841b49a))

♻️ Code Refactor

- **plotting:** update import statements to use `erlab.plotting` directly and deprecate `erlab.plotting.erplot` ([6a19f6a](https://github.com/kmnhan/erlabpy/commit/6a19f6ab57c9f65fdc855d1f1a155adc52421316))

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](https://github.com/kmnhan/erlabpy/commit/5506f18888093da7842b98ed87b768f317bff38e))

- **imagetool:** move center zero button to context menu ([48deb6d](https://github.com/kmnhan/erlabpy/commit/48deb6d41a0a31c0815c9cdb7553783bc185f552))

- improve cli interface ([34a4db1](https://github.com/kmnhan/erlabpy/commit/34a4db1f120ae5839fa8c0375d7d951d9407e36b))

- cleanup some function signatures ([b04df05](https://github.com/kmnhan/erlabpy/commit/b04df05559f75b882075ab223adc8013f25241bc))

- **analysis.fit:** enable lazy loading for fit functions ([e877e12](https://github.com/kmnhan/erlabpy/commit/e877e12360157e8303ec0177e8a8999b4c307ab4))

- **imagetool.manager:** add ipython-based console ([f0b0adf](https://github.com/kmnhan/erlabpy/commit/f0b0adfefc5bd4e71ed0be427dd530bca89ff024))

- **analysis.gold:** adjust resolution plot cosmetics ([5d4a486](https://github.com/kmnhan/erlabpy/commit/5d4a4863391e08392f3b65e11e9b086cf98d831f))

- **interactive.colors:** minimize number of default colormaps ([a4c750c](https://github.com/kmnhan/erlabpy/commit/a4c750c21e8fbb11a93b3bc2f33cfb0477c4cf5a))

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](https://github.com/kmnhan/erlabpy/commit/48d04531c9b11ed120fbecac7885a7503c732973))

Page 2 of 12

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.