Read HDF5 1.6-era files, user blocks, VDS, dense attributes and large groups #13

Merged
osobh merged 28 commits from fix/p1-read-gaps into main 2026-09-26 09:42:10 +00:00
Showing only changes of commit 883980f2bd - Show all commits
@@ -107,8 +107,12 @@ with h5py.File("{path}", "r") as f:
); );
let stdout = String::from_utf8_lossy(&out.stdout); let stdout = String::from_utf8_lossy(&out.stdout);
let theirs: Vec<&str> = stdout.lines().collect(); let theirs: Vec<&str> = stdout.lines().collect();
// Read the types through clawhdf5, not from `expected()`, so this checks
// our reader against libhdf5 rather than the table against h5py.
let file = File::from_bytes(FIXTURE.to_vec()).unwrap();
let ours: Vec<String> = expected() let ours: Vec<String> = expected()
.into_iter() .into_iter()
.map(|(p, _)| (p, file.dataset(p).unwrap().dtype().unwrap()))
.map(|(p, t)| match t { .map(|(p, t)| match t {
DType::Compound(fields) => { DType::Compound(fields) => {
let names: Vec<String> = fields.into_iter().map(|(n, _)| n).collect(); let names: Vec<String> = fields.into_iter().map(|(n, _)| n).collect();