Skip to content

Dependency conflict with zarr v3? #166

@jo-mueller

Description

@jo-mueller

Hi @lorenzocerrone , I just tried the object detection workflow we discussed over at #111 and I am getting an import error when trying to load the FeatureIterator class:

from ngio.experimental.iterators import FeatureExtractorIterator

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Cell In[14], [line 8](vscode-notebook-cell:?execution_count=14&line=8)
      6 import pandas as pd
      7 import dask.array as da
----> [8](vscode-notebook-cell:?execution_count=14&line=8) import ngio
      9 from ome_zarr.image import NgffMultiscales
     10 from ome_zarr.scene import NgffScene

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\ngio\__init__.py:13
     10 __email__ = "lorenzo.cerrone@uzh.ch"
     12 from ngio.common import Dimensions, Roi, RoiSlice
---> [13](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/ngio/__init__.py:13) from ngio.hcs import (
     14     OmeZarrPlate,
     15     OmeZarrWell,
     16     create_empty_plate,
     17     create_empty_well,
     18     open_ome_zarr_plate,
     19     open_ome_zarr_well,
     20 )
     21 from ngio.images import (
     22     ChannelSelectionModel,
     23     Image,
   (...)
     31     open_ome_zarr_container,
     32 )
     33 from ngio.ome_zarr_meta.ngio_specs import (
     34     AxesSetup,
     35     DefaultNgffVersion,
   (...)
     [3](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/ngio/hcs/__init__.py:3)8     PixelSize,
     39 )

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\ngio\hcs\__init__.py:3
      1 """OME-Zarr HCS objects models."""
----> 3 from ngio.hcs._plate import (
      4     OmeZarrPlate,
      5     OmeZarrWell,
      6     create_empty_plate,
      7     create_empty_well,
      8     open_ome_zarr_plate,
      9     open_ome_zarr_well,
     10 )
     12 __all__ = [
     13     "OmeZarrPlate",
     14     "OmeZarrWell",
   (...)
     18     "open_ome_zarr_well",
     1[9](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/ngio/hcs/_plate.py:9) ]

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\ngio\hcs\_plate.py:9
      6 from collections.abc import Sequence
      7 from typing import Literal
----> 9 from ngio.images import (
     10     OmeZarrContainer,
     11     concatenate_image_tables,
     12     concatenate_image_tables_as,
     13     concatenate_image_tables_as_async,
     14     concatenate_image_tables_async,
     15     list_image_tables,
     16     list_image_tables_async,
     17 )
     18 from ngio.ome_zarr_meta import (
     19     DefaultNgffVersion,
     20     ImageInWellPath,
   (...)
     28     update_ngio_well_meta,
     29 )
     [3](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/ngio/images/__init__.py:3)0 from ngio.tables import (
     31     ConditionTable,
     32     DefaultTableBackend,
   (...)
     41     TypedTable,
     42 )

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\ngio\images\__init__.py:3
      1 """OME-Zarr object models."""
----> 3 from ngio.images._create_synt_container import create_synthetic_ome_zarr
      4 from ngio.images._image import ChannelSelectionModel, Image, ImagesContainer
      5 from ngio.images._label import Label, LabelsContainer

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\ngio\images\_create_synt_container.py:[12](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/ngio/images/_create_synt_container.py:12)
     10 from ngio.common._pyramid import ChunksLike, ShardsLike
     11 from ngio.common._synt_images_utils import fit_to_shape
---> 12 from ngio.images._ome_zarr_container import OmeZarrContainer, create_ome_zarr_from_array
     13 from ngio.ome_zarr_meta.ngio_specs import (
     14     Channel,
     15     DefaultNgffVersion,
     16     NgffVersions,
     17 )
     18 from ngio.resources import AVAILABLE_SAMPLES, SampleInfo, get_sample_info

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\ngio\images\_ome_zarr_container.py:[13](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/ngio/images/_ome_zarr_container.py:13)
     11 from ngio.common._pyramid import ChunksLike, ShardsLike
     12 from ngio.images._create_utils import init_image_like
---> 13 from ngio.images._image import Image, ImagesContainer
     14 from ngio.images._label import Label, LabelsContainer
     15 from ngio.images._masked_image import MaskedImage, MaskedLabel

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\ngio\images\_image.py:[19](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/ngio/images/_image.py:19)
     13 from ngio.common import (
     14     Dimensions,
     15     InterpolationOrder,
     16     Roi,
     17 )
     18 from ngio.common._pyramid import ChunksLike, ShardsLike
---> 19 from ngio.images._abstract_image import AbstractImage, abstract_derive
     20 from ngio.io_pipes import (
     21     SlicingInputType,
     22     TransformProtocol,
     23 )
     24 from ngio.ome_zarr_meta import (
     25     ImageMetaHandler,
     26     NgioImageMeta,
     27     PixelSize,
     28 )

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\ngio\images\_abstract_image.py:[63](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/ngio/images/_abstract_image.py:63)
     51 from ngio.ome_zarr_meta.ngio_specs import (
     52     Channel,
     53     NgffVersions,
     54     NgioLabelMeta,
     55 )
     56 from ngio.ome_zarr_meta.ngio_specs._axes import (
     57     AxesSetup,
     58     DefaultSpaceUnit,
   (...)
     61     TimeUnits,
     62 )
---> 63 from ngio.tables import RoiTable
     64 from ngio.utils import (
     65     NgioDeprecationWarning,
     66     NgioFileExistsError,
   (...)
     69     ZarrGroupHandler,
     70 )
     71 from ngio.utils._zarr_utils import find_dimension_separator

File c:\Users\johan\miniforge[3](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/ngio/tables/__init__.py:3)\envs\autoscape\Lib\site-packages\ngio\tables\__init__.py:3
      1 """Ngio Tables implementations."""
----> 3 from ngio.tables._tables_container import (
      4     ConditionTable,
      5     FeatureTable,
      6     GenericRoiTable,
      7     MaskingRoiTable,
      8     RoiTable,
      9     Table,
     10     TablesContainer,
     11     TableType,
     12     TypedTable,
     13     open_table,
     14     open_table_as,
     15     open_tables_container,
     16 )
     17 from ngio.tables.backends import (
     18     DefaultTableBackend,
     19     ImplementedTableBackends,
     20     TableBackend,
     21     TableBackendProtocol,
     22 )
     23 from ngio.tables.v1._generic_table import GenericTable

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\ngio\tables\_tables_container.py:[5](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/ngio/tables/_tables_container.py:5)
      1 """Module for handling the /tables group in an OME-NGFF file."""
      3 from typing import Literal, Protocol, TypeVar
----> 5 import anndata as ad
      6 import pandas as pd
      7 import polars as pl

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\anndata\__init__.py:[29](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/anndata/__init__.py:29)
     25 if sys.version_info < (3, 11):
     26     # Backport package for exception groups
     27     import exceptiongroup  # noqa: F401
---> 29 from ._core.anndata import AnnData
     30 from ._core.merge import concat
     31 from ._core.raw import Raw

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\anndata\_core\anndata.py:[25](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/anndata/_core/anndata.py:25)
     22 from scipy import sparse
     23 from scipy.sparse import issparse
---> 25 from .. import utils
     26 from .._settings import settings
     27 from ..compat import DaskArray, SpArray, ZarrArray, _move_adj_mtx

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\anndata\utils.py:[15](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/anndata/utils.py:15)
     11 from scipy import sparse
     13 import anndata
---> 15 from ._core.sparse_dataset import BaseCompressedSparseDataset
     16 from .compat import CupyArray, CupySparseMatrix, DaskArray, SpArray
     17 from .logging import get_logger

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\anndata\_core\sparse_dataset.py:[32](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/anndata/_core/sparse_dataset.py:32)
     29 from scipy.sparse import _sparsetools
     31 from .. import abc
---> 32 from .._settings import settings
     33 from ..compat import H5Group, SpArray, ZarrArray, ZarrGroup, _read_attr
     34 from .index import _fix_slice_bounds, _subset, unpack_index

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\anndata\_settings.py:[17](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/anndata/_settings.py:17)
     14 from types import GenericAlias
     15 from typing import TYPE_CHECKING, Generic, NamedTuple, TypeVar, cast
---> 17 from anndata.compat import CAN_USE_SPARSE_ARRAY
     18 from anndata.compat.exceptiongroups import add_note
     20 if TYPE_CHECKING:

File c:\Users\johan\miniforge3\envs\autoscape\Lib\site-packages\anndata\compat\__init__.py:[97](file:///C:/Users/johan/miniforge3/envs/autoscape/Lib/site-packages/anndata/compat/__init__.py:97)
     94 import zarr
     96 if Version(zarr.__version__).major > 2:
---> 97     raise ImportError("zarr-python major version > 2 is not supported")
     99 from zarr.core import Array as ZarrArray
    100 from zarr.hierarchy import Group as ZarrGroup

ImportError: zarr-python major version > 2 is not supported

I am not familiar with anndata enough to make a good judgement here but it seems that anndata is pinned to zarr-python<3 whereas ngfio (at least the latest version) is pinned to zarr>3?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions