From 72e285e38757816935e0251f2691291b2e007686 Mon Sep 17 00:00:00 2001 From: pp-mo Date: Fri, 14 Aug 2026 18:28:58 +0100 Subject: [PATCH 1/3] Supply set_auto_chartostring for Nc4DatasetLike. --- lib/ncdata/dataset_like.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/ncdata/dataset_like.py b/lib/ncdata/dataset_like.py index 3702f95..b92ffa9 100644 --- a/lib/ncdata/dataset_like.py +++ b/lib/ncdata/dataset_like.py @@ -81,6 +81,11 @@ def __setattr__(self, attr, value): else: self.setncattr(attr, value) + def set_auto_chartostring(self, value): + if bool(value): + msg = "Cannot enable 'auto_chartostring' for Nc4Dataselike or Nc4VariableLike." + raise ValueError() + class Nc4DatasetLike(_Nc4DatalikeWithNcattrs): """ From c4adcbf63ec368e1644202d989095a723252c775 Mon Sep 17 00:00:00 2001 From: pp-mo Date: Fri, 14 Aug 2026 19:30:58 +0100 Subject: [PATCH 2/3] Specific fixes for currently-failing roundtrip tests. --- tests/data_testcase_schemas.py | 1 + .../integration/test_iris_xarray_roundtrips.py | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/data_testcase_schemas.py b/tests/data_testcase_schemas.py index 7622da3..ce68460 100644 --- a/tests/data_testcase_schemas.py +++ b/tests/data_testcase_schemas.py @@ -525,6 +525,7 @@ def standard_testcase(request, session_testdir): # """ "small_rotPole_precipitation", "small_FC_167", + "test_monotonic_coordinate", ], # Xarray can save ~anything "save": [r"test_monotonic_coordinate"], diff --git a/tests/integration/test_iris_xarray_roundtrips.py b/tests/integration/test_iris_xarray_roundtrips.py index d0eb2bf..7fcf045 100644 --- a/tests/integration/test_iris_xarray_roundtrips.py +++ b/tests/integration/test_iris_xarray_roundtrips.py @@ -79,9 +79,20 @@ def test_roundtrip_ixi(standard_testcase, use_irislock, adjust_chunks): "testdata____ugrid__21_triangle_example", # Problem with units on time bounds "label_and_climate__small_FC_167", - # Broken UGRID files now won't load in Iris >= 3.10 - "unstructured_grid__mesh_C12", - "_unstructured_grid__theta_nodal_xios", + # # Broken UGRID files now won't load in Iris >= 3.10 + # "unstructured_grid__mesh_C12", + # "_unstructured_grid__theta_nodal_xios", + + # **No** mesh files will now roundtrip, since xarray 2026.04.0. + # This is because xarray now normalises the array type when loading + # from ncdata, removing masks and converting to nanarrays (thus making ints + # into floats). + # Previously we could create xarray Datasets with masked integer variables + # as data -- though that was alwaysobviously a bit tricksy. + # Iris can't accept the new form as it insists on integer types for + # mesh connectivities :-( + # TODO: do something to get this working again? + "unstructured" ] ) if any(key in standard_testcase.name for key in exclude_case_keys): From ba5f4a893e63e7c32e5a0df63137ec581a8674a6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 15 Aug 2026 09:08:09 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/integration/test_iris_xarray_roundtrips.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/integration/test_iris_xarray_roundtrips.py b/tests/integration/test_iris_xarray_roundtrips.py index 7fcf045..51ea827 100644 --- a/tests/integration/test_iris_xarray_roundtrips.py +++ b/tests/integration/test_iris_xarray_roundtrips.py @@ -82,7 +82,6 @@ def test_roundtrip_ixi(standard_testcase, use_irislock, adjust_chunks): # # Broken UGRID files now won't load in Iris >= 3.10 # "unstructured_grid__mesh_C12", # "_unstructured_grid__theta_nodal_xios", - # **No** mesh files will now roundtrip, since xarray 2026.04.0. # This is because xarray now normalises the array type when loading # from ncdata, removing masks and converting to nanarrays (thus making ints @@ -92,7 +91,7 @@ def test_roundtrip_ixi(standard_testcase, use_irislock, adjust_chunks): # Iris can't accept the new form as it insists on integer types for # mesh connectivities :-( # TODO: do something to get this working again? - "unstructured" + "unstructured", ] ) if any(key in standard_testcase.name for key in exclude_case_keys):