Erlab

Latest version: v3.7.0

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

Scan your dependencies

Page 1 of 11

3.7.0

✨ Features

- **imagetool:** add 'Crop to View' functionality ([ab6976b](https://github.com/kmnhan/erlabpy/commit/ab6976bd3f74ed648547a8aee72d41b8d3e1d9eb))

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

- **explorer:** remember scroll location when selecting a different file ([ae58268](https://github.com/kmnhan/erlabpy/commit/ae5826872c3d13f96ef628dc5aadc37c31715d40))

- **imagetool:** reimplement axis linking logic ([8f8648c](https://github.com/kmnhan/erlabpy/commit/8f8648c6e9bc409dc936032b0d5a27a9eefc806f))

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

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

- **imagetool:** adjust bin spinbox range to include maximum data shape ([701e189](https://github.com/kmnhan/erlabpy/commit/701e18949ca9acd0cb832745c49812b86bafde14))

- **imagetool.manager:** resolve exceptions that sometimes appear on initialization ([04c23ba](https://github.com/kmnhan/erlabpy/commit/04c23ba0c1fdc460a37a096465a8505bf3d42a3e))

- **imagetool.manager:** ensure compatibility with lazy-loaded data ([6d57e13](https://github.com/kmnhan/erlabpy/commit/6d57e13e66339161935c47d524e1822bd65c20b8))

- **analysis.gold:** fix incorrect normalization for Fermi edge fits and add resolution parameter ([1fe773d](https://github.com/kmnhan/erlabpy/commit/1fe773d685b3422225df9b39f1ebac34edda33bd))

- **analysis.fit.functions.general:** properly normalize convolution kernel for small sigma ([390769e](https://github.com/kmnhan/erlabpy/commit/390769e031e10b343da2f38438f84350007cafc4))

- **ktool:** resolve incompatibility with hv-dependent data (88) ([472e98e](https://github.com/kmnhan/erlabpy/commit/472e98ee35a062a524cff0ec774d704007a594b8))

⚡️ Performance

- **analysis.fit.models.FermiEdgeModel:** micro-optimizations related to EF guessing ([afc5c90](https://github.com/kmnhan/erlabpy/commit/afc5c9026b0a72c488f11a32d30e8c5ce3cfbe24))

♻️ Code Refactor

- **io.plugins.da30:** show error for invalid zip files ([4c348e6](https://github.com/kmnhan/erlabpy/commit/4c348e6671306cb3d3608ddfc5ebfbf629371884))

- **goldtool:** add initial resolution spinbox ([9d8dd8d](https://github.com/kmnhan/erlabpy/commit/9d8dd8d4269371a561dffe3f9c6cb369af57f03e))

- **analysis.gold.quick_fit:** enable resolution plot customization through keyword arguments ([a3058e6](https://github.com/kmnhan/erlabpy/commit/a3058e65248f0f28a680af97e075930dac79fc1a))

- **io.plugins.da30:** support loading unzipped DA30 scans (89) ([eadc676](https://github.com/kmnhan/erlabpy/commit/eadc6760bbf6ddad635bcac10b829c234662b59e))

3.6.0

✨ Features

- add support for Python 3.13, closes [58](https://github.com/kmnhan/erlabpy/issues/58) ([df4f479](https://github.com/kmnhan/erlabpy/commit/df4f479b5a388d111f397e1d999ae8a4f995d427))

- **explorer:** add a new interactive tool for browsing file systems ([a70b222](https://github.com/kmnhan/erlabpy/commit/a70b222b4113b97697b30c376095295056bd928f))

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

- **misc:** add function to open directory in system's file manager ([7d3db3f](https://github.com/kmnhan/erlabpy/commit/7d3db3ff5674bfc88e2a99cc0f662286ca79f795))

🐞 Bug Fixes

- **io.exampledata:** replace `sph_harm` deprecated in scipy 1.15.0 with `sph_harm_y` ([eba902c](https://github.com/kmnhan/erlabpy/commit/eba902c9d4dacd682207e456fe744ebe5b6486d5))

- **interactive.utils:** ignore all other arguments for separator actions in `DictMenuBar` ([5c94b92](https://github.com/kmnhan/erlabpy/commit/5c94b9286fe11501dc2b5e9a4dc9deb46387cabf))

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

- **imagetool.manager:** fix archived files being deleted after a few days ([7d93442](https://github.com/kmnhan/erlabpy/commit/7d93442376f90d5f9e48d2666fc2db0691247aad))

♻️ Code Refactor

- **io.exampledata:** update sph_harm usage to match scipy 1.15.0 changes ([1dde195](https://github.com/kmnhan/erlabpy/commit/1dde195b556a91e92b0445a33c46c134a02bc901))

- replace direct `typing` imports with namespace imports ([fc2825d](https://github.com/kmnhan/erlabpy/commit/fc2825d2a0459ae81a5d3791051807449dd5e361))

- **imagetool:** update type hints and preload fastbinning module ([ab0b3fd](https://github.com/kmnhan/erlabpy/commit/ab0b3fdd2668fe126135f197f7cc74cd6c307f69))

- **io:** improve docs structure by reorganizing namespace ([5e2d7e5](https://github.com/kmnhan/erlabpy/commit/5e2d7e51e62d11a292da4747076ac8316b9c71fd))

- **io:** improve error messages for folders ([8d63c09](https://github.com/kmnhan/erlabpy/commit/8d63c095cb8595860c8700fbf4354845b0d2f2a8))

3.5.1

🐞 Bug Fixes

- **restool:** improve parameter guessing and copied code formatting ([0b33770](https://github.com/kmnhan/erlabpy/commit/0b33770fd5cf7a828cacaef8e465319183d03a00))

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

- generalize fomatting DataArray to raw HTML ([85c735e](https://github.com/kmnhan/erlabpy/commit/85c735e6397747ee8fa32fa0fb5804a07aee27be))

- **analysis.gold:** add plot capability to `quick_fit` and deprecate quick_resolution ([903450b](https://github.com/kmnhan/erlabpy/commit/903450b6c74a1382a14c4cff05c90871a5d6854d))

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

- **ktool:** add work function spinbox ([31c5ae8](https://github.com/kmnhan/erlabpy/commit/31c5ae874893c99b0b41d50457b4ea82967dedb5))

- **io.dataloader:** adds a `extensions` attribute to data loaders ([a819960](https://github.com/kmnhan/erlabpy/commit/a8199603df8d1a35b0be719fa0c76fa8c29794de))

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

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

3.5.0

✨ Features

- **imagetool.manager:** implement threaded file loading ([feeb06b](https://github.com/kmnhan/erlabpy/commit/feeb06bbd5b7e88e554d9e728d3c005b552abb98))

Data are now loaded in the background.

🐞 Bug Fixes

- **plotting:** properly expose `__all__` ([03cdf89](https://github.com/kmnhan/erlabpy/commit/03cdf898920d072d5d7b9449fd3e4b9d95eabc96))

- **imagetool:** inverted state and aspect ratio of axes are now properly restored ([321c837](https://github.com/kmnhan/erlabpy/commit/321c83711f5a12a0f4becd3510464a24f006127e))

♻️ Code Refactor

- **imagetool:** make imagetool respect the most recently used loader and data directory if opened in the manager ([df1d550](https://github.com/kmnhan/erlabpy/commit/df1d5505e2a09b1bb22c99fa224c5288ab0be8a4))

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

Page 1 of 11

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.