Skip to content

Commit 5ddba5b

Browse files
committed
ENH: allow python scalars in binary elementwise functions
Allow func(array, scalar) and func(scalar, array), raise on func(scalar, scalar) if API_VERSION>=2024.12 cross-ref data-apis/array-api#807 To make sure it is all uniform, 1. Generate all binary "ufuncs" in a uniform way, with a decorator 2. Make binary "ufuncs" follow the same logic of the binary operators 3. Reuse the test loop of Array.__binop__ for binary "ufuncs" 4. (minor) in tests, reuse canonical names for dtype categories ("integer or boolean" vs "integer_or_boolean")
1 parent d086c61 commit 5ddba5b

5 files changed

+266
-512
lines changed

array_api_strict/_array_object.py

+2
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,8 @@ def _check_device(self, other):
234234
elif isinstance(other, Array):
235235
if self.device != other.device:
236236
raise ValueError(f"Arrays from two different devices ({self.device} and {other.device}) can not be combined.")
237+
else:
238+
raise TypeError(f"Cannot combine an Array with {type(other)}.")
237239

238240
# Helper function to match the type promotion rules in the spec
239241
def _promote_scalar(self, scalar):

0 commit comments

Comments
 (0)