From 73b10e37fdcb141f73eb657dccf0c15b273c2128 Mon Sep 17 00:00:00 2001 From: Eugene M Date: Fri, 14 Feb 2025 15:32:09 -0500 Subject: [PATCH] ENH: accept str for dataset in HDF5ArrayAdapter --- tiled/adapters/hdf5.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tiled/adapters/hdf5.py b/tiled/adapters/hdf5.py index d38f961e7..150dfbe3a 100644 --- a/tiled/adapters/hdf5.py +++ b/tiled/adapters/hdf5.py @@ -126,7 +126,8 @@ def __init__( @classmethod def from_catalog( cls, - data_source: DataSource, + # An HDF5 node may reference a dataset (array) or group (container). + data_source: DataSource[Union[ArrayStructure, None]], node: Node, /, swmr: bool = SWMR_DEFAULT, @@ -154,6 +155,8 @@ def from_catalog( specs=node.specs, ) dataset = kwargs.get("dataset") or kwargs.get("path") or [] + if isinstance(dataset, str): + dataset = dataset.split('/') for segment in dataset: adapter = adapter.get(segment) # type: ignore if adapter is None: @@ -345,7 +348,7 @@ def from_catalog( data_source: DataSource, node: Node, /, - dataset: Optional[list[str]] = None, + dataset: Optional[str] = None, slice: Optional[str | Tuple[Union[int, builtins.slice, EllipsisType], ...]] = None, squeeze: bool = False, swmr: bool = SWMR_DEFAULT, @@ -363,8 +366,6 @@ def from_catalog( structure = data_source.structure file_paths = [path_from_uri(ast.data_uri) for ast in data_source.assets] - if dataset is not None: - dataset = "/".join(dataset) array = cls.lazy_load_hdf5_array( *file_paths, dataset=dataset, swmr=swmr, libver=libver @@ -410,6 +411,7 @@ def from_uris( **kwargs: Optional[Any], ) -> "HDF5ArrayAdapter": file_paths = [path_from_uri(uri) for uri in data_uris] + array = cls.lazy_load_hdf5_array( *file_paths, dataset=dataset, swmr=swmr, libver=libver )