- Added
ZarrIO.generate_dataset_htmlmethod to generate rich HTML representations of Zarr arrays for display in Jupyter notebooks. @rly #306 - Added S3 streaming tutorial with consolidated metadata guidance. @rly @oruebel #308
- Fixed zarr array
.infoproperty to display compression data ("No. bytes stored" and "Storage ratio") when using consolidated metadata stores by patchingConsolidatedMetadataStore.getsize()to query the underlying chunk store. @rly #305 - Fixed bug where the cached spec was not included in consolidated metadata when exporting using
ZarrIO. @rly #315 - Fixed bug where consolidated metadata was always written by
ZarrIO. @rly #315 - Fixed bug where the
specificationsgroup and its contents were read duringZarrIO.read_builder. @rly #322 - Fixed issue with
tox.iniconfiguration. @rly #326 - Fixed
ZarrIO.is_remote()returningFalsefor remote stores using consolidated metadata, which causedresolve_refto mangle HTTPS URLs and fail withPathNotFoundErrorwhen reading links. @rly #328
- Replaced
requirements-min.txtwithuv pip install --resolution lowest-directin tox and convertedtestanddocsfrom optional dependencies to dependency groups (PEP 735), making the project compatible with uv. @h-mayorquin #327 - Updated documentation about how the
zarr_dtypeattribute is used to specify a compound dtype (structured array) for a dataset. @rly #313 - Dropped testing for Python 3.9. @rly #298
- Added support for Python 3.14. @rly #298
- Updated HDF5 to Zarr conversion tutorial and test data to use a more modern file. @rly #312
- Renamed
ZarrIO.fileproperty toZarrIO._fileto be consistent with PyNWB validator. @rly #294 - When loading namespaces with
ZarrIO, all namespaces are now passed tonamespace_catalog.load_namespacesto handle ordering of loading and detection of version conflicts, to be consistent withHDF5IO. @rly #294 - Renamed test module
tests/unit/utils.pytotests/unit/helpers/utils.py. #292 - Bumped minimum required version of
numcodecsto 0.12.0 to address installation issues with Python 3.9 on MacOS. @rly #299
- Added
ZarrIO.load_namespaces_iomethod to load namespaces from a given Zarr group into a givenNamespaceCatalog. @rly #292
- Cache consolidated metadata in
ZarrIOto avoid repeated metadata reads, significantly improving performance for datasets with many references. @rly #290
- Added
ZarrDataIO.get_io_params. @rly #282
- Fixed saving of the cached specs in the consolidated metadata. @stephprince #274
- Fixed writing of compound dtype datasets. @mavaylon1 #276
- Fixed pixel mask data shape expansion bug in
__list_fill__method that was incorrectly duplicating compound data type values during export operations. @pauladkisson #280
- Added scipy to optional dependencies to be compatible with HDMF 4.0. @rly #261
- Restricted numcodecs dependency to <0.16 due to incompatibility with the latest zarr<3 version. @rly #270
- Adopted changelog format conventions: https://keepachangelog.com/en/1.0.0/ . @rly #254
- Made docs site point to latest stable release: https://hdmf-zarr.readthedocs.io/en/stable/ instead of "latest" tag. @rly #254
- Removed GitHub Actions workflow that automatically generated GitHub pre-releases on the "latest" tag on each commit to dev to simplify maintenance. @rly #254
- Clarified docs and updated links to say that only Zarr v2 is currently supported. @rly #257
- Removed
ZarrIO.get_zarr_parent_pathandZarrIO.is_zarr_filemethods. @rly #256 - Fixed bug in how links and references are stored in the Zarr file. They are now written as relative paths from the Zarr file, using "." to indicate the current file. This is how hdmf-zarr wrote internal links and references pre-0.10.0. @rly #256
- Added initial refactor of export, supporting references and internal/external links from Zarr to Zarr. This will introduce breaking changes that could lead to existing exported files to be invalid. This update removes '.' as the object default file source. @mavaylon1 #194
- Added support for Pathlib paths. @mavaylon1 #212
- Updated packages used for testing and readthedocs configuration. @mavaylon1, @rly #214
- Add
force_overwiteparameter forZarrIO.__init__to allow overwriting an existing file or directory. @oruebel #229 - Remove allowance of
hdmf.Arrayin__init__ofAbstractZarrTableDatasetandZarrDatasetto be compatible with HDMF 4.0. @rly #236 - Remove support for python 3.8 and added testing for Python 3.13. @mavaylon1 #240
- Added
NWBZarrIO.read_nwbconvenience method to simplify reading an NWB file. @oruebel #226 - Updated optional dependency groups in
pyproject.tomland GitHub Actions workflows. @rly, @mavaylon1 #239 - Applied black code formatter. @rly #247
- Fix reading of cached specs and caching of specs during export. @rly #232
- Fix hiding of pynwb compatibility errors. @rly 242
- Added support for appending a dataset of references. @mavaylon1 #203
- NWBZarrIO load_namespaces=True by default. @mavaylon1 #204
- Added test for opening file with consolidated metadata from DANDI. @mavaylon1 #206
- Add dimension labels compatible with xarray. @mavaylon1 #207
- Added link_data --> clear_cache relationship to support repacking zarr nwbfiles: #215
- Fixed bug when opening a file in with
mode=r+. The file will open without using the consolidated metadata. @mavaylon1 #182 - Fixed bug on how we access scalar arrays. Added warning filter for Zarr deprecation of NestedDirectoryStore. Fixed bug on how we write a dataset of references. @mavaylon1 #195
- Added support for python 3.12. @mavaylon1 #172
- Added support for forcing read of files without consolidated metadata using
mode=r-inZarrIO. @oruebel #183
- Updated testing to not install in editable mode and not run
coverageby default. @rly #188
- Removed
linkablefrom the documentation to keep in line withhdmf-schema-language. @mavaylon1 #180
- Fixed bug in
ZarrIO.__open_file_consolidatedthat led to remote files being opened without consolidated metadata. @oruebel #184 - Fixed minor bug where
ZarrIO.__open_file_consolidatedused properties ofZarrIOinstead of the provided input parameters. @oruebel #183
- Enhanced
ZarrIOandZarrDataIOto infer io settings (e.g., chunking and compression) from HDF5 datasets to preserve storage settings on export if possible @oruebel #153 - Updated writing references in compound datasets to same-sized array, rather than iteratively as an array of lists. @sneakers-the-rat #146
- Fixed bug when converting HDF5 datasets with unlimited dimensions @oruebel #155
- Fixed bug resolving bytes dtype when exporting from Zarr to Zarr @oruebel #161
- Adjusted gallery tests to not fail on deprecation warnings from pandas. @rly #157
- Fixed bug in
pyproject.tomlwhere duplicate versions ofnumcodecwhere specified. @oruebel #163
- Updated actions in
deploy_release.ymlworkflow to avoid use of deprecated Node.js 16. @oruebel #165
- Added a new default to consolidate metadata in order more efficeintly traverse storage contents. @mavaylon1 #142
- Fix linking for FSSpec and support passing of
storage_optionsrequired reading data from S3 #138. @alejoe91 #120 - Updated versioning to hatch-vcs and deprecated setup.py in full transition to
pyproject.toml. @mavaylon1 #143
- Enhanced ZarrIO to resolve object references lazily on read similar to HDMF's
HDF5IObackend. @mavaylon1 #120 - Updated storage of references to also save the
object_idandsource_object_id. While not strictly necessary this information is useful for validation and rigor of references. @oruebel #57
- Added parallel write support for the
ZarrIOfor datasets wrapped withGenericDataChunkIterator. @CodyCBakerPhD #118 @oruebel #128
- Updated HDMF and PyNWB version to the most recent release @mavaylon1 #120
- Updated minimum Python version from 3.7 to 3.8 @mavaylon1 #120
- Added
threadpoolctldependency for parallel write. @CodyCBakerPhD #118 - Added support for specifying optional dependencies and add optional dependency for
tqdmused in parallel write. @CodyCBakerPhD #118
- Fixed error in deploy workflow. @mavaylon1 #109
- Fixed build error for ReadtheDocs by degrading numpy for python 3.7 support. @mavaylon1 #115
- Fixed bug in the resolution of references to Containers. Previously references were only resolved to Builders. @mavaylon1 #120
- Added support, tests, and docs for using
DirectoryStore,TempStore, andNestedDirectoryStoreZarr storage backends withZarrIOandNWBZarrIO. @oruebel #62
- Updated handling of references on read to simplify future integration of file-based Zarr stores (e.g., ZipStore or database stores). @oruebel #62
- Added
can_readclassmethod toZarrIO. @bendichter #97
- Modularized unit tests to simplify running tests for multiple Zarr storage backends. @oruebel #62
- Fixed CI testing of minimum and optional installation requirement. @rly #99
- Updated tests to handle upcoming changes to
HDMFIO. @rly #102
- Added developer documentation on how to integrate new storage backends with ZarrIO. @oruebel #62
- Removed unused
filepathargument fromZarrIO.get_builder_exists_on_disk#62
- Fixed error in nightly CI. @rly #93
- Updated the storage of links/references to use paths relative to the current Zarr file to avoid breaking links/reference when moving Zarr files @oruebel #46
- Fixed bugs in requirements defined in setup.py @oruebel #46
- Fixed bug regarding Sphinx external links @mavaylon1 #53
- Updated gallery tests to use test_gallery.py and necessary package dependencies @mavaylon1 #53
- Updated dateset used in conversion tutorial, which caused warnings @oruebel #56
- Added tutorial illustrating how to create a new NWB file with NWBZarrIO @oruebel #46
- Added docs for describing the mapping of HDMF schema to Zarr storage @oruebel #48
- Added
docs/gallery/resourcesfor storing local files used by the tutorial galleries @oruebel #61 - Removed dependency on
dandilibrary for data download in the conversion tutorial by storing the NWB files as local resources @oruebel #61
- Created new optional Zarr-based I/O backend for writing files using Zarr's
zarr.store.DirectoryStorebackend, including support for iterative write, chunking, compression, simple and compound data types, links, object references, namespace and spec I/O.