Open
Description
Currently we pass numcodecs.Codec
objects as the compression and filters arguments to reduce_chunk. This is convenient for the local storage implementation, but does leave us reliant on the numcodecs library in what might be considered our internal "storage backend API".
It would be better to describe these algorithms using a Plain Old Data (POD) type, such as a dict.
See the original discussion.
As outlined in my proposal, I suggest we use arguments in the following format:
reduce_chunk(
compression={"compression": {"id": "zlib"}},
filters=[{"id": "shuffle", "dtype": "uint32"}]),
...
)
This aligns with the format used in the S3 active storage server API.