This PR reorganizes basically the whole repo without actually changing any behaviour or public API. I've literally just copied and pasted code, created, renamed and moved files, and edited imports to match. The point is to split up various things that should be thought of separately:
xarray.py is split into backend.py (which contains open_virtual_dataset for reading things) and accessor.py (which contains the .virtualize accessor for serializing things). Sean's hdf5 reader will go in here too (see #87).
kerchunk is now treated as one amongst many "readers", and split out in the same way that the dmrpp code is. (Same for the tests too).
Similarly we now have a concept of "writers", which currently are just kerchunk (i.e. write to kerchunk json / parquet) and zarr v3 chunk manifest (which only exists as a proof-of-principle, but we know other writers might go in here later).
The original kerchunk.py file has now got so little in it that it only contains type definitions (which really should be defined upstream...), so has been moved to a new virtualizarr.types.kerchunk module.
These changes should make the structure of the codebase clearer, and especially the structure of the relationship to kerchunk code. i.e. it should now be clearer that kerchunk is one amongst many virtualizarr readers, and one amongst many virtualizarr writers, but not actually required for either.
This PR reorganizes basically the whole repo without actually changing any behaviour or public API. I've literally just copied and pasted code, created, renamed and moved files, and edited imports to match. The point is to split up various things that should be thought of separately:
xarray.py
is split intobackend.py
(which containsopen_virtual_dataset
for reading things) andaccessor.py
(which contains the.virtualize
accessor for serializing things). Sean's hdf5 reader will go in here too (see #87).kerchunk.py
file has now got so little in it that it only contains type definitions (which really should be defined upstream...), so has been moved to a newvirtualizarr.types.kerchunk
module.These changes should make the structure of the codebase clearer, and especially the structure of the relationship to kerchunk code. i.e. it should now be clearer that kerchunk is one amongst many virtualizarr readers, and one amongst many virtualizarr writers, but not actually required for either.
Tests addeddocs/releases.rst
New functions/methods are listed inapi.rst
New functionality has documentation