From ecace84530eb8e2ff1d67a70a57ee7b0e85294d5 Mon Sep 17 00:00:00 2001 From: Ravenin7 Date: Mon, 13 Mar 2023 17:35:33 +0530 Subject: [PATCH 1/6] Fixed unneeded ValueError --- xarray/core/computation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xarray/core/computation.py b/xarray/core/computation.py index 2305e753cee..e84f3df05f0 100644 --- a/xarray/core/computation.py +++ b/xarray/core/computation.py @@ -1968,7 +1968,7 @@ def polyval( raise ValueError( f"Dimension `{degree_dim}` should be a coordinate variable with labels." ) - if not np.issubdtype(coeffs[degree_dim].dtype, int): + if coeffs[degree_dim].dtype.kind not in 'i': raise ValueError( f"Dimension `{degree_dim}` should be of integer dtype. Received {coeffs[degree_dim].dtype} instead." ) From d4b845cf45f823a4ec796d0504f8a7c6028fed7c Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 13 Mar 2023 12:25:32 +0000 Subject: [PATCH 2/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- xarray/core/computation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xarray/core/computation.py b/xarray/core/computation.py index e84f3df05f0..509a7109ac1 100644 --- a/xarray/core/computation.py +++ b/xarray/core/computation.py @@ -1968,7 +1968,7 @@ def polyval( raise ValueError( f"Dimension `{degree_dim}` should be a coordinate variable with labels." ) - if coeffs[degree_dim].dtype.kind not in 'i': + if coeffs[degree_dim].dtype.kind not in "i": raise ValueError( f"Dimension `{degree_dim}` should be of integer dtype. Received {coeffs[degree_dim].dtype} instead." ) From fb27a96537355aa7f56f30de186a13a06edc8cb2 Mon Sep 17 00:00:00 2001 From: Ravenin7 Date: Mon, 13 Mar 2023 17:35:33 +0530 Subject: [PATCH 3/6] Fixed unneeded ValueError --- xarray/core/computation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xarray/core/computation.py b/xarray/core/computation.py index 2305e753cee..9b282d32a45 100644 --- a/xarray/core/computation.py +++ b/xarray/core/computation.py @@ -1968,7 +1968,7 @@ def polyval( raise ValueError( f"Dimension `{degree_dim}` should be a coordinate variable with labels." ) - if not np.issubdtype(coeffs[degree_dim].dtype, int): + if not np.issubdtype(coeffs[degree_dim].dtype, np.integer): raise ValueError( f"Dimension `{degree_dim}` should be of integer dtype. Received {coeffs[degree_dim].dtype} instead." ) From 8d46c20b64567fcef2f5ebd045972b302e9e3e3e Mon Sep 17 00:00:00 2001 From: dcherian Date: Tue, 14 Mar 2023 20:49:17 -0600 Subject: [PATCH 4/6] Revert "Merge" This reverts commit 87a82a25e3bbd0d11b0a9ca5bd384918abdb8298, reversing changes made to fb27a96537355aa7f56f30de186a13a06edc8cb2. --- xarray/core/computation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xarray/core/computation.py b/xarray/core/computation.py index 509a7109ac1..9b282d32a45 100644 --- a/xarray/core/computation.py +++ b/xarray/core/computation.py @@ -1968,7 +1968,7 @@ def polyval( raise ValueError( f"Dimension `{degree_dim}` should be a coordinate variable with labels." ) - if coeffs[degree_dim].dtype.kind not in "i": + if not np.issubdtype(coeffs[degree_dim].dtype, np.integer): raise ValueError( f"Dimension `{degree_dim}` should be of integer dtype. Received {coeffs[degree_dim].dtype} instead." ) From e79d31d2288deae7db4b964df8e740c4b04e3384 Mon Sep 17 00:00:00 2001 From: Michael Niklas Date: Wed, 22 Mar 2023 20:14:29 +0100 Subject: [PATCH 5/6] add to whats-new --- doc/whats-new.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index db8c43d3726..6bfdf0b6f0a 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -35,6 +35,8 @@ Deprecations Bug fixes ~~~~~~~~~ +- Fix :py:meth:`xr.polyval` with non-system standard integer coeffs (:pull:`7619`). + By `Shreyal Gupta `_ and `Michael Niklas `_. Documentation ~~~~~~~~~~~~~ From dfad7a5d1483a83dfef1b73ee9c7296494e0b669 Mon Sep 17 00:00:00 2001 From: Michael Niklas Date: Wed, 22 Mar 2023 20:20:28 +0100 Subject: [PATCH 6/6] add tests --- xarray/tests/test_computation.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/xarray/tests/test_computation.py b/xarray/tests/test_computation.py index 8e45a07d6a2..3c10e3f27ab 100644 --- a/xarray/tests/test_computation.py +++ b/xarray/tests/test_computation.py @@ -2092,6 +2092,36 @@ def test_where_attrs() -> None: xr.DataArray([1000.0, 2000.0, 3000.0], dims="x"), id="timedelta", ), + pytest.param( + xr.DataArray([1, 2, 3], dims="x"), + xr.DataArray( + [2, 3, 4], + dims="degree", + coords={"degree": np.array([0, 1, 2], dtype=np.int64)}, + ), + xr.DataArray([9, 2 + 6 + 16, 2 + 9 + 36], dims="x"), + id="int64-degree", + ), + pytest.param( + xr.DataArray([1, 2, 3], dims="x"), + xr.DataArray( + [2, 3, 4], + dims="degree", + coords={"degree": np.array([0, 1, 2], dtype=np.int32)}, + ), + xr.DataArray([9, 2 + 6 + 16, 2 + 9 + 36], dims="x"), + id="int32-degree", + ), + pytest.param( + xr.DataArray([1, 2, 3], dims="x"), + xr.DataArray( + [2, 3, 4], + dims="degree", + coords={"degree": np.array([0, 1, 2], dtype=np.uint8)}, + ), + xr.DataArray([9, 2 + 6 + 16, 2 + 9 + 36], dims="x"), + id="uint8-degree", + ), ], ) def test_polyval(