Skip to content

Commit 53b626b

Browse files
committed
Honor storage defaults, even if not storage= param is used
1 parent 8bd5627 commit 53b626b

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/blosc2/ndarray.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3624,17 +3624,22 @@ def asarray(array: np.ndarray | blosc2.C2Array, **kwargs: Any) -> NDArray:
36243624

36253625

36263626
def _check_ndarray_kwargs(**kwargs): # noqa: C901
3627-
if "storage" in kwargs:
3627+
storage = kwargs.get("storage")
3628+
if storage is not None:
36283629
for key in kwargs:
36293630
if key in list(blosc2.Storage.__annotations__):
36303631
raise AttributeError(
36313632
"Cannot pass both `storage` and other kwargs already included in Storage"
36323633
)
3633-
storage = kwargs.get("storage")
36343634
if isinstance(storage, blosc2.Storage):
36353635
kwargs = {**kwargs, **asdict(storage)}
36363636
else:
36373637
kwargs = {**kwargs, **storage}
3638+
else:
3639+
# Add the default storage values as long as they are not already passed
3640+
storage_dflts = asdict(blosc2.Storage(urlpath=kwargs.get("urlpath"))) # urlpath can affect defaults
3641+
not_passed = {k: v for k, v in storage_dflts.items() if k not in kwargs}
3642+
kwargs = {**kwargs, **not_passed}
36383643

36393644
supported_keys = [
36403645
"chunks",

0 commit comments

Comments
 (0)