diff --git a/unyt/array.py b/unyt/array.py index 8970312e..476ccc4b 100644 --- a/unyt/array.py +++ b/unyt/array.py @@ -1562,7 +1562,7 @@ def from_hdf5(cls, filename, dataset_name=None, group_name=None): else: g = f dataset = g[dataset_name] - data = dataset[:] + data = dataset[...] units = dataset.attrs.get("units", "") unit_lut = default_unit_symbol_lut.copy() unit_lut_load = pickle.loads(dataset.attrs["unit_registry"].tobytes()) diff --git a/unyt/tests/test_unyt_array.py b/unyt/tests/test_unyt_array.py index de0d1a3c..5a206855 100644 --- a/unyt/tests/test_unyt_array.py +++ b/unyt/tests/test_unyt_array.py @@ -1587,6 +1587,25 @@ def test_h5_io(): shutil.rmtree(tmpdir) +def test_h5_quantity_roundtrip(tmp_path): + # regression test for https://github.com/yt-project/unyt/issues/559 + pytest.importorskip("h5py") + + q1 = 5 * cm + savefile = tmp_path / "savefile.hdf5" + q1.write_hdf5( + savefile, + dataset_name="test_ds", + group_name="test_group", + ) + q2 = unyt_quantity.from_hdf5( + savefile, + dataset_name="test_ds", + group_name="test_group", + ) + assert_array_equal_units(q2, q1) + + def test_equivalencies(): import unyt as u