From 941b8a8286178c13ee057d87a5198f163c174b0e Mon Sep 17 00:00:00 2001 From: Mathias Hauser Date: Mon, 7 Jun 2021 20:21:00 +0200 Subject: [PATCH 1/3] fix dask meta and output_dtypes error --- xarray/tests/test_computation.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/xarray/tests/test_computation.py b/xarray/tests/test_computation.py index b7ae1ca982..7759e7d6a8 100644 --- a/xarray/tests/test_computation.py +++ b/xarray/tests/test_computation.py @@ -1313,7 +1313,8 @@ def test_vectorize_dask_dtype_meta(): data_array = xr.DataArray([[0, 1, 2], [1, 2, 3]], dims=("x", "y")) expected = xr.DataArray([1, 2], dims=["x"]) - actual = apply_ufunc( + func = functools.partial( + apply_ufunc, pandas_median, data_array.chunk({"x": 1}), input_core_dims=[["y"]], @@ -1323,8 +1324,14 @@ def test_vectorize_dask_dtype_meta(): dask_gufunc_kwargs=dict(meta=np.ndarray((0, 0), dtype=float)), ) - assert_identical(expected, actual) - assert float == actual.dtype + # dask/dask#7669: can no longer pass output_dtypes and meta + if LooseVersion(dask.__version__) >= "2021.06": + with pytest.raises(ValueError): + func() + else: + actual = func() + assert_identical(expected, actual) + assert float == actual.dtype def pandas_median_add(x, y): From 2e51db563f82657a30a0b3d87f0ddab36a936fe9 Mon Sep 17 00:00:00 2001 From: Mathias Hauser Date: Mon, 7 Jun 2021 21:48:15 +0200 Subject: [PATCH 2/3] don't test in newer dask versions --- xarray/tests/test_computation.py | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/xarray/tests/test_computation.py b/xarray/tests/test_computation.py index 7759e7d6a8..92a543e14b 100644 --- a/xarray/tests/test_computation.py +++ b/xarray/tests/test_computation.py @@ -1306,15 +1306,17 @@ def test_vectorize_dask_dtype_without_output_dtypes(data_array): assert expected.dtype == actual.dtype -@pytest.mark.xfail(LooseVersion(dask.__version__) < "2.3", reason="dask GH5274") +@pytest.mark.skip( + LooseVersion(dask.__version__) > "2021.06", + reason="dask/dask#7669: can no longer pass output_dtypes and meta", +) @requires_dask def test_vectorize_dask_dtype_meta(): # meta dtype takes precedence data_array = xr.DataArray([[0, 1, 2], [1, 2, 3]], dims=("x", "y")) expected = xr.DataArray([1, 2], dims=["x"]) - func = functools.partial( - apply_ufunc, + actual = apply_ufunc( pandas_median, data_array.chunk({"x": 1}), input_core_dims=[["y"]], @@ -1324,14 +1326,8 @@ def test_vectorize_dask_dtype_meta(): dask_gufunc_kwargs=dict(meta=np.ndarray((0, 0), dtype=float)), ) - # dask/dask#7669: can no longer pass output_dtypes and meta - if LooseVersion(dask.__version__) >= "2021.06": - with pytest.raises(ValueError): - func() - else: - actual = func() - assert_identical(expected, actual) - assert float == actual.dtype + assert_identical(expected, actual) + assert float == actual.dtype def pandas_median_add(x, y): From a4cef6dac3fa5a84f144e56c63ce4b3b903681b4 Mon Sep 17 00:00:00 2001 From: Mathias Hauser Date: Mon, 7 Jun 2021 21:56:46 +0200 Subject: [PATCH 3/3] skipIF --- xarray/tests/test_computation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xarray/tests/test_computation.py b/xarray/tests/test_computation.py index 92a543e14b..09bed72496 100644 --- a/xarray/tests/test_computation.py +++ b/xarray/tests/test_computation.py @@ -1306,7 +1306,7 @@ def test_vectorize_dask_dtype_without_output_dtypes(data_array): assert expected.dtype == actual.dtype -@pytest.mark.skip( +@pytest.mark.skipif( LooseVersion(dask.__version__) > "2021.06", reason="dask/dask#7669: can no longer pass output_dtypes and meta", )