# Icechunk Python Python library for Icechunk Zarr Stores ## Getting Started Activate the virtual environment: ```bash python3 -m venv .venv source .venv/bin/activate ``` Install `maturin`: ```bash pip install maturin ``` Build the project in dev mode: ```bash maturin develop ``` or build the project in editable mode: ```bash pip install -e icechunk@. ``` **Note**: This only makes the python source code editable, the rust will need to be recompiled when it changes Now you can create or open an icechunk store for use with `zarr-python`: ```python from icechunk import IcechunkStore, StorageConfig from zarr import Array, Group storage = StorageConfig.memory("test") store = await IcechunkStore.open(storage=storage, mode='r+') root = Group.from_store(store=store, zarr_format=zarr_format) foo = root.create_array("foo", shape=(100,), chunks=(10,), dtype="i4") ``` You can then commit your changes to save progress or share with others: ```python store.commit("Create foo array") async for parent in store.ancestry(): print(parent.message) ``` See [`tests/test_timetravel.py`](tests/test_timetravel.py) for more example usage of the transactional features.