Skip to main content

 zappend

CI codecov PyPI Version Conda Version Ruff Binder GitHub License


zappend is a tool written in Python that is used for robustly creating and updating Zarr datacubes from smaller dataset slices. It is built on top of the awesome Python packages xarray and zarr.

Motivation

The objective of zappend is enabling geodata scientists and developers to robustly create large data cubes. The tool performs transaction-based dataset appends to existing data cubes in the Zarr format. New targets use Zarr v3 when configured with zarr_format: 3; Zarr v2 remains available through zarr_format: 2. The deprecated zarr_version: 2 setting remains accepted for existing Zarr v2 configurations. If an error occurs during an append step — typically due to I/O problems or out-of-memory conditions — zappend will automatically roll back the operation, ensuring that the existing data cube maintains its structural integrity. The design drivers behind zappend are first ease of use and secondly, high configurability regarding filesystems, data source types, data cube outline and encoding.

The tool comprises a command-line interface, a Python API for programmatic control, and a comprehensible documentation to guide users effectively. You can easily install zappend as a plain Python package using either pip install zappend or conda install -conda-forge zappend.

Features

The zappend tool provides the following features:

  • Locking: While the target dataset is being modified, a file lock is created, effectively preventing concurrent dataset modifications.
  • Transaction-based dataset appends: On failure during an append step, the transaction is rolled back, so that the target dataset remains valid and preserves its integrity. A nested xarray.DataTree slice is rolled back as a whole if appending any of its groups fails.
  • Filesystem transparency: The target dataset may be generated and updated in any writable filesystems supported by the fsspec package. The same holds for the slice datasets to be appended.
  • Dataset polling: The tool can be configured to wait for slice datasets to become available.
  • Dynamic attributes: Use syntax {{ expression }} to update the target dataset with dynamically computed attribute values.
  • CLI and Python API: The tool can be used in a shell using the zappend command or from Python. When used from Python using the zappend() function, slice datasets can be passed as local file paths, URIs, as datasets of type xarray.Dataset, xarray.DataTree, or as custom slice sources.

More about zappend can be found in its documentation.

Metadata

Release files for zappend 0.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zappend 0.9.0
File Size Uploaded Provenance Actions
zappend-0.9.0.tar.gz 59.7 kB Without provenance Details for zappend-0.9.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for zappend 0.9.0
File Interpreter ABI Platform Actions
zappend-0.9.0-py3-none-any.whl Python 3 none any Details for zappend-0.9.0-py3-none-any.whl

Total release size: 119.1 kB

Release files / zappend-0.9.0.tar.gz

Download URL zappend-0.9.0.tar.gz
Size 59.7 kB
Tags Source
SHA-256 checksum
How to use checksums
4237a7b2d0f85a97e83957d914e7b85f17bb05663c0f3689e4627ed36b8f203e
BLAKE2b-256 checksum
How to use checksums
2765d3b9a6b4f4ef1662aa2b118272cb82e7fc5ab24f71b0e10fc73040159400
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / zappend-0.9.0-py3-none-any.whl

Download URL zappend-0.9.0-py3-none-any.whl
Size 59.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b2f89c75fd1dda97890efc171b1daad2012e933e57e7b18eeb5ac40931e9c48
BLAKE2b-256 checksum
How to use checksums
e0e78b39c2ce7a98aa9a0a38b6f5f1057046844eb60b69a238fdb6c7089329b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Security for zappend 0.9.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page