d3af5d70ef
* Add test for rechunking to a size string by @dcherian in #9117 * Update docstring in api.py for open_mfdataset(), clarifying "chunks" argument by @arthur-e in #9121 * Grouper refactor by @dcherian in #9122 * adjust repr tests to account for different platforms (#9127) by @mgorny in #9128 * Support duplicate dimensions in .chunk by @mraspaud in #9099 * Update zendoo badge link by @max-sixty in #9133 * Split out distributed writes in zarr docs by @max-sixty in #9132 * Improve to_zarr docs by @max-sixty in #9139 * groupby: remove some internal use of IndexVariable by @dcherian in #9123 * Improve zarr chunks docs by @max-sixty in #9140 * Include numbagg in type checks by @max-sixty in #9159 * Remove mypy exclusions for a couple more libraries by @max-sixty in #9160 * Add test for #9155 by @max-sixty in #9161 * switch to datetime unit "D" by @keewis in #9170 * Slightly improve DataTree repr by @shoyer in #9064 * Fix example code formatting for CachingFileManager by @djhoese in #9178 * Change np.core.defchararray to np.char (#9165) by @pont-us in #9166 * temporarily remove pydap from CI by @keewis in #9183 * also pin numpy in the all-but-dask CI by @keewis in #9184 * promote floating-point numeric datetimes to 64-bit before decoding by @keewis in #9182 * "source" encoding for datasets opened from fsspec objects by OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-xarray?expand=0&rev=99
119 lines
4.6 KiB
Diff
119 lines
4.6 KiB
Diff
From 9406c49fb281d9ffbf88bfd46133288bd23649a4 Mon Sep 17 00:00:00 2001
|
|
From: Deepak Cherian <deepak@cherian.net>
|
|
Date: Tue, 6 Aug 2024 22:21:29 -0600
|
|
Subject: [PATCH 1/2] Fix some dask tests
|
|
|
|
---
|
|
xarray/tests/test_dask.py | 18 +++++++++++-------
|
|
1 file changed, 11 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/xarray/tests/test_dask.py b/xarray/tests/test_dask.py
|
|
index 20491eca91a..1ef759b3d6a 100644
|
|
--- a/xarray/tests/test_dask.py
|
|
+++ b/xarray/tests/test_dask.py
|
|
@@ -640,8 +640,10 @@ def counting_get(*args, **kwargs):
|
|
|
|
def test_duplicate_dims(self):
|
|
data = np.random.normal(size=(4, 4))
|
|
- arr = DataArray(data, dims=("x", "x"))
|
|
- chunked_array = arr.chunk({"x": 2})
|
|
+ with pytest.warns(UserWarning, match="Duplicate dimension"):
|
|
+ arr = DataArray(data, dims=("x", "x"))
|
|
+ with pytest.warns(UserWarning, match="Duplicate dimension"):
|
|
+ chunked_array = arr.chunk({"x": 2})
|
|
assert chunked_array.chunks == ((2, 2), (2, 2))
|
|
assert chunked_array.chunksizes == {"x": (2, 2)}
|
|
|
|
@@ -1364,7 +1366,8 @@ def test_map_blocks_ds_transformations(func, map_ds):
|
|
@pytest.mark.parametrize("obj", [make_da(), make_ds()])
|
|
def test_map_blocks_da_ds_with_template(obj):
|
|
func = lambda x: x.isel(x=[1])
|
|
- template = obj.isel(x=[1, 5, 9])
|
|
+ # a simple .isel(x=[1, 5, 9]) puts all those in a single chunk.
|
|
+ template = xr.concat([obj.isel(x=[i]) for i in [1, 5, 9]], dim="x")
|
|
with raise_if_dask_computes():
|
|
actual = xr.map_blocks(func, obj, template=template)
|
|
assert_identical(actual, template)
|
|
@@ -1395,15 +1398,16 @@ def test_map_blocks_roundtrip_string_index():
|
|
|
|
def test_map_blocks_template_convert_object():
|
|
da = make_da()
|
|
+ ds = da.to_dataset()
|
|
+
|
|
func = lambda x: x.to_dataset().isel(x=[1])
|
|
- template = da.to_dataset().isel(x=[1, 5, 9])
|
|
+ template = xr.concat([da.to_dataset().isel(x=[i]) for i in [1, 5, 9]], dim="x")
|
|
with raise_if_dask_computes():
|
|
actual = xr.map_blocks(func, da, template=template)
|
|
assert_identical(actual, template)
|
|
|
|
- ds = da.to_dataset()
|
|
func = lambda x: x.to_dataarray().isel(x=[1])
|
|
- template = ds.to_dataarray().isel(x=[1, 5, 9])
|
|
+ template = xr.concat([ds.to_dataarray().isel(x=[i]) for i in [1, 5, 9]], dim="x")
|
|
with raise_if_dask_computes():
|
|
actual = xr.map_blocks(func, ds, template=template)
|
|
assert_identical(actual, template)
|
|
@@ -1429,7 +1433,7 @@ def test_map_blocks_errors_bad_template(obj):
|
|
xr.map_blocks(
|
|
lambda a: a.isel(x=[1]).assign_coords(x=[120]), # assign bad index values
|
|
obj,
|
|
- template=obj.isel(x=[1, 5, 9]),
|
|
+ template=xr.concat([obj.isel(x=[i]) for i in [1, 5, 9]], dim="x"),
|
|
).compute()
|
|
|
|
|
|
|
|
From 6fa200e542fe18b99a86a53126c10639192ea5e1 Mon Sep 17 00:00:00 2001
|
|
From: Deepak Cherian <deepak@cherian.net>
|
|
Date: Tue, 6 Aug 2024 22:29:24 -0600
|
|
Subject: [PATCH 2/2] Cleanup
|
|
|
|
---
|
|
xarray/tests/test_variable.py | 11 +++++------
|
|
1 file changed, 5 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/xarray/tests/test_variable.py b/xarray/tests/test_variable.py
|
|
index 3f3f1756e45..ff6522c00eb 100644
|
|
--- a/xarray/tests/test_variable.py
|
|
+++ b/xarray/tests/test_variable.py
|
|
@@ -318,12 +318,11 @@ def test_datetime64_valid_range(self):
|
|
with pytest.raises(pderror, match=r"Out of bounds nanosecond"):
|
|
self.cls(["t"], [data])
|
|
|
|
- @pytest.mark.xfail(reason="pandas issue 36615")
|
|
@pytest.mark.filterwarnings("ignore:Converting non-nanosecond")
|
|
def test_timedelta64_valid_range(self):
|
|
data = np.timedelta64("200000", "D")
|
|
pderror = pd.errors.OutOfBoundsTimedelta
|
|
- with pytest.raises(pderror, match=r"Out of bounds nanosecond"):
|
|
+ with pytest.raises(pderror, match=r"Cannot convert"):
|
|
self.cls(["t"], [data])
|
|
|
|
def test_pandas_data(self):
|
|
@@ -2301,20 +2300,20 @@ def test_chunk(self):
|
|
assert blocked.chunks == ((3,), (3, 1))
|
|
assert blocked.data.name != first_dask_name
|
|
|
|
- @pytest.mark.xfail
|
|
+ @pytest.mark.skip
|
|
def test_0d_object_array_with_list(self):
|
|
super().test_0d_object_array_with_list()
|
|
|
|
- @pytest.mark.xfail
|
|
+ @pytest.mark.skip
|
|
def test_array_interface(self):
|
|
# dask array does not have `argsort`
|
|
super().test_array_interface()
|
|
|
|
- @pytest.mark.xfail
|
|
+ @pytest.mark.skip
|
|
def test_copy_index(self):
|
|
super().test_copy_index()
|
|
|
|
- @pytest.mark.xfail
|
|
+ @pytest.mark.skip
|
|
@pytest.mark.filterwarnings("ignore:elementwise comparison failed.*:FutureWarning")
|
|
def test_eq_all_dtypes(self):
|
|
super().test_eq_all_dtypes()
|