Skip to content

numcodecs.ZFPY() fails #3557

@afj-qeye

Description

@afj-qeye

Zarr version

v3.1.3

Numcodecs version

v0.16.1

Python Version

3.13.7

Operating System

Linux

Installation

using conda

Description

Using numcodecs.Zstd() works, but not numcodecs.ZFPY() which produces the following error message:


Traceback (most recent call last):
  File "zarr_compression.py", line 4, in <module>
    array = zarr.create_array(
        store="/tmp/data.zarr",
    ...<3 lines>...
        compressors=[numcodecs.ZFPY()],
        overwrite=True)
  File "/anaconda3/2025.06/envs/qeye3/lib/python3.13/site-packages/zarr/api/synchronous.py", line 945, in create_array
    sync(
    ~~~~^
        zarr.core.array.create_array(
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<20 lines>...
        )
        ^
    )
    ^
  File "/anaconda3/2025.06/envs/qeye3/lib/python3.13/site-packages/zarr/core/sync.py", line 163, in sync
    raise return_result
  File "/anaconda3/2025.06/envs/qeye3/lib/python3.13/site-packages/zarr/core/sync.py", line 119, in _runner
    return await coro
           ^^^^^^^^^^
  File "/anaconda3/2025.06/envs/qeye3/lib/python3.13/site-packages/zarr/core/array.py", line 4786, in create_array
    return await init_array(
           ^^^^^^^^^^^^^^^^^
    ...<16 lines>...
    )
    ^
  File "/anaconda3/2025.06/envs/qeye3/lib/python3.13/site-packages/zarr/core/array.py", line 4572, in init_array
    array_array, array_bytes, bytes_bytes = _parse_chunk_encoding_v3(
                                            ~~~~~~~~~~~~~~~~~~~~~~~~^
        compressors=compressors,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
        dtype=zdtype,
        ^^^^^^^^^^^^^
    )
    ^
  File "/anaconda3/2025.06/envs/qeye3/lib/python3.13/site-packages/zarr/core/array.py", line 5108, in _parse_chunk_encoding_v3
    out_bytes_bytes = tuple(_parse_bytes_bytes_codec(c) for c in maybe_bytes_bytes)
  File "/anaconda3/2025.06/envs/qeye3/lib/python3.13/site-packages/zarr/core/array.py", line 5108, in <genexpr>
    out_bytes_bytes = tuple(_parse_bytes_bytes_codec(c) for c in maybe_bytes_bytes)
                            ~~~~~~~~~~~~~~~~~~~~~~~~^^^
  File "/anaconda3/2025.06/envs/qeye3/lib/python3.13/site-packages/zarr/registry.py", line 214, in _parse_bytes_bytes_codec
    raise TypeError(f"Expected a BytesBytesCodec. Got {type(data)} instead.")
TypeError: Expected a BytesBytesCodec. Got <class 'zarr.codecs.numcodecs._codecs.ZFPY'> instead.

Steps to reproduce

import zarr
import zarr.codecs.numcodecs as numcodecs

array = zarr.create_array(
    store="/tmp/data.zarr",
    shape=(1024, 1024),
    chunks=(64, 64),
    dtype="float32",
    compressors=[numcodecs.ZFPY()],
    overwrite=True)

Additional output

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugPotential issues with the zarr-python library

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions