docs: say when a selection read decodes more than the selection

The READMEs said ds[...] reads only the selected elements, and the
facade's read_selection docs that only intersecting chunks are
decompressed. The bounding-box path runs only when the box covers at
most half the dataset; larger boxes (any strided slice across the
dataset), compact, virtual and unwritten datasets and chunked ones with
a non-default fill value decode the whole dataset. The READMEs, the
facade and format docs, the bindings' docstrings and known-issues now
say so, and how index lists are read.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
osobh
2026-09-26 09:04:48 -05:00
co-authored by Claude Opus 5.5
parent 17edfe2cf0
commit 45d617c39e
8 changed files with 72 additions and 16 deletions
+9 -2
View File
@@ -22,8 +22,9 @@
tests imported `rustyhdf5`, so they failed at collection. Distribution,
module and tests now all say `clawhdf5`, and the module has
`__version__`.
- **h5py-style reads that read only what is selected.** `ds[...]` used to
read the whole dataset and slice it in numpy, and knew six dtypes. Now
- **h5py-style reads that read the selection, not the dataset.** `ds[...]`
used to read the whole dataset and slice it in numpy, and knew six
dtypes. Now
integers (negative from the end), slices with positive steps, `...`, one
increasing list of integers per key and compound field names map onto the
facade's hyperslab selection (a list is read one group of neighbouring
@@ -102,6 +103,12 @@
`test_errors_match_h5py` now also requires that every key h5py reads
reads here too, with the same result, and covers more keys (0-d arrays,
repeated and empty lists, `()`, `...`).
- **Docs say when a selection reads more than itself.** The README and
the package README said `ds[...]` reads only the selected elements,
without condition. The library decodes the whole dataset when the
selection's bounding box covers more than half of it, and for compact,
virtual, unwritten and non-default-fill chunked datasets; the READMEs,
the facade's `read_selection` docs and `docs/known-issues.md` now say so.
- **CI builds and tests the Python package.** It was excluded from CI.
`scripts/ci-test.sh` now lints `clawhdf5-py`, builds the wheel with
maturin, unpacks it under `target/` and runs the pytest suite; skipped