From e8412e1b5d5cb1d51872206ca8b0e96c6ec9577f Mon Sep 17 00:00:00 2001 From: Wei Ji <23487320+weiji14@users.noreply.github.com> Date: Mon, 24 Jun 2024 09:19:25 +1200 Subject: [PATCH 1/3] Fix doctest on cupy_xarray.accessors.CupyDataArrayAccessor.as_cupy Output type is now just `cupy.ndarray` instead of `cupy.core.core.ndarray`. Also updated pytest command in contributing.rst to include `--doctest-modules` flag. --- cupy_xarray/accessors.py | 2 +- docs/source/contributing.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cupy_xarray/accessors.py b/cupy_xarray/accessors.py index eacc35b..0f70e73 100644 --- a/cupy_xarray/accessors.py +++ b/cupy_xarray/accessors.py @@ -55,7 +55,7 @@ def as_cupy(self): >>> da = xr.tutorial.load_dataset("air_temperature").air >>> gda = da.cupy.as_cupy() >>> type(gda.data) - + """ if isinstance(self.da.data, dask_array_type): diff --git a/docs/source/contributing.rst b/docs/source/contributing.rst index d965369..52ebd3a 100644 --- a/docs/source/contributing.rst +++ b/docs/source/contributing.rst @@ -132,7 +132,7 @@ Running the test suite *cupy-xarray* uses the `pytest `_ framework for testing. You can run the test suite using:: - pytest cupy-xarray + pytest --doctest-modules cupy_xarray Contributing documentation ========================== From 126b0a9fb27415362e7b5642558709ab7ad92d7a Mon Sep 17 00:00:00 2001 From: Wei Ji <23487320+weiji14@users.noreply.github.com> Date: Sat, 22 Jun 2024 17:07:14 +1200 Subject: [PATCH 2/3] Fix ModuleNotFoundError: No module named 'xarray.core.pycompat' Xref https://github.com/pydata/xarray/blob/v2024.06.0/xarray/namedarray/pycompat.py#L21-L43 --- cupy_xarray/tests/test_accessors.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cupy_xarray/tests/test_accessors.py b/cupy_xarray/tests/test_accessors.py index cad6955..08d1d7b 100644 --- a/cupy_xarray/tests/test_accessors.py +++ b/cupy_xarray/tests/test_accessors.py @@ -1,10 +1,13 @@ import numpy as np import pytest import xarray as xr -from xarray.core.pycompat import dask_array_type +from xarray.namedarray.pycompat import DuckArrayModule import cupy_xarray # noqa: F401 +dsk = DuckArrayModule("dask") +dask_array_type = dsk.type + @pytest.fixture def tutorial_ds_air(): From 6229f999808e7b6826b0f7092ffa85f159548d2f Mon Sep 17 00:00:00 2001 From: Wei Ji <23487320+weiji14@users.noreply.github.com> Date: Tue, 25 Jun 2024 15:22:17 +1200 Subject: [PATCH 3/3] Use try-except instead of xr.namedarray.pycompat to get dask_array_type Co-Authored-By: Deepak Cherian --- cupy_xarray/accessors.py | 9 ++++++--- cupy_xarray/tests/test_accessors.py | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/cupy_xarray/accessors.py b/cupy_xarray/accessors.py index ee02359..04ede64 100644 --- a/cupy_xarray/accessors.py +++ b/cupy_xarray/accessors.py @@ -5,10 +5,13 @@ register_dataarray_accessor, register_dataset_accessor, ) -from xarray.namedarray.pycompat import DuckArrayModule -dsk = DuckArrayModule("dask") -dask_array_type = dsk.type +try: + import dask.array + + dask_array_type = dask.array.Array +except ImportError: + dask_array_type = None @register_dataarray_accessor("cupy") diff --git a/cupy_xarray/tests/test_accessors.py b/cupy_xarray/tests/test_accessors.py index 08d1d7b..1d86a4e 100644 --- a/cupy_xarray/tests/test_accessors.py +++ b/cupy_xarray/tests/test_accessors.py @@ -1,12 +1,15 @@ import numpy as np import pytest import xarray as xr -from xarray.namedarray.pycompat import DuckArrayModule import cupy_xarray # noqa: F401 -dsk = DuckArrayModule("dask") -dask_array_type = dsk.type +try: + import dask.array + + dask_array_type = dask.array.Array +except ImportError: + dask_array_type = None @pytest.fixture