From 0eed377be58e46480d1b6a12453510247962996f Mon Sep 17 00:00:00 2001 From: "Mads R. B. Kristensen" Date: Tue, 13 Sep 2022 08:20:56 +0200 Subject: [PATCH] Removed the `on_error argument` --- zarr/_storage/store.py | 20 ++------------------ zarr/storage.py | 7 ++----- 2 files changed, 4 insertions(+), 23 deletions(-) diff --git a/zarr/_storage/store.py b/zarr/_storage/store.py index 3ff5e59555..c9bd272e2c 100644 --- a/zarr/_storage/store.py +++ b/zarr/_storage/store.py @@ -131,9 +131,7 @@ def _ensure_store(store: Any): f"wrap it in Zarr.storage.KVStore. Got {store}" ) - def getitems( - self, keys: Iterable[str], meta_array: NDArrayLike, *, on_error: str = "omit" - ) -> Mapping[str, Any]: + def getitems(self, keys: Iterable[str], meta_array: NDArrayLike) -> Mapping[str, Any]: """Retrieve data from multiple keys. Parameters @@ -144,10 +142,6 @@ def getitems( An array instance to use for determining the output type. For now, this is only a hint and can be ignore by the implementation, in which case the type of the output is the same as calling __getitem__() for each key in keys. - on_error : str, optional - The policy on how to handle exceptions when retrieving keys. For now, the - only supported policy is "omit", which means that failing keys are omitted - from the returned result. Returns ------- @@ -161,17 +155,7 @@ def getitems( reads of multiple keys and/or to utilize the meta_array argument. """ - # Please overwrite `getitems` to support non-default values of `on_error` - if on_error != "omit": - raise ValueError(f"{self.__class__} doesn't support on_error='{on_error}'") - - ret = {} - for k in keys: - try: - ret[k] = self[k] - except Exception: - pass # Omit keys that fails - return ret + return {k: self[k] for k in keys if k in self} class Store(BaseStore): diff --git a/zarr/storage.py b/zarr/storage.py index 571680cc49..21976f72b5 100644 --- a/zarr/storage.py +++ b/zarr/storage.py @@ -1365,14 +1365,11 @@ def _normalize_key(self, key): return key.lower() if self.normalize_keys else key def getitems( - self, keys: Iterable[str], meta_array: NDArrayLike, *, on_error: str = "omit" + self, keys: Iterable[str], meta_array: NDArrayLike ) -> Mapping[str, Any]: - if on_error != "omit": - raise ValueError(f"{self.__class__} doesn't support on_error='{on_error}'") - keys_transformed = [self._normalize_key(key) for key in keys] - results = self.map.getitems(keys_transformed, on_error=on_error) + results = self.map.getitems(keys_transformed, on_error="omit") # The function calling this method may not recognize the transformed keys # So we send the values returned by self.map.getitems back into the original key space. return {keys[keys_transformed.index(rk)]: rv for rk, rv in results.items()}