-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
doctest failure with numpy 1.20 #4858
Comments
@mark-boer @dcherian @max-sixty
Currently there are 3 different behaviors, depending on import xarray as xr
import numpy as np
arr = xr.DataArray([5, 6, 7], coords=[("x", [0, 1, 2])])
arr.pad(x=1, constant_values=np.nan)
# ValueError: cannot convert float NaN to integer
arr.pad(x=1, constant_values=None)
# casts arr to float
arr.pad(x=1, constant_values=1.5)
# casts constant_values to int xarray/xarray/core/dataarray.py Lines 3883 to 3892 in 5735e16
|
Hi, we had a similar discussion in de #3596, xarray makes a distinction between Check e.g. this comment: #3596 (comment) The example I posted in this comment:
Hmm, so numpy changed its behaviour? Then this example, should probably also fail in numpy 1.20. On a side note: I am not a big fan of the example in the doctest, it displays an edge case, which is not unique to I think the nicest solution would be to make the usage |
Thanks for the other examples. Yes these now also raise an error with numpy 1.20. What still does not raise is the following arr[0, 0] = np.nan (because this gets converted to My suggestion is:
|
I agree, I think that would be a good solutions for now, I think replacing the example is fine. Maybe we could even open a new issue, to discuss how xarray functions handle Is |
What happened:
Our doctests fail since numpy 1.20 came out:
https://github.com/pydata/xarray/pull/4760/checks?check_run_id=1818512841#step:8:69
What you expected to happen:
They don't ;-)
Minimal Complete Verifiable Example:
The following fails with numpy 1.20 while it converted
np.NaN
to an integer before (xarray.DataArray.pad at the bottom)requires numpy 1.20
Anything else we need to know?:
np.can_cast(constant_values.dtype, array.dtype)
(or similar) for a better error message.The text was updated successfully, but these errors were encountered: