Skip to main content

 zappend

CI codecov PyPI Version Conda Version Code style: black 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. 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.
  • 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, or as custom slice sources.

More about zappend can be found in its documentation.

Metadata

Release files for zappend 0.8.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.8.0
File Size Uploaded
zappend-0.8.0.tar.gz 52.6 kB Details

Built distribution (wheel)

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

Total release size: 105.3 kB

Release files / zappend-0.8.0.tar.gz

Download URL zappend-0.8.0.tar.gz
Size 52.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ec4f80fca8b36e1a442f007f1fd8d7fe792e1d741c267e595a5de95649a2fdd4
BLAKE2b-256 checksum
How to use checksums
f2a968eb6234381213005078c47109fb65dd02a37310228d7689c1ccc9f27429
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

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

Download URL zappend-0.8.0-py3-none-any.whl
Size 52.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
029181570968bae00c160842aab483defa7941813e0e2e3d9a08fdccc903d77f
BLAKE2b-256 checksum
How to use checksums
de0d236d3c6ecef57eee7edbafb21c9ae3e2df04dd99bd006a9be223566ab5ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.9.20

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

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