diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 6fce32280..1a7e0e4ea 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -36,4 +36,4 @@ torchvision>=0.15.0 tqdm>=4.64.1 umap-learn>=0.5.3 wsidicom>=0.18.0 -zarr>=2.13.3, <3.0.0 +zarr>=2.13.3 diff --git a/tiatoolbox/wsicore/wsireader.py b/tiatoolbox/wsicore/wsireader.py index 0791bc4fa..93bc578ca 100644 --- a/tiatoolbox/wsicore/wsireader.py +++ b/tiatoolbox/wsicore/wsireader.py @@ -144,9 +144,9 @@ def is_ngff( # noqa: PLR0911 store = zarr.SQLiteStore(str(path)) if path.is_file() and is_sqlite3(path) else path try: zarr_group = zarr.open(store, mode="r") - except (zarr.errors.FSPathExistNotDir, zarr.errors.PathNotFoundError): + except Exception: # skipcq: PYL-W0703 # noqa: BLE001 return False - if not isinstance(zarr_group, zarr.hierarchy.Group): + if not isinstance(zarr_group, zarr.Group): return False group_attrs = zarr_group.attrs.asdict() try: @@ -3527,8 +3527,9 @@ def page_area(page: tifffile.TiffPage) -> float: ) self._zarr_lru_cache = zarr.LRUStoreCache(self._zarr_store, max_size=cache_size) self._zarr_group = zarr.open(self._zarr_lru_cache) - if not isinstance(self._zarr_group, zarr.hierarchy.Group): # pragma: no cover - group = zarr.hierarchy.group() + + if not isinstance(self._zarr_group, zarr.Group): + group = zarr.open_group() group[0] = self._zarr_group self._zarr_group = group self.level_arrays = { @@ -5081,7 +5082,7 @@ def __init__(self: NGFFWSIReader, path: str | Path, **kwargs: dict) -> None: numcodecs.register_codecs() store = zarr.SQLiteStore(path) if is_sqlite3(path) else path - self._zarr_group: zarr.hierarchy.Group = zarr.open(store, mode="r") + self._zarr_group: zarr.Group = zarr.open(store, mode="r") attrs = self._zarr_group.attrs multiscales = attrs["multiscales"][0] axes = multiscales["axes"]