Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion napari_ome_zarr/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
__version__ = "unknown"


from ._reader import napari_get_reader # noqa
from ._reader import napari_get_eager_reader, napari_get_reader # noqa
24 changes: 22 additions & 2 deletions napari_ome_zarr/_reader.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
"""

import warnings
from typing import Callable
from typing import Any, Callable

import numpy as np
import zarr

from .ome_zarr_reader import read_ome_zarr
from .ome_zarr_reader import LayerData, read_ome_zarr


def napari_get_reader(path: str | list) -> Callable | None:
Expand All @@ -31,3 +32,22 @@ def napari_get_reader(path: str | list) -> Callable | None:
if group is not None:
return read_ome_zarr(group)
return None


def napari_get_eager_reader(path: str | list) -> Callable | None:
read_ome_zarr_lazy = napari_get_reader(path)
if read_ome_zarr_lazy is not None:

def read_ome_zarr_eager(*args: Any, **kwargs: Any) -> list[LayerData]:
lazy_result = read_ome_zarr_lazy(*args, **kwargs)
eager_result = []
for data, metadata, layer_type in lazy_result:
if isinstance(data, list): # multiscales
eager_data = list(map(np.asarray, data))
else: # single scale
eager_data = np.asarray(data)
eager_result.append((eager_data, metadata, layer_type))
return eager_result

return read_ome_zarr_eager
return None
10 changes: 9 additions & 1 deletion napari_ome_zarr/napari.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,19 @@ schema_version: 0.1.0
contributions:
commands:
- id: napari-ome-zarr.get_reader
title: Get Reader
title: Zarr Reader (Keep data on disk)
python_name: napari_ome_zarr._reader:napari_get_reader
- id: napari-ome-zarr.get_eager_reader
title: Zarr Reader (Load full data to RAM)
python_name: napari_ome_zarr._reader:napari_get_eager_reader
readers:
- command: napari-ome-zarr.get_reader
filename_patterns:
- "*.zarr"
- "*.zarr*"
accepts_directories: true
- command: napari-ome-zarr.get_eager_reader
filename_patterns:
- "*.zarr"
- "*.zarr*"
accepts_directories: true
Loading