Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 9 additions & 0 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,15 @@ def hdf5_empty(tmp_path: Path) -> str:
return str(filepath)


@pytest.fixture
def hdf5_missing_value(tmp_path: Path) -> str:
"""Create an empty HDF5 file."""
filepath = tmp_path / "compact_lowlevel.h5"
with h5py.File(filepath, "w") as f:
f.create_dataset("my_dataset", shape=(10,), dtype="int64")
return str(filepath)


@pytest.fixture
def hdf5_scalar(tmp_path: Path) -> str:
"""Create an HDF5 file with a scalar dataset."""
Expand Down
4 changes: 4 additions & 0 deletions docs/releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@

### Internal changes

- `DMRPPParser` is now migrated to [pydap](https://github.com/pydap/pydap) (`pydap>=3.5.10`) (see [pydap#417](https://github.com/pydap/pydap/issues/417)). To use the dmrpp parser one must install the extra `pip install "virtualizarr[dmrpp]"`.
By [Miguel Jimenez-Urias](https://github.com/Mikejmnez)

- Speed up virtual chunk container validation when writing to Icechunk by passing the supported prefixes as a tuple to `str.startswith`, which runs the loop over prefixes in C rather than in a Python generator. The per-reference check is now ~2.6x faster in the common single-container case, which matters when writing manifests with millions of virtual references. The check is still a per-reference Python loop overall (see [icechunk#1167](https://github.com/earth-mover/icechunk/issues/1167) for pushing it down to Icechunk entirely).
By [Tom Nicholas](https://github.com/TomNicholas).

Expand Down Expand Up @@ -249,6 +252,7 @@ Brings `region`-writing support in `.to_icechunk()`, a `ZarrParser` with orders
- Fix `ZarrParser` to use public attribute instead of private one ([#916](https://github.com/zarr-developers/VirtualiZarr/pull/916)).
By [Max Jones](https://github.com/maxrjones).


### Documentation

- Added FAQ answer comparing the Kerchunk and Icechunk serialization formats. ([#818](https://github.com/zarr-developers/VirtualiZarr/pull/818)).
Expand Down
13 changes: 10 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ hdf = [
"imagecodecs-numcodecs==2024.6.1",
]

# dmrpp
dmrpp = [
"pydap @ git+https://github.com/pydap/pydap.git@refs/pull/697/head",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a flag to update this before merging

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes - once this looks good on your end I will merge that PR, make a new pydap release (3.5.10), and declare pydap>=3.5.10 in here

]

zarr = ["arro3-core"]

# kerchunk-based parsers
Expand Down Expand Up @@ -83,7 +88,8 @@ all_parsers = [
"virtualizarr[kerchunk_parquet]",
"virtualizarr[tiff]",
"virtualizarr[grib]",
"virtualizarr[zarr]"
"virtualizarr[zarr]",
"virtualizarr[dmrpp]",
]

# writers
Expand Down Expand Up @@ -214,8 +220,8 @@ run-flaky-tests = { cmd = "pytest -m flaky --run-flaky --run-network-tests --ver
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", "netcdf3", "fits", "icechunk", "kerchunk", "kerchunk_parquet", "hdf5-lib", "zarr", "py314"]
test-py312 = ["dev", "test", "remote", "hdf", "netcdf3", "fits", "icechunk", "kerchunk", "kerchunk_parquet", "hdf5-lib", "tiff", "grib", "zarr", "py312"] # test against python 3.13
test-py313 = ["dev", "test", "remote", "hdf", "netcdf3", "fits", "icechunk", "kerchunk", "kerchunk_parquet", "hdf5-lib", "tiff", "grib", "zarr", "py313"] # test against python 3.13
test-py312 = ["dev", "test", "remote", "hdf", "netcdf3", "fits", "icechunk", "kerchunk", "kerchunk_parquet", "hdf5-lib", "tiff", "grib", "dmrpp", "zarr", "py312"] # test against python 3.13
test-py313 = ["dev", "test", "remote", "hdf", "netcdf3", "fits", "icechunk", "kerchunk", "kerchunk_parquet", "hdf5-lib", "tiff", "grib", "dmrpp", "zarr", "py313"] # test against python 3.13
test-py314 = ["dev", "test", "remote", "hdf", "netcdf3", "fits", "icechunk", "kerchunk", "kerchunk_parquet", "hdf5-lib", "zarr", "py314"] # test against python 3.14
minio = ["dev", "remote", "hdf", "netcdf3", "fits", "icechunk", "kerchunk", "hdf5-lib", "py314", "zarr", "minio"]
# tiff (virtual-tiff) is excluded: virtual-tiff 0.5.0 imports zarr's CodecJSON
Expand Down Expand Up @@ -267,6 +273,7 @@ module = [
"ujson",
"zarr",
"requests",
"pydap.*",
]
ignore_missing_imports = true

Expand Down
Loading
Loading