Skip to content

Commit ea96e9b

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 cf3f717 commit ea96e9b

File tree

5 files changed

+266
-512
lines changed

5 files changed

+266
-512
lines changed

array_api_strict/_array_object.py

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

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

0 commit comments

Comments
 (0)