Skip to content

Commit

Permalink
Deprecate non-array inputs to jnp.array_equal & jnp.array_equiv
Browse files Browse the repository at this point in the history
  • Loading branch information
jakevdp committed Nov 28, 2023
1 parent c855bb0 commit 13dd5e4
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ Remember to align the itemized text with the first line of an item within a list
It currently is converted to NaN, and in the future will raise a {obj}`TypeError`.
* Passing the `condition`, `x`, and `y` parameters to `jax.numpy.where` by
keyword arguments has been deprecated, to match `numpy.where`.
* Passing arguments to {func}`jax.numpy.array_equal` and {func}`jax.numpy.array_equiv`
that cannot be converted to a JAX array is deprecated and now raises a
{obj}`DeprecationWaning`. Currently the functions return False, in the future this
will raise an exception.


## jaxlib 0.4.21
Expand Down
14 changes: 12 additions & 2 deletions jax/_src/numpy/lax_numpy.py
Original file line number Diff line number Diff line change
Expand Up @@ -2298,7 +2298,12 @@ def _check_forgot_shape_tuple(name, shape, dtype) -> str | None: # type: ignore
def array_equal(a1: ArrayLike, a2: ArrayLike, equal_nan: bool = False) -> Array:
try:
a1, a2 = asarray(a1), asarray(a2)
except Exception:
except Exception as err:
# TODO(jakevdp): Deprecated 2023-11-23; change to error.
warnings.warn("Inputs to array_equal() cannot be coerced to array. "
"Returning False; in the future this will raise an exception.\n"
f"{err!r}",
DeprecationWarning, stacklevel=2)
return bool_(False)
if shape(a1) != shape(a2):
return bool_(False)
Expand All @@ -2312,7 +2317,12 @@ def array_equal(a1: ArrayLike, a2: ArrayLike, equal_nan: bool = False) -> Array:
def array_equiv(a1: ArrayLike, a2: ArrayLike) -> Array:
try:
a1, a2 = asarray(a1), asarray(a2)
except Exception:
except Exception as err:
# TODO(jakevdp): Deprecated 2023-11-23; change to error.
warnings.warn("Inputs to array_equiv() cannot be coerced to array. "
"Returning False; in the future this will raise an exception.\n"
f"{err!r}",
DeprecationWarning, stacklevel=2)
return bool_(False)
try:
eq = ufuncs.equal(a1, a2)
Expand Down

0 comments on commit 13dd5e4

Please sign in to comment.