Skip to content

Commit 5470d93

Browse files
authored
MNT: prepare h5netcdf backend for (coming) change in dimension handling (#6200)
* prepare h5netcdf backend for (coming) change in dimension handling * [test-upstream]
1 parent 9b8cba4 commit 5470d93

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

xarray/backends/h5netcdf_.py

+21-5
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,11 @@ def _read_attributes(h5netcdf_var):
8181

8282

8383
_extract_h5nc_encoding = functools.partial(
84-
_extract_nc4_variable_encoding, lsd_okay=False, h5py_okay=True, backend="h5netcdf"
84+
_extract_nc4_variable_encoding,
85+
lsd_okay=False,
86+
h5py_okay=True,
87+
backend="h5netcdf",
88+
unlimited_dims=None,
8589
)
8690

8791

@@ -231,12 +235,24 @@ def get_attrs(self):
231235
return FrozenDict(_read_attributes(self.ds))
232236

233237
def get_dimensions(self):
234-
return self.ds.dimensions
238+
if Version(h5netcdf.__version__) >= Version("0.14.0.dev0"):
239+
return FrozenDict((k, len(v)) for k, v in self.ds.dimensions.items())
240+
else:
241+
return self.ds.dimensions
235242

236243
def get_encoding(self):
237-
return {
238-
"unlimited_dims": {k for k, v in self.ds.dimensions.items() if v is None}
239-
}
244+
if Version(h5netcdf.__version__) >= Version("0.14.0.dev0"):
245+
return {
246+
"unlimited_dims": {
247+
k for k, v in self.ds.dimensions.items() if v.isunlimited()
248+
}
249+
}
250+
else:
251+
return {
252+
"unlimited_dims": {
253+
k for k, v in self.ds.dimensions.items() if v is None
254+
}
255+
}
240256

241257
def set_dimension(self, name, length, is_unlimited=False):
242258
if is_unlimited:

0 commit comments

Comments
 (0)