From 58c8a3eadabcc139abd31360586f625adf908c8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20M=C3=BChlbauer?= Date: Sat, 16 Aug 2025 10:31:25 +0200 Subject: [PATCH 1/2] In case of misconfiguration of `unlimited_dims` warn instead of raise if originating from dataset.encoding --- xarray/backends/api.py | 5 ++++- xarray/tests/test_backends.py | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) 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 _: From 697d64c4b8bb86ec32963f4c03deecf6a6f3bc21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20M=C3=BChlbauer?= Date: Sun, 17 Aug 2025 10:12:34 +0200 Subject: [PATCH 2/2] add whats-new.rst entry --- doc/whats-new.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/whats-new.rst b/doc/whats-new.rst index 036119e2886..00abed27b9c 100644 --- a/doc/whats-new.rst +++ b/doc/whats-new.rst @@ -24,6 +24,8 @@ Deprecations Bug fixes ~~~~~~~~~ +- Warn instead of raise In case of misconfiguration of ``unlimited_dims`` originating from dataset.encoding, to prevent breaking users workflows (:issue:``, :pull:``). + By `Kai Mühlbauer `_. Documentation