Skip to content

Latest commit

 

History

History
76 lines (60 loc) · 2.67 KB

File metadata and controls

76 lines (60 loc) · 2.67 KB

V3 Specification Implementation(zarr._storage.v3)

This module contains an experimental implementation of the Zarr V3 Specification.

Warning

The experimental v3 implementation included in Zarr Python >2.12,<3 is not aligned with the final V3 specification. This version is deprecated and will be removed in Zarr Python 3.0 in favor of a spec compliant version.

The new zarr._store.v3 package has the necessary classes and functions for evaluating Zarr V3. Since the design is not finalised, the classes and functions are not automatically imported into the regular Zarr namespace.

Code snippet for creating Zarr V3 arrays:

>>> import zarr
>>> z = zarr.create((10000, 10000),
>>>             chunks=(100, 100),
>>>             dtype='f8',
>>>             compressor='default',
>>>             path='path-where-you-want-zarr-v3-array',
>>>             zarr_version=3)

Further, you can use z.info to see details about the array you just created:

>>> z.info
Name               : path-where-you-want-zarr-v3-array
Type               : zarr.core.Array
Data type          : float64
Shape              : (10000, 10000)
Chunk shape        : (100, 100)
Order              : C
Read-only          : False
Compressor         : Blosc(cname='lz4', clevel=5, shuffle=SHUFFLE, blocksize=0)
Store type         : zarr._storage.v3.KVStoreV3
No. bytes          : 800000000 (762.9M)
No. bytes stored   : 557
Storage ratio      : 1436265.7
Chunks initialized : 0/10000

You can also check Store type here (which indicates Zarr V3).

.. module:: zarr._storage.v3

.. autoclass:: RmdirV3
.. autoclass:: KVStoreV3
.. autoclass:: FSStoreV3
.. autoclass:: MemoryStoreV3
.. autoclass:: DirectoryStoreV3
.. autoclass:: ZipStoreV3
.. autoclass:: RedisStoreV3
.. autoclass:: MongoDBStoreV3
.. autoclass:: DBMStoreV3
.. autoclass:: LMDBStoreV3
.. autoclass:: SQLiteStoreV3
.. autoclass:: LRUStoreCacheV3
.. autoclass:: ConsolidatedMetadataStoreV3

In v3 storage transformers can be set via zarr.create(…, storage_transformers=[…]). The experimental sharding storage transformer can be tested by setting the environment variable ZARR_V3_SHARDING=1. Data written with this flag enabled should be expected to become stale until ZEP 2 is approved and fully implemented.

.. module:: zarr._storage.v3_storage_transformers

.. autoclass:: ShardingStorageTransformer

The abstract base class for storage transformers is

.. module:: zarr._storage.store

.. autoclass:: StorageTransformer