From d97cb57293874ba0d683f767e9643d3c36435325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C2=A8zerkela=C2=A8?= <¨zerkela@oregonstate.edu¨> Date: Sat, 4 Oct 2025 18:18:17 -0700 Subject: [PATCH] Updated to use ZarrV3 and NumpyV2 --- pyproject.toml | 10 ++++++---- requirements.txt | 5 +++-- src/scarr/container/container.py | 4 ++-- src/scarr/file_handling/trace_handler.py | 3 ++- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index e2c9d5e..64fae0b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,20 +4,22 @@ build-backend = "hatchling.build" [project] name = "scarr" -version = "0.1.1" +version = "0.2.1" authors = [ { name="Jonah Bosland", email="boslandj@oregonstate.edu" }, { name="Stefan Ene", email="enes@oregonstate.edu" }, { name="Vincent Immler", email="vincent.immler+scarr@oregonstate.edu" }, + { name="Alex Zerkel", email="zerkela@oregonstate.edu" } ] description = "A high-performance SCA library for datasets that include NxM EM trace grids." readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.12" dependencies = [ - 'numpy<2', + 'numpy>=2, <3', 'numba', - 'zarr[jupyter]<3', + 'zarr>3.0.4, <4', 'torch', + 'rich', 'ruff', 'mpmath', 'matplotlib', diff --git a/requirements.txt b/requirements.txt index 529b459..07a686c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,10 @@ -numpy<2 +numpy>=2, <3 numba -zarr[jupyter]<3 +zarr>=3.0.4, <4 torch ruff mpmath matplotlib scipy liccheck +rich \ No newline at end of file diff --git a/src/scarr/container/container.py b/src/scarr/container/container.py index eefd135..d9d53a0 100755 --- a/src/scarr/container/container.py +++ b/src/scarr/container/container.py @@ -86,13 +86,13 @@ def configure(self, tile_x, tile_y, model_positions, convergence_step = None): for filter in self.filters: filter.configure(tile_x, tile_y) # int() casting needed for random typing linux bug - return int(self.data.configure(tile_x, tile_y, model_positions, self.slab_points, self.trace_index, self.slab_range, self.stride, convergence_step)) + return self.data.configure(tile_x, tile_y, model_positions, self.slab_points, self.trace_index, self.slab_range, self.stride, convergence_step) def configure2(self, tile_x, tile_y, model_positions, convergence_step = None): for filter in self.filters: filter.configure(tile_x, tile_y) # int() casting needed for random typing linux bug - return int(self.data2.configure(tile_x, tile_y, model_positions, self.slab_points, self.trace_index, self.slab_range, self.stride, convergence_step)) + return self.data2.configure(tile_x, tile_y, model_positions, self.slab_points, self.trace_index, self.slab_range, self.stride, convergence_step) def get_batches(self, tile_x, tile_y): for batch in self.data.get_batch_generator(): diff --git a/src/scarr/file_handling/trace_handler.py b/src/scarr/file_handling/trace_handler.py index e2b4487..3d57a63 100755 --- a/src/scarr/file_handling/trace_handler.py +++ b/src/scarr/file_handling/trace_handler.py @@ -40,7 +40,7 @@ def configure(self, tile_x, tile_y, model_positions, slab_points=[], trace_index try: self.model_positions = model_positions self.current_tile = f'{tile_x}/{tile_y}' - self.data_length = len(self.data[f'{self.current_tile}{"/traces"}']) + self.data_length = self.data[f'{self.current_tile}{"/traces"}'].shape[0] if len(slab_points) > 0: self.sample_slab = slab_points @@ -51,6 +51,7 @@ def configure(self, tile_x, tile_y, model_positions, slab_points=[], trace_index elif stride > 1: self.sample_slab= slice(0, self.sample_length, stride) else: + #self.sample_slab = slice(0, self.sample_length) self.sample_slab = slice(None) if len(trace_index) > 0: