diff --git a/doc/whats-new.rst b/doc/whats-new.rst index a35d03a070d..bbe1abcc6aa 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -26,6 +26,8 @@ Bug fixes ~~~~~~~~~ - Fix distribution of ``auto_complex`` keyword argument for open_datatree (:issue:`10631`, :pull:`10632`). By `Kai Mühlbauer `_. +- Warn instead of raise in case of misconfiguration of ``unlimited_dims`` originating from dataset.encoding, to prevent breaking users workflows (:issue:`10647`, :pull:`10648`). + By `Kai Mühlbauer `_. Documentation diff --git a/xarray/backends/api.py b/xarray/backends/api.py index 39698a686c0..4c4e5d30012 100644 --- a/xarray/backends/api.py +++ b/xarray/backends/api.py @@ -262,7 +262,10 @@ def _sanitize_unlimited_dims(dataset, unlimited_dims): f"but not part of current dataset dimensions. " f"Consider removing {undeclared_dims!r} from {msg_origin!r}." ) - raise ValueError(msg) + if msg_origin == "unlimited_dims-kwarg": + raise ValueError(msg) + else: + emit_user_level_warning(msg) return unlimited_dims diff --git a/xarray/tests/test_backends.py b/xarray/tests/test_backends.py index c336fe7bd0d..87895b815d0 100644 --- a/xarray/tests/test_backends.py +++ b/xarray/tests/test_backends.py @@ -1399,8 +1399,8 @@ def test_encoding_unlimited_dims(self) -> None: # test unlimited_dims validation # https://github.com/pydata/xarray/issues/10549 ds.encoding = {"unlimited_dims": "z"} - with pytest.raises( - ValueError, + with pytest.warns( + UserWarning, match=r"Unlimited dimension\(s\) .* declared in 'dataset.encoding'", ): with self.roundtrip(ds) as _: