From b481ae8a894e44a5c760dd9185e50e26bb494418 Mon Sep 17 00:00:00 2001 From: Max Jones <14077947+maxrjones@users.noreply.github.com> Date: Tue, 23 Sep 2025 15:45:29 -0400 Subject: [PATCH 1/2] Import EnumType from h5netcdf.core directly --- xarray/backends/h5netcdf_.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xarray/backends/h5netcdf_.py b/xarray/backends/h5netcdf_.py index 422eadc6c34..72add83c025 100644 --- a/xarray/backends/h5netcdf_.py +++ b/xarray/backends/h5netcdf_.py @@ -237,8 +237,8 @@ def ds(self): return self._acquire() def open_store_variable(self, name, var): - import h5netcdf import h5py + from h5netcdf.core import EnumType dimensions = var.dimensions data = indexing.LazilyIndexedArray(H5NetCDFArrayWrapper(name, self)) @@ -276,7 +276,7 @@ def open_store_variable(self, name, var): # just check if datatype is available and create dtype # this check can be removed if h5netcdf >= 1.4.0 for any environment elif (datatype := getattr(var, "datatype", None)) and isinstance( - datatype, h5netcdf.core.EnumType + datatype, EnumType ): encoding["dtype"] = np.dtype( data.dtype, From e9f53b843f1f2800635f9a6d9374ff5bf8b9d891 Mon Sep 17 00:00:00 2001 From: Max Jones <14077947+maxrjones@users.noreply.github.com> Date: Tue, 23 Sep 2025 16:50:15 -0400 Subject: [PATCH 2/2] Support older h5netcdf --- xarray/backends/h5netcdf_.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xarray/backends/h5netcdf_.py b/xarray/backends/h5netcdf_.py index 72add83c025..779e76c9d0b 100644 --- a/xarray/backends/h5netcdf_.py +++ b/xarray/backends/h5netcdf_.py @@ -237,8 +237,8 @@ def ds(self): return self._acquire() def open_store_variable(self, name, var): + import h5netcdf.core import h5py - from h5netcdf.core import EnumType dimensions = var.dimensions data = indexing.LazilyIndexedArray(H5NetCDFArrayWrapper(name, self)) @@ -276,7 +276,7 @@ def open_store_variable(self, name, var): # just check if datatype is available and create dtype # this check can be removed if h5netcdf >= 1.4.0 for any environment elif (datatype := getattr(var, "datatype", None)) and isinstance( - datatype, EnumType + datatype, h5netcdf.core.EnumType ): encoding["dtype"] = np.dtype( data.dtype,