diff --git a/doc/whats-new.rst b/doc/whats-new.rst index c8384e3f1eb..618fc72763d 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -24,6 +24,8 @@ Deprecations Bug fixes ~~~~~~~~~ +- Fix Pydap test_cmp_local_file for numpy 2.3.0 changes, 1. do always return arrays for all versions and 2. skip astype(str) for numpy >= 2.3.0 for expected data. (:pull:`10421`) + By `Kai Mühlbauer `_. Documentation diff --git a/xarray/tests/test_backends.py b/xarray/tests/test_backends.py index e40213e6f46..68ff9233080 100644 --- a/xarray/tests/test_backends.py +++ b/xarray/tests/test_backends.py @@ -5417,11 +5417,12 @@ def convert_to_pydap_dataset(self, original): @contextlib.contextmanager def create_datasets(self, **kwargs): with open_example_dataset("bears.nc") as expected: + # print("QQ0:", expected["bears"].load()) pydap_ds = self.convert_to_pydap_dataset(expected) actual = open_dataset(PydapDataStore(pydap_ds)) - # TODO solve this workaround: - # netcdf converts string to byte not unicode - expected["bears"] = expected["bears"].astype(str) + if Version(np.__version__) < Version("2.3.0"): + # netcdf converts string to byte not unicode + expected["bears"] = expected["bears"].astype(str) yield actual, expected def test_cmp_local_file(self) -> None: @@ -5441,7 +5442,9 @@ def test_cmp_local_file(self) -> None: assert_equal(actual[{"l": 2}], expected[{"l": 2}]) with self.create_datasets() as (actual, expected): - assert_equal(actual.isel(i=0, j=-1), expected.isel(i=0, j=-1)) + # always return arrays and not scalars + # scalars will be promoted to unicode for numpy >= 2.3.0 + assert_equal(actual.isel(i=[0], j=[-1]), expected.isel(i=[0], j=[-1])) with self.create_datasets() as (actual, expected): assert_equal(actual.isel(j=slice(1, 2)), expected.isel(j=slice(1, 2))) @@ -5463,7 +5466,9 @@ def test_compatible_to_netcdf(self) -> None: with create_tmp_file() as tmp_file: actual.to_netcdf(tmp_file) with open_dataset(tmp_file) as actual2: - actual2["bears"] = actual2["bears"].astype(str) + if Version(np.__version__) < Version("2.3.0"): + # netcdf converts string to byte not unicode + actual2["bears"] = actual2["bears"].astype(str) assert_equal(actual2, expected) @requires_dask pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy