Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
5bba81d
sketch kerchunk-based constructor method on ManifestStore
TomNicholas Apr 11, 2025
0508fa1
sketch how FITS reader would use this constructor
TomNicholas Apr 11, 2025
ecb538c
tidy up imports
TomNicholas Apr 11, 2025
5fb5c25
make new constructor a public method
TomNicholas Apr 11, 2025
cc7822e
refactor kerchunk module to create a ManifestStore instead of using x…
TomNicholas Apr 11, 2025
dece713
show how this changes the fits reader
TomNicholas Apr 11, 2025
fda8ce3
switch all kerchunk readers to use ManifestStore
TomNicholas Apr 12, 2025
c7aa584
fix double import
TomNicholas Apr 12, 2025
4ca1027
change test to use ManifestStore
TomNicholas Apr 12, 2025
6e7b2b2
Merge branch 'develop' into refactor-kerchunk-readers-to-use-Manifest…
TomNicholas Apr 19, 2025
232f8b2
remove apparently uneeded list_dir function
TomNicholas Apr 19, 2025
9526913
remove ManifestStore constructor
TomNicholas Apr 19, 2025
38085ab
improve docstring
TomNicholas Apr 22, 2025
53b466c
use function instead of method
TomNicholas Apr 22, 2025
8e67aa5
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Apr 22, 2025
16a3510
Merge branch 'develop' into Refactor-kerchunk-readers-to-use-Manifest…
TomNicholas May 8, 2025
a19ca31
Merge branch 'refactor-kerchunk-readers-to-use-ManifestStore' of http…
TomNicholas May 8, 2025
2337329
Initial steps for functional backends.
sharkinsspatial May 9, 2025
a5e009c
Use updated backend protocol.
sharkinsspatial May 12, 2025
5bd8d02
Revert utils ReadableFile change.
sharkinsspatial May 14, 2025
f70240c
Use ObstoreReader util in hdf backend.
sharkinsspatial May 14, 2025
ef8d29b
Merge branch '547' into refactor/backends
sharkinsspatial May 14, 2025
929dcd6
Intermediate updates for refactored kerchunk backend.
sharkinsspatial May 15, 2025
bd707d5
DMRPP reader updated to return ManifestStore.
sharkinsspatial May 18, 2025
854e784
Update open_virtual_mfdataset to use ManifestStore open_virtual_mfdat…
sharkinsspatial May 18, 2025
30c2550
Update Zarr backend to return ManifestStore.
sharkinsspatial May 19, 2025
809ebfb
Typing updates for zarr backend obstore compatability.
sharkinsspatial May 19, 2025
d9d2500
Update test_xarray with new open_virtual_dataset signature.
sharkinsspatial May 19, 2025
530778e
Use ManifestStore verification tests for HDF backend.
sharkinsspatial May 19, 2025
b121941
Update HDF backend integration tests for open_virtual_dataset signature.
sharkinsspatial May 19, 2025
f73d71e
Update FITS backend to use new backend signature.
sharkinsspatial May 19, 2025
0d46797
Convert tiff and netcdf3 backends to new Manifeststore signature.
sharkinsspatial May 19, 2025
ded5ec1
Repo structural updates for all xarray functionality in single module.
sharkinsspatial May 19, 2025
390710e
Align with new VirtualiZarr v2 API signatures.
sharkinsspatial May 20, 2025
aae10aa
Typing updates and fixes.
sharkinsspatial May 20, 2025
19c721b
Remove legacy backend tests.
sharkinsspatial May 20, 2025
009bce2
Use new Zarr v3 array fillvalue semantics.
sharkinsspatial May 20, 2025
a339650
Typing fix for fillValue casting.
sharkinsspatial May 20, 2025
d59acdc
Merge branch 'develop' into refactor/backends
sharkinsspatial May 20, 2025
6abc757
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 20, 2025
61bc843
Include obstore as core dependency.
sharkinsspatial May 20, 2025
9136efc
Use obstore dependency alias for other environments.
sharkinsspatial May 20, 2025
df92879
Temporarily skip lithops parallel tests.
sharkinsspatial May 20, 2025
0d89b38
Broaden ignore statements for kerchunk translator.
sharkinsspatial May 20, 2025
856f16f
Update minio test paths.
sharkinsspatial May 20, 2025
7377185
Update ObstoreReader logic to handle local paths differently.
sharkinsspatial May 20, 2025
1a8fe93
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 20, 2025
55b30c7
Fix s3 store construction for failing minio test.
sharkinsspatial May 21, 2025
748ea73
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 21, 2025
5d0b032
Re-enable lithops parallel tests.
sharkinsspatial May 21, 2025
9be5f78
Temporarily disable lithops tests.
sharkinsspatial May 21, 2025
d9b6553
Remove legacy dmrpp loadable_variables comments.
sharkinsspatial May 21, 2025
b1f2b4c
Remove fsspec pin.
sharkinsspatial May 23, 2025
1441b17
Use discrete parser for each open_virtual_dataset call.
sharkinsspatial May 23, 2025
9e96977
Merge branch 'develop' into refactor/backends
sharkinsspatial May 26, 2025
1b7ae5d
Check lithops failure with a single store.
sharkinsspatial May 26, 2025
a0bf35c
Fix incorrect parser invocation.
sharkinsspatial May 26, 2025
6a16086
Make kerchunk parquet a stand alone parser.
sharkinsspatial May 27, 2025
e8d0979
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 27, 2025
817cf31
Don't check for parquet structure.
sharkinsspatial May 27, 2025
2ff6b42
Pyproject.toml dependency updates.
sharkinsspatial May 27, 2025
2570349
Remove all references to hdf5 parser dependencies.
sharkinsspatial May 27, 2025
24dd28f
Remove errant space.
sharkinsspatial May 27, 2025
c497148
Change open_virtual_dataset module location to xarray in docs.
sharkinsspatial May 27, 2025
987ae07
Temporarily xfail lithops exector tests.
sharkinsspatial May 27, 2025
30bbecc
Unmark xpassing non_dimension_coordinate test.
sharkinsspatial May 27, 2025
4afc1a9
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 27, 2025
9accf59
Remove default_object_store and support PrefixStore
maxrjones May 28, 2025
fcee85d
Update ObjectStoreRegistry usage in parsers to pass tests.
sharkinsspatial May 30, 2025
30deeb0
Merge branch 'develop' into refactor/backends
sharkinsspatial May 30, 2025
e20f1ca
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 30, 2025
a0b11f4
Use MemoryStore for non-existent file paths in test refs.
sharkinsspatial May 30, 2025
86e4fac
Test kerchunk translator regression for variable attributes.
sharkinsspatial May 30, 2025
7753850
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 30, 2025
e07a2c7
Pass through drop_variables option to xarray.
sharkinsspatial May 30, 2025
a960f68
Remove separate obstore optional dependency.
sharkinsspatial May 30, 2025
8185a3c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 30, 2025
5e9db43
Rename KerchunkParser to KerchunkJSONParser.
sharkinsspatial May 30, 2025
36088a5
Add docstring for Parser __call__ method.
sharkinsspatial May 30, 2025
8b360ff
Use skip_variables naming for parsers rather than drop_variables.
sharkinsspatial May 30, 2025
6b5243a
Add docstrings for public methods in parsers.
sharkinsspatial May 30, 2025
8accc62
Refactor manifeststore_from_kerchunk_refs to return ManifestGroup.
sharkinsspatial May 30, 2025
d907472
Update ObjectstoreRegistry url parsing.
sharkinsspatial Jun 4, 2025
c54fd9c
Update ObjectstoreRegistry url doc string language.
sharkinsspatial Jun 4, 2025
a664fdc
Remove sorting for ObjectstoreRegistry prefix matching.
sharkinsspatial Jun 4, 2025
bd9ea6c
Apply suggestions from code review
maxrjones Jun 9, 2025
a2d4cfe
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 9, 2025
39186c2
Use removeprefix() rather than replace()
maxrjones Jun 9, 2025
cc84b6b
Apply suggested simplifications for HDF parser
maxrjones Jun 9, 2025
f374f73
Apply suggestions from code review
maxrjones Jun 10, 2025
f9d3f04
Use context managers
maxrjones Jun 10, 2025
67d3f3f
Add Raises section
maxrjones Jun 10, 2025
497918e
More context managers
maxrjones Jun 10, 2025
9294606
Move imports
maxrjones Jun 10, 2025
f2d30d4
Move import
maxrjones Jun 10, 2025
fba6315
Address failing tests in test-py311 env
chuckwondo Jun 11, 2025
922395e
Merge develop and resolve conflicts
chuckwondo Jun 11, 2025
1e34558
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 11, 2025
08e6d0b
Merge branch 'develop' into refactor/backends
maxrjones Jun 11, 2025
fb9e036
Merge branch 'develop' into refactor/backends
maxrjones Jun 11, 2025
c071650
Fix typing errors and notes
chuckwondo Jun 11, 2025
22c2438
Fix numpydoc-validation error
chuckwondo Jun 12, 2025
0ec13aa
Format docstrings
chuckwondo Jun 13, 2025
ca117bb
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 13, 2025
0e7e4c2
Merge branch 'develop' into refactor/backends
maxrjones Jun 15, 2025
2fc13ba
Remove duplicate LocalStore
maxrjones Jun 15, 2025
171b6ac
Update virtualizarr/parsers/__init__.py
sharkinsspatial Jun 16, 2025
f77c215
Update virtualizarr/manifests/store.py
sharkinsspatial Jun 16, 2025
12a95ca
Update virtualizarr/parsers/__init__.py
sharkinsspatial Jun 16, 2025
523ae2c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jun 16, 2025
f3e3b02
Remove json specification determination for kerchunk json parser.
sharkinsspatial Jun 16, 2025
402eaf7
Update pyproject.toml
sharkinsspatial Jun 16, 2025
ebe1712
Update pyproject.toml
sharkinsspatial Jun 16, 2025
95c5a60
Update virtualizarr/parsers/kerchunk_json.py
sharkinsspatial Jun 16, 2025
3dbfc48
Update virtualizarr/parsers/tiff.py
sharkinsspatial Jun 16, 2025
2b329d8
Update virtualizarr/parsers/zarr.py
sharkinsspatial Jun 16, 2025
8df371a
Update pyproject.toml
sharkinsspatial Jun 16, 2025
c2f4ff3
Update pyproject.toml
sharkinsspatial Jun 16, 2025
f3ab4bf
Update virtualizarr/utils.py
sharkinsspatial Jun 16, 2025
ad084c4
Use format specific names for parser classes.
sharkinsspatial Jun 16, 2025
b7b1b08
Update virtualizarr/parsers/fits.py
maxrjones Jun 16, 2025
6d753d9
Apply suggestions from code review
maxrjones Jun 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -256,8 +256,17 @@ def netcdf4_file_with_2d_coords(tmp_path: Path) -> str:
def netcdf4_virtual_dataset(netcdf4_file):
"""Create a virtual dataset from a NetCDF4 file."""
from virtualizarr import open_virtual_dataset

with open_virtual_dataset(netcdf4_file, loadable_variables=[]) as ds:
from virtualizarr.parsers import HDFParser
from virtualizarr.tests.utils import obstore_local

store = obstore_local(file_url=netcdf4_file)
parser = HDFParser()
with open_virtual_dataset(
file_url=netcdf4_file,
object_store=store,
parser=parser,
loadable_variables=[],
) as ds:
yield ds


Expand Down
2 changes: 1 addition & 1 deletion docs/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ User API
Reading
-------

.. currentmodule:: virtualizarr.backend
.. currentmodule:: virtualizarr.xarray
.. autosummary::
:nosignatures:
:toctree: generated/
Expand Down
47 changes: 22 additions & 25 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

[project]
name = "virtualizarr"
description = "Create virtual Zarr stores from archival data using xarray API"
Expand Down Expand Up @@ -28,7 +27,8 @@ dependencies = [
"numcodecs>=0.15.1",
"ujson",
"packaging",
"zarr>=3.0.2",
"zarr>=3.0.8",
"obstore>=0.5.1",
Comment thread
maxrjones marked this conversation as resolved.
]

# Dependency sets under optional-dependencies are available via PyPI
Expand All @@ -40,25 +40,16 @@ remote = [
"aiohttp",
"s3fs",
]
obstore = [
"obstore>=0.5.1",
]
# non-kerchunk-based readers

# non-kerchunk-based parsers
hdf = [
"virtualizarr[remote]",
"h5py",
"hdf5plugin",
"imagecodecs",
"imagecodecs-numcodecs==2024.6.1",
"obstore>=0.5.1",
]

# kerchunk-based readers
hdf5 = [
"virtualizarr[remote]",
"kerchunk>=0.2.8",
"h5py",
]
# kerchunk-based parsers
netcdf3 = [
"virtualizarr[remote]",
"kerchunk>=0.2.8",
Expand All @@ -69,11 +60,17 @@ fits = [
"kerchunk>=0.2.8",
"astropy",
]
all_readers = [
kerchunk_parquet = [
"virtualizarr[remote]",
"fastparquet",
]

# kerchunk
all_parsers = [
"virtualizarr[hdf]",
"virtualizarr[hdf5]",
"virtualizarr[netcdf3]",
"virtualizarr[fits]",
"virtualizarr[kerchunk_parquet]",
]

# writers
Expand Down Expand Up @@ -183,14 +180,14 @@ run-tests-html-cov = { cmd = "pytest -n auto --run-network-tests --verbose --cov

# Define which features and groups to include in different pixi (similar to conda) environments)
[tool.pixi.environments]
min-deps = ["dev", "test", "hdf", "hdf5", "hdf5-lib"] # VirtualiZarr/conftest.py using h5py, so the minimum set of dependencies for testing still includes hdf libs
min-deps = ["dev", "test", "hdf", "hdf5-lib"] # VirtualiZarr/conftest.py using h5py, so the minimum set of dependencies for testing still includes hdf libs
# Inherit from min-deps to get all the test commands, along with optional dependencies
test = ["dev", "test", "remote", "hdf", "hdf5", "netcdf3", "fits", "icechunk", "kerchunk", "hdf5-lib", "obstore"]
test-py311 = ["dev", "test", "remote", "hdf", "hdf5", "netcdf3", "fits", "icechunk", "kerchunk", "hdf5-lib", "obstore", "py311"] # test against python 3.11
test-py312 = ["dev", "test", "remote", "hdf", "hdf5", "netcdf3", "fits", "icechunk", "kerchunk", "hdf5-lib", "obstore", "py312"] # test against python 3.12
minio = ["dev", "remote", "hdf", "hdf5", "netcdf3", "fits", "icechunk", "kerchunk", "hdf5-lib", "obstore", "py312", "minio"]
upstream = ["dev", "test", "hdf", "hdf5", "hdf5-lib", "netcdf3", "upstream", "icechunk-dev"]
all = ["dev", "test", "remote", "hdf", "hdf5", "netcdf3", "fits", "icechunk", "kerchunk", "hdf5-lib", "obstore", "all_readers", "all_writers"]
test = ["dev", "test", "remote", "hdf", "netcdf3", "fits", "icechunk", "kerchunk", "kerchunk_parquet", "hdf5-lib"]
test-py311 = ["dev", "test", "remote", "hdf", "netcdf3", "fits", "icechunk", "kerchunk", "kerchunk_parquet", "hdf5-lib", "py311"] # test against python 3.11
test-py312 = ["dev", "test", "remote", "hdf", "netcdf3", "fits", "icechunk", "kerchunk", "kerchunk_parquet", "hdf5-lib", "py312"] # test against python 3.12
minio = ["dev", "remote", "hdf", "netcdf3", "fits", "icechunk", "kerchunk", "hdf5-lib", "py312", "minio"]
upstream = ["dev", "test", "hdf", "hdf5-lib", "netcdf3", "upstream", "icechunk-dev"]
all = ["dev", "test", "remote", "hdf", "netcdf3", "fits", "icechunk", "kerchunk","kerchunk_parquet", "hdf5-lib", "all_parsers", "all_writers"]
docs = ["docs"]

# Define commands to run within the docs environment
Expand All @@ -201,8 +198,8 @@ readthedocs = "rm -rf $READTHEDOCS_OUTPUT/html && cp -r docs/_build/html $READTH

# Define commands to run within the docs environment
[tool.pixi.feature.minio.tasks]
run-tests = { cmd = "pytest virtualizarr/tests/test_manifests/test_store.py virtualizarr/tests/test_readers/test_hdf/test_hdf_manifest_store.py --run-minio-tests --run-network-tests --verbose" }
run-tests-xml-cov = { cmd = "pytest virtualizarr/tests/test_manifests/test_store.py virtualizarr/tests/test_readers/test_hdf/test_hdf_manifest_store.py --run-minio-tests --run-network-tests --verbose --cov-report=xml" }
run-tests = { cmd = "pytest virtualizarr/tests/test_manifests/test_store.py virtualizarr/tests/test_parsers/test_hdf/test_hdf_manifest_store.py --run-minio-tests --run-network-tests --verbose" }
run-tests-xml-cov = { cmd = "pytest virtualizarr/tests/test_manifests/test_store.py virtualizarr/tests/test_parsers/test_hdf/test_hdf_manifest_store.py --run-minio-tests --run-network-tests --verbose --cov-report=xml" }

[tool.setuptools_scm]
fallback_version = "9999"
Expand Down
2 changes: 1 addition & 1 deletion virtualizarr/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
VirtualiZarrDatasetAccessor,
VirtualiZarrDataTreeAccessor,
)
from virtualizarr.backend import open_virtual_dataset, open_virtual_mfdataset
from virtualizarr.manifests import ChunkManifest, ManifestArray
from virtualizarr.xarray import open_virtual_dataset, open_virtual_mfdataset

try:
__version__ = _version("virtualizarr")
Expand Down
Loading