Release notes#

3.0.2 (2025-01-31)#

Features#

  • Test getsize() and getsize_prefix() in StoreTests. (#2693)

  • Test that a ValueError is raised for invalid byte range syntax in StoreTests. (#2693)

  • Separate instantiating and opening a store in StoreTests. (#2693)

  • Add a test for using Stores as a context managers in StoreTests. (#2693)

  • Implemented LogingStore.open(). (#2693)

  • LoggingStore is now a generic class. (#2693)

  • Change StoreTest’s test_store_repr, test_store_supports_writes, test_store_supports_partial_writes, and test_store_supports_listing to to be implemented using @abstractmethod, rather raising NotImplementedError. (#2693)

  • Test the error raised for invalid buffer arguments in StoreTests. (#2693)

  • Test that data can be written to a store that’s not yet open using the store.set method in StoreTests. (#2693)

  • Adds a new function init_array for initializing an array in storage, and refactors create_array to use init_array. create_array takes two new parameters: data, an optional array-like object, and write_data, a bool which defaults to True. If data is given to create_array, then the dtype and shape attributes of data are used to define the corresponding attributes of the resulting Zarr array. Additionally, if data given and write_data is True, then the values in data will be written to the newly created array. (#2761)

Bugfixes#

  • Wrap sync fsspec filesystems with AsyncFileSystemWrapper. (#2533)

  • Added backwards compatibility for Zarr format 2 structured arrays. (#2681)

  • Update equality for LoggingStore and WrapperStore such that ‘other’ must also be a LoggingStore or WrapperStore respectively, rather than only checking the types of the stores they wrap. (#2693)

  • Ensure that ZipStore is open before getting or setting any values. (#2693)

  • Use stdout rather than stderr as the default stream for LoggingStore. (#2693)

  • Match the errors raised by read only stores in StoreTests. (#2693)

  • Fixed ZipStore to make sure the correct attributes are saved when instances are pickled. This fixes a previous bug that prevent using ZipStore with a ProcessPoolExecutor. (#2762)

  • Updated the optional test dependencies to include botocore and fsspec. (#2768)

  • Fixed the fsspec tests to skip if botocore is not installed. Previously they would have failed with an import error. (#2768)

  • Optimize full chunk writes. (#2782)

Improved Documentation#

  • Changed the machinery for creating changelog entries. Now individual entries should be added as files to the changes directory in the zarr-python repository, instead of directly to the changelog file. (#2736)

Other#

  • Created a type alias ChunkKeyEncodingLike to model the union of ChunkKeyEncoding instances and the dict form of the parameters of those instances. ChunkKeyEncodingLike should be used by high-level functions to provide a convenient way for creating ChunkKeyEncoding objects. (#2763)

3.0.1 (Jan. 17, 2025)#

Bug fixes#

  • Fixes order argument for Zarr format 2 arrays (#2679).

  • Fixes a bug that prevented reading Zarr format 2 data with consolidated metadata written using zarr-python version 2 (#2694).

  • Ensure that compressor=None results in no compression when writing Zarr format 2 data (#2708).

  • Fix for empty consolidated metadata dataset: backwards compatibility with Zarr-Python 2 (#2695).

Documentation#

  • Add v3.0.0 release announcement banner (#2677).

  • Quickstart guide alignment with V3 API (#2697).

  • Fix doctest failures related to numcodecs 0.15 (#2727).

Other#

  • Removed some unnecessary files from the source distribution to reduce its size. (#2686).

  • Enable codecov in GitHub actions (#2682).

  • Speed up hypothesis tests (#2650).

  • Remove multiple imports for an import name (#2723).

3.0.0 (Jan. 9, 2025)#

3.0.0 is a new major release of Zarr-Python, with many breaking changes. See the 3.0 Migration Guide for a listing of what’s changed.

Normal release note service will resume with further releases in the 3.0.0 series.

Release notes for the zarr-python 2.x and 1.x releases can be found here: https://zarr.readthedocs.io/en/support-v2/release.html