Integrity checks and creation helpers for Zarr v3 stores
Project description
xzarrguard
xzarrguard provides concise APIs and a CLI to validate completeness of local Zarr v3 stores and create stores with explicit no-data policy.
Install
PyPI: pip install xzarrguard
conda: conda install xzarrguard
from source: pip install .
Install-free CLI usage
uv: uvx xzarrguard check /path/to/store.zarr
pixi: pixi exec xzarrguard check /path/to/store.zarr
API quickstart
from xzarrguard import check_store, create_store
report = check_store("store.zarr")
if report:
print("store is complete")
create_store(
dataset,
"store.zarr",
no_data_chunks={"temperature": [(0, 0)]},
no_data_strategy="manifest",
)
Write and guard in one step (wrapper around .to_zarr()):
from xzarrguard import guarded_to_zarr
guarded_to_zarr(dataset, "store.zarr")
In-place metadata-only guard update (no chunk rewrite):
create_store(
None,
"store.zarr",
no_data_chunks={"temperature": [(0, 0)]},
in_place_metadata_only=True,
)
Treat the current store as baseline and derive allowed-missing chunks from what is currently missing:
create_store(
None,
"store.zarr",
in_place_metadata_only=True,
infer_no_data_from_store=True,
)
CLI quickstart
xzarrguard check store.zarr
xzarrguard create source.zarr target.zarr --no-data no_data.json
xzarrguard create store.zarr --in-place-metadata-only --no-data no_data.json
xzarrguard create store.zarr --in-place-metadata-only --infer-no-data-from-store
Coverage
pytest
pytest prints terminal coverage and writes coverage.xml.
Documentation
https://j-haacker.github.io/xzarrguard/
zensical serve
zensical build --clean
Channels
- PyPI: https://pypi.org/project/xzarrguard/
- Conda-forge: https://anaconda.org/conda-forge/xzarrguard
- GitHub: https://github.com/j-haacker/xzarrguard
Release (maintainers)
# bump src/xzarrguard/_version.py first
python -m build
python -m twine check dist/*
python -m twine upload dist/*
Use a PyPI API token for upload (for example TWINE_USERNAME=__token__).
For conda-forge, update recipe/recipe.yaml after the PyPI release (fixed version + PyPI sdist URL + sha256), then submit a recipe/feedstock PR.
Acknowledgement: Initial scaffolding and implementation assistance by OpenAI Codex.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xzarrguard-0.1.1.tar.gz.
File metadata
- Download URL: xzarrguard-0.1.1.tar.gz
- Upload date:
- Size: 20.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc971fe8d30aa8d7461efadfb355529a3dea6bc74c5dfeb11dc0859126065203
|
|
| MD5 |
1031cc616753c688cd42530f115d249c
|
|
| BLAKE2b-256 |
c64eabc67d6d93f28921eed7c70546e5b5038fd083bdae20c7400ba5b8478000
|
Provenance
The following attestation bundles were made for xzarrguard-0.1.1.tar.gz:
Publisher:
pypi-publish.yml on j-haacker/xzarrguard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xzarrguard-0.1.1.tar.gz -
Subject digest:
bc971fe8d30aa8d7461efadfb355529a3dea6bc74c5dfeb11dc0859126065203 - Sigstore transparency entry: 1009194820
- Sigstore integration time:
-
Permalink:
j-haacker/xzarrguard@7fbb9f094d60c6a74b6ab8d8d0dcb509d0e0b4cb -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/j-haacker
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@7fbb9f094d60c6a74b6ab8d8d0dcb509d0e0b4cb -
Trigger Event:
push
-
Statement type:
File details
Details for the file xzarrguard-0.1.1-py3-none-any.whl.
File metadata
- Download URL: xzarrguard-0.1.1-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53101e6eb62b22233d9a8d04b1b579d75717434cf81ddc85e8d672a7c326fae9
|
|
| MD5 |
8b2ebca5f3fd90ccf12839dc6a171f09
|
|
| BLAKE2b-256 |
6a48fc9c961fbda1808276f2cf9a4998ecdab20f6742cb26e41dc8fd4aa6e7f1
|
Provenance
The following attestation bundles were made for xzarrguard-0.1.1-py3-none-any.whl:
Publisher:
pypi-publish.yml on j-haacker/xzarrguard
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
xzarrguard-0.1.1-py3-none-any.whl -
Subject digest:
53101e6eb62b22233d9a8d04b1b579d75717434cf81ddc85e8d672a7c326fae9 - Sigstore transparency entry: 1009194934
- Sigstore integration time:
-
Permalink:
j-haacker/xzarrguard@7fbb9f094d60c6a74b6ab8d8d0dcb509d0e0b4cb -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/j-haacker
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@7fbb9f094d60c6a74b6ab8d8d0dcb509d0e0b4cb -
Trigger Event:
push
-
Statement type: