Skip to content

Commit 12c5e2c

Browse files
committed
Fix dtype handling
1 parent 6625dbd commit 12c5e2c

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

src/blosc2/lazyexpr.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2268,21 +2268,14 @@ def __init__(self, new_op): # noqa: C901
22682268
self.operands = {"o0": value1, "o1": value2}
22692269
self.expression = f"{op}(o0, o1)"
22702270
return
2271-
elif value2 is None:
2272-
if isinstance(value1, LazyExpr):
2273-
self.expression = f"{op}({value1.expression})"
2274-
self.operands = value1.operands
2275-
else:
2276-
self.operands = {"o0": value1}
2277-
self.expression = "o0" if op is None else f"{op}(o0)"
2278-
return
22792271
elif isinstance(value1, LazyExpr) or isinstance(value2, LazyExpr):
22802272
if isinstance(value1, LazyExpr):
22812273
newexpr = value1.update_expr(new_op)
22822274
else:
22832275
newexpr = value2.update_expr(new_op)
22842276
self.expression = newexpr.expression
22852277
self.operands = newexpr.operands
2278+
self._dtype = newexpr.dtype
22862279
return
22872280

22882281
self._dtype = dtype_
@@ -2339,6 +2332,7 @@ def update_expr(self, new_op): # noqa: C901
23392332
# One of the two operands are LazyExpr instances
23402333
try:
23412334
value1, op, value2 = new_op
2335+
dtype_ = check_dtype(op, value1, value2) # conserve dtype
23422336
# The new expression and operands
23432337
expression = None
23442338
new_operands = {}
@@ -2402,7 +2396,9 @@ def update_expr(self, new_op): # noqa: C901
24022396
self.operands = value2.operands
24032397
# Return a new expression
24042398
operands = self.operands | new_operands
2405-
return self._new_expr(expression, operands, guess=False, out=None, where=None)
2399+
expr = self._new_expr(expression, operands, guess=False, out=None, where=None)
2400+
expr._dtype = dtype_ # override dtype with preserved dtype
2401+
return expr
24062402
finally:
24072403
blosc2._disable_overloaded_equal = prev_flag
24082404

0 commit comments

Comments
 (0)