Skip to content

Commit 18454c2

Browse files
authored
Remove some warnings in tests (#6986)
* catch all nan warning * filter more warnings * fix deprecated ravel returning ndarray * more deprecation warnings removed
1 parent a6a6ac0 commit 18454c2

File tree

6 files changed

+44
-30
lines changed

6 files changed

+44
-30
lines changed

xarray/coding/times.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ def infer_calendar_name(dates) -> CFCalendar:
362362
elif dates.dtype == np.dtype("O") and dates.size > 0:
363363
# Logic copied from core.common.contains_cftime_datetimes.
364364
if cftime is not None:
365-
sample = dates.ravel()[0]
365+
sample = np.asarray(dates).flat[0]
366366
if is_duck_dask_array(sample):
367367
sample = sample.compute()
368368
if isinstance(sample, np.ndarray):
@@ -587,7 +587,7 @@ def encode_datetime(d):
587587

588588

589589
def cast_to_int_if_safe(num):
590-
int_num = np.array(num, dtype=np.int64)
590+
int_num = np.asarray(num, dtype=np.int64)
591591
if (num == int_num).all():
592592
num = int_num
593593
return num

xarray/core/common.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,7 +1076,9 @@ def _dataarray_indexer(dim: Hashable) -> DataArray:
10761076
return cond.any(dim=(d for d in cond.dims if d != dim))
10771077

10781078
def _dataset_indexer(dim: Hashable) -> DataArray:
1079-
cond_wdim = cond.drop(var for var in cond if dim not in cond[var].dims)
1079+
cond_wdim = cond.drop_vars(
1080+
var for var in cond if dim not in cond[var].dims
1081+
)
10801082
keepany = cond_wdim.any(dim=(d for d in cond.dims.keys() if d != dim))
10811083
return keepany.to_array().any("variable")
10821084

@@ -1758,7 +1760,7 @@ def _contains_cftime_datetimes(array) -> bool:
17581760
return False
17591761
else:
17601762
if array.dtype == np.dtype("O") and array.size > 0:
1761-
sample = array.ravel()[0]
1763+
sample = np.asarray(array).flat[0]
17621764
if is_duck_dask_array(sample):
17631765
sample = sample.compute()
17641766
if isinstance(sample, np.ndarray):

xarray/core/merge.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,7 @@ def coerce_pandas_values(objects: Iterable[CoercibleMapping]) -> list[DatasetLik
487487
else:
488488
variables = {}
489489
if isinstance(obj, PANDAS_TYPES):
490-
obj = dict(obj.iteritems())
490+
obj = dict(obj.items())
491491
for k, v in obj.items():
492492
if isinstance(v, PANDAS_TYPES):
493493
v = DataArray(v)

xarray/tests/test_array_api.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
from typing import Tuple
1+
from __future__ import annotations
2+
3+
import warnings
24

35
import pytest
46

@@ -7,49 +9,51 @@
79

810
np = pytest.importorskip("numpy", minversion="1.22")
911

10-
import numpy.array_api as xp # isort:skip
11-
from numpy.array_api._array_object import Array # isort:skip
12+
with warnings.catch_warnings():
13+
warnings.simplefilter("ignore")
14+
import numpy.array_api as xp # isort:skip
15+
from numpy.array_api._array_object import Array # isort:skip
1216

1317

1418
@pytest.fixture
15-
def arrays() -> Tuple[xr.DataArray, xr.DataArray]:
19+
def arrays() -> tuple[xr.DataArray, xr.DataArray]:
1620
np_arr = xr.DataArray(np.ones((2, 3)), dims=("x", "y"), coords={"x": [10, 20]})
1721
xp_arr = xr.DataArray(xp.ones((2, 3)), dims=("x", "y"), coords={"x": [10, 20]})
1822
assert isinstance(xp_arr.data, Array)
1923
return np_arr, xp_arr
2024

2125

22-
def test_arithmetic(arrays) -> None:
26+
def test_arithmetic(arrays: tuple[xr.DataArray, xr.DataArray]) -> None:
2327
np_arr, xp_arr = arrays
2428
expected = np_arr + 7
2529
actual = xp_arr + 7
2630
assert isinstance(actual.data, Array)
2731
assert_equal(actual, expected)
2832

2933

30-
def test_aggregation(arrays) -> None:
34+
def test_aggregation(arrays: tuple[xr.DataArray, xr.DataArray]) -> None:
3135
np_arr, xp_arr = arrays
3236
expected = np_arr.sum(skipna=False)
3337
actual = xp_arr.sum(skipna=False)
3438
assert isinstance(actual.data, Array)
3539
assert_equal(actual, expected)
3640

3741

38-
def test_indexing(arrays) -> None:
42+
def test_indexing(arrays: tuple[xr.DataArray, xr.DataArray]) -> None:
3943
np_arr, xp_arr = arrays
4044
expected = np_arr[:, 0]
4145
actual = xp_arr[:, 0]
4246
assert isinstance(actual.data, Array)
4347
assert_equal(actual, expected)
4448

4549

46-
def test_properties(arrays) -> None:
50+
def test_properties(arrays: tuple[xr.DataArray, xr.DataArray]) -> None:
4751
np_arr, xp_arr = arrays
4852
assert np_arr.nbytes == np_arr.data.nbytes
4953
assert xp_arr.nbytes == np_arr.data.nbytes
5054

5155

52-
def test_reorganizing_operation(arrays) -> None:
56+
def test_reorganizing_operation(arrays: tuple[xr.DataArray, xr.DataArray]) -> None:
5357
np_arr, xp_arr = arrays
5458
expected = np_arr.transpose()
5559
actual = xp_arr.transpose()

xarray/tests/test_duck_array_ops.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,9 @@ def assert_dask_array(da, dask):
286286

287287

288288
@arm_xfail
289-
@pytest.mark.filterwarnings("ignore::RuntimeWarning")
289+
@pytest.mark.filterwarnings("ignore:All-NaN .* encountered:RuntimeWarning")
290290
@pytest.mark.parametrize("dask", [False, True] if has_dask else [False])
291-
def test_datetime_mean(dask):
291+
def test_datetime_mean(dask: bool) -> None:
292292
# Note: only testing numpy, as dask is broken upstream
293293
da = DataArray(
294294
np.array(["2010-01-01", "NaT", "2010-01-03", "NaT", "NaT"], dtype="M8[ns]"),

xarray/tests/test_weighted.py

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,28 @@
66
import pytest
77

88
import xarray as xr
9-
from xarray import DataArray
9+
from xarray import DataArray, Dataset
1010
from xarray.tests import assert_allclose, assert_equal
1111

1212
from . import raise_if_dask_computes, requires_cftime, requires_dask
1313

1414

1515
@pytest.mark.parametrize("as_dataset", (True, False))
16-
def test_weighted_non_DataArray_weights(as_dataset):
16+
def test_weighted_non_DataArray_weights(as_dataset: bool) -> None:
1717

18-
data = DataArray([1, 2])
18+
data: DataArray | Dataset = DataArray([1, 2])
1919
if as_dataset:
2020
data = data.to_dataset(name="data")
2121

2222
with pytest.raises(ValueError, match=r"`weights` must be a DataArray"):
23-
data.weighted([1, 2])
23+
data.weighted([1, 2]) # type: ignore
2424

2525

2626
@pytest.mark.parametrize("as_dataset", (True, False))
2727
@pytest.mark.parametrize("weights", ([np.nan, 2], [np.nan, np.nan]))
28-
def test_weighted_weights_nan_raises(as_dataset, weights):
28+
def test_weighted_weights_nan_raises(as_dataset: bool, weights: list[float]) -> None:
2929

30-
data = DataArray([1, 2])
30+
data: DataArray | Dataset = DataArray([1, 2])
3131
if as_dataset:
3232
data = data.to_dataset(name="data")
3333

@@ -271,22 +271,30 @@ def test_weighted_quantile_nan(skipna):
271271
@pytest.mark.parametrize(
272272
"da",
273273
(
274-
[1, 1.9, 2.2, 3, 3.7, 4.1, 5],
275-
[1, 1.9, 2.2, 3, 3.7, 4.1, np.nan],
276-
[np.nan, np.nan, np.nan],
274+
pytest.param([1, 1.9, 2.2, 3, 3.7, 4.1, 5], id="nonan"),
275+
pytest.param([1, 1.9, 2.2, 3, 3.7, 4.1, np.nan], id="singlenan"),
276+
pytest.param(
277+
[np.nan, np.nan, np.nan],
278+
id="allnan",
279+
marks=pytest.mark.filterwarnings(
280+
"ignore:All-NaN slice encountered:RuntimeWarning"
281+
),
282+
),
277283
),
278284
)
279285
@pytest.mark.parametrize("q", (0.5, (0.2, 0.8)))
280286
@pytest.mark.parametrize("skipna", (True, False))
281287
@pytest.mark.parametrize("factor", [1, 3.14])
282-
def test_weighted_quantile_equal_weights(da, q, skipna, factor):
288+
def test_weighted_quantile_equal_weights(
289+
da: list[float], q: float | tuple[float, ...], skipna: bool, factor: float
290+
) -> None:
283291
# if all weights are equal (!= 0), should yield the same result as quantile
284292

285-
da = DataArray(da)
286-
weights = xr.full_like(da, factor)
293+
data = DataArray(da)
294+
weights = xr.full_like(data, factor)
287295

288-
expected = da.quantile(q, skipna=skipna)
289-
result = da.weighted(weights).quantile(q, skipna=skipna)
296+
expected = data.quantile(q, skipna=skipna)
297+
result = data.weighted(weights).quantile(q, skipna=skipna)
290298

291299
assert_allclose(expected, result)
292300

0 commit comments

Comments
 (0)