@@ -760,6 +760,10 @@ def create(
760760
761761 The elements of ``codecs`` specify the transformation from array values to stored bytes.
762762 Zarr format 3 only. Zarr format 2 arrays should use ``filters`` and ``compressor`` instead.
763+ In order, a Zarr format 3 pipeline contains zero or more
764+ [`zarr.abc.codec.ArrayArrayCodec`][] filters, exactly one
765+ [`zarr.abc.codec.ArrayBytesCodec`][] serializer, and zero or more
766+ [`zarr.abc.codec.BytesBytesCodec`][] compressors.
763767
764768 If no codecs are provided, default codecs will be used based on the data type of the array.
765769 For most data types, the default codecs are the tuple ``(BytesCodec(), ZstdCodec())``;
@@ -892,7 +896,11 @@ def create_array(
892896 filters are applied (if any are specified) and the data is serialized into bytes.
893897
894898 For Zarr format 3, a "compressor" is a codec that takes a bytestream, and
895- returns another bytestream. Multiple compressors may be provided for Zarr format 3.
899+ returns another bytestream. These values must be instances of
900+ [`zarr.abc.codec.BytesBytesCodec`][], or dict representations of
901+ [`zarr.abc.codec.BytesBytesCodec`][]. Multiple compressors may be provided
902+ for Zarr format 3. Codecs that take an array and return bytes are serializers
903+ and must be supplied with ``serializer`` instead.
896904 If no ``compressors`` are provided, a default set of compressors will be used.
897905 These defaults can be changed by modifying the value of ``array.v3_default_compressors``
898906 in [`zarr.config`][zarr.config].
@@ -906,6 +914,8 @@ def create_array(
906914 serializer : dict[str, JSON] | ArrayBytesCodec, optional
907915 Array-to-bytes codec to use for encoding the array data.
908916 Zarr format 3 only. Zarr format 2 arrays use implicit array-to-bytes conversion.
917+ Codecs that are instances of [`zarr.abc.codec.ArrayBytesCodec`][] must be
918+ supplied here, not with ``compressors``.
909919 If no ``serializer`` is provided, a default serializer will be used.
910920 These defaults can be changed by modifying the value of ``array.v3_default_serializer``
911921 in [`zarr.config`][zarr.config].
0 commit comments