Skip to content

Commit fdb9957

Browse files
committed
Fixes for chunks with zeros
1 parent 0827b10 commit fdb9957

2 files changed

Lines changed: 4 additions & 3 deletions

File tree

src/blosc2/lazyexpr.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3148,7 +3148,8 @@ def __init__(self, func, inputs, dtype, shape=None, chunked_eval=True, **kwargs)
31483148

31493149
self.res_getitem = blosc2.empty(self._shape, self._dtype, **kwargs_getitem)
31503150
# Register a postfilter for getitem
3151-
self.res_getitem._set_postf_udf(self.func, id(self.inputs))
3151+
if 0 not in self._shape:
3152+
self.res_getitem._set_postf_udf(self.func, id(self.inputs))
31523153

31533154
self.inputs_dict = {f"o{i}": obj for i, obj in enumerate(self.inputs)}
31543155

src/blosc2/ndarray.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ def reshape(
314314
# Create the new array
315315
dst = empty(shape, dtype=src.dtype, **kwargs)
316316

317-
if is_inside_new_expr():
317+
if is_inside_new_expr() or 0 in shape:
318318
# We already have the dtype and shape, so return immediately
319319
return dst
320320

@@ -1679,7 +1679,7 @@ def __getitem__( # noqa: C901
16791679
return expr.where(self)
16801680

16811681
key_ = (key,) if not isinstance(key, tuple) else key
1682-
key_ = tuple(k[:] if isinstance(k, NDArray) else k for k in key_) # decompress NDArrays
1682+
key_ = tuple(k[()] if isinstance(k, NDArray) else k for k in key_) # decompress NDArrays
16831683
key_, mask = process_key(key_, self.shape) # internally handles key an integer
16841684

16851685
if builtins.any(isinstance(k, (list, np.ndarray)) for k in key_):

0 commit comments

Comments
 (0)