codec
zarr.abc.codec ¶
CodecJSON
module-attribute
¶
The widest type of JSON-like input that could specify a codec.
CodecJSON_V3
module-attribute
¶
The JSON representation of a codec for Zarr V3.
ArrayArrayCodec
dataclass
¶
Bases: BaseCodec[NDBuffer, NDBuffer]
Base class for array-to-array codecs.
Source code in zarr/abc/codec.py
compute_encoded_size
abstractmethod
¶
Given an input byte length, this method returns the output byte length. Raises a NotImplementedError for codecs with variable-sized outputs (e.g. compressors).
Parameters:
-
input_byte_length
(int
) – -
chunk_spec
(ArraySpec
) –
Returns:
-
int
–
Source code in zarr/abc/codec.py
decode
async
¶
decode(
chunks_and_specs: Iterable[
tuple[CodecOutput | None, ArraySpec]
],
) -> Iterable[CodecInput | None]
Decodes a batch of chunks. Chunks can be None in which case they are ignored by the codec.
Parameters:
-
chunks_and_specs
(Iterable[tuple[CodecOutput | None, ArraySpec]]
) –Ordered set of encoded chunks with their accompanying chunk spec.
Returns:
-
Iterable[CodecInput | None]
–
Source code in zarr/abc/codec.py
encode
async
¶
encode(
chunks_and_specs: Iterable[
tuple[CodecInput | None, ArraySpec]
],
) -> Iterable[CodecOutput | None]
Encodes a batch of chunks. Chunks can be None in which case they are ignored by the codec.
Parameters:
-
chunks_and_specs
(Iterable[tuple[CodecInput | None, ArraySpec]]
) –Ordered set of to-be-encoded chunks with their accompanying chunk spec.
Returns:
-
Iterable[CodecOutput | None]
–
Source code in zarr/abc/codec.py
evolve_from_array_spec ¶
evolve_from_array_spec(array_spec: ArraySpec) -> Self
Fills in codec configuration parameters that can be automatically inferred from the array metadata.
Parameters:
-
array_spec
(ArraySpec
) –
Returns:
-
Self
–
Source code in zarr/abc/codec.py
from_dict
classmethod
¶
resolve_metadata ¶
Computed the spec of the chunk after it has been encoded by the codec. This is important for codecs that change the shape, data type or fill value of a chunk. The spec will then be used for subsequent codecs in the pipeline.
Parameters:
-
chunk_spec
(ArraySpec
) –
Returns:
-
ArraySpec
–
Source code in zarr/abc/codec.py
to_dict ¶
Recursively serialize this model to a dictionary.
This method inspects the fields of self and calls x.to_dict()
for any fields that
are instances of Metadata
. Sequences of Metadata
are similarly recursed into, and
the output of that recursion is collected in a list.
Source code in zarr/abc/metadata.py
validate ¶
validate(
*,
shape: tuple[int, ...],
dtype: ZDType[TBaseDType, TBaseScalar],
chunk_grid: ChunkGrid,
) -> None
Validates that the codec configuration is compatible with the array metadata. Raises errors when the codec configuration is not compatible.
Parameters:
-
shape
(tuple[int, ...]
) –The array shape
-
dtype
(dtype[Any]
) –The array data type
-
chunk_grid
(ChunkGrid
) –The array chunk grid
Source code in zarr/abc/codec.py
ArrayBytesCodec
dataclass
¶
Bases: BaseCodec[NDBuffer, Buffer]
Base class for array-to-bytes codecs.
Source code in zarr/abc/codec.py
compute_encoded_size
abstractmethod
¶
Given an input byte length, this method returns the output byte length. Raises a NotImplementedError for codecs with variable-sized outputs (e.g. compressors).
Parameters:
-
input_byte_length
(int
) – -
chunk_spec
(ArraySpec
) –
Returns:
-
int
–
Source code in zarr/abc/codec.py
decode
async
¶
decode(
chunks_and_specs: Iterable[
tuple[CodecOutput | None, ArraySpec]
],
) -> Iterable[CodecInput | None]
Decodes a batch of chunks. Chunks can be None in which case they are ignored by the codec.
Parameters:
-
chunks_and_specs
(Iterable[tuple[CodecOutput | None, ArraySpec]]
) –Ordered set of encoded chunks with their accompanying chunk spec.
Returns:
-
Iterable[CodecInput | None]
–
Source code in zarr/abc/codec.py
encode
async
¶
encode(
chunks_and_specs: Iterable[
tuple[CodecInput | None, ArraySpec]
],
) -> Iterable[CodecOutput | None]
Encodes a batch of chunks. Chunks can be None in which case they are ignored by the codec.
Parameters:
-
chunks_and_specs
(Iterable[tuple[CodecInput | None, ArraySpec]]
) –Ordered set of to-be-encoded chunks with their accompanying chunk spec.
Returns:
-
Iterable[CodecOutput | None]
–
Source code in zarr/abc/codec.py
evolve_from_array_spec ¶
evolve_from_array_spec(array_spec: ArraySpec) -> Self
Fills in codec configuration parameters that can be automatically inferred from the array metadata.
Parameters:
-
array_spec
(ArraySpec
) –
Returns:
-
Self
–
Source code in zarr/abc/codec.py
from_dict
classmethod
¶
resolve_metadata ¶
Computed the spec of the chunk after it has been encoded by the codec. This is important for codecs that change the shape, data type or fill value of a chunk. The spec will then be used for subsequent codecs in the pipeline.
Parameters:
-
chunk_spec
(ArraySpec
) –
Returns:
-
ArraySpec
–
Source code in zarr/abc/codec.py
to_dict ¶
Recursively serialize this model to a dictionary.
This method inspects the fields of self and calls x.to_dict()
for any fields that
are instances of Metadata
. Sequences of Metadata
are similarly recursed into, and
the output of that recursion is collected in a list.
Source code in zarr/abc/metadata.py
validate ¶
validate(
*,
shape: tuple[int, ...],
dtype: ZDType[TBaseDType, TBaseScalar],
chunk_grid: ChunkGrid,
) -> None
Validates that the codec configuration is compatible with the array metadata. Raises errors when the codec configuration is not compatible.
Parameters:
-
shape
(tuple[int, ...]
) –The array shape
-
dtype
(dtype[Any]
) –The array data type
-
chunk_grid
(ChunkGrid
) –The array chunk grid
Source code in zarr/abc/codec.py
ArrayBytesCodecPartialDecodeMixin ¶
Mixin for array-to-bytes codecs that implement partial decoding.
Source code in zarr/abc/codec.py
decode_partial
async
¶
decode_partial(
batch_info: Iterable[
tuple[ByteGetter, SelectorTuple, ArraySpec]
],
) -> Iterable[NDBuffer | None]
Partially decodes a batch of chunks. This method determines parts of a chunk from the slice selection, fetches these parts from the store (via ByteGetter) and decodes them.
Parameters:
-
batch_info
(Iterable[tuple[ByteGetter, SelectorTuple, ArraySpec]]
) –Ordered set of information about slices of encoded chunks. The slice selection determines which parts of the chunk will be fetched. The ByteGetter is used to fetch the necessary bytes. The chunk spec contains information about the construction of an array from the bytes.
Returns:
Source code in zarr/abc/codec.py
ArrayBytesCodecPartialEncodeMixin ¶
Mixin for array-to-bytes codecs that implement partial encoding.
Source code in zarr/abc/codec.py
encode_partial
async
¶
encode_partial(
batch_info: Iterable[
tuple[
ByteSetter, NDBuffer, SelectorTuple, ArraySpec
]
],
) -> None
Partially encodes a batch of chunks. This method determines parts of a chunk from the slice selection, encodes them and writes these parts to the store (via ByteSetter). If merging with existing chunk data in the store is necessary, this method will read from the store first and perform the merge.
Parameters:
-
batch_info
(Iterable[tuple[ByteSetter, NDBuffer, SelectorTuple, ArraySpec]]
) –Ordered set of information about slices of to-be-encoded chunks. The slice selection determines which parts of the chunk will be encoded. The ByteSetter is used to write the necessary bytes and fetch bytes for existing chunk data. The chunk spec contains information about the chunk.
Source code in zarr/abc/codec.py
BaseCodec
dataclass
¶
Bases: Metadata
, Generic[CodecInput, CodecOutput]
Generic base class for codecs.
Codecs can be registered via zarr.codecs.registry.
Warnings
This class is not intended to be directly, please use ArrayArrayCodec, ArrayBytesCodec or BytesBytesCodec for subclassing.
Source code in zarr/abc/codec.py
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 |
|
compute_encoded_size
abstractmethod
¶
Given an input byte length, this method returns the output byte length. Raises a NotImplementedError for codecs with variable-sized outputs (e.g. compressors).
Parameters:
-
input_byte_length
(int
) – -
chunk_spec
(ArraySpec
) –
Returns:
-
int
–
Source code in zarr/abc/codec.py
decode
async
¶
decode(
chunks_and_specs: Iterable[
tuple[CodecOutput | None, ArraySpec]
],
) -> Iterable[CodecInput | None]
Decodes a batch of chunks. Chunks can be None in which case they are ignored by the codec.
Parameters:
-
chunks_and_specs
(Iterable[tuple[CodecOutput | None, ArraySpec]]
) –Ordered set of encoded chunks with their accompanying chunk spec.
Returns:
-
Iterable[CodecInput | None]
–
Source code in zarr/abc/codec.py
encode
async
¶
encode(
chunks_and_specs: Iterable[
tuple[CodecInput | None, ArraySpec]
],
) -> Iterable[CodecOutput | None]
Encodes a batch of chunks. Chunks can be None in which case they are ignored by the codec.
Parameters:
-
chunks_and_specs
(Iterable[tuple[CodecInput | None, ArraySpec]]
) –Ordered set of to-be-encoded chunks with their accompanying chunk spec.
Returns:
-
Iterable[CodecOutput | None]
–
Source code in zarr/abc/codec.py
evolve_from_array_spec ¶
evolve_from_array_spec(array_spec: ArraySpec) -> Self
Fills in codec configuration parameters that can be automatically inferred from the array metadata.
Parameters:
-
array_spec
(ArraySpec
) –
Returns:
-
Self
–
Source code in zarr/abc/codec.py
from_dict
classmethod
¶
resolve_metadata ¶
Computed the spec of the chunk after it has been encoded by the codec. This is important for codecs that change the shape, data type or fill value of a chunk. The spec will then be used for subsequent codecs in the pipeline.
Parameters:
-
chunk_spec
(ArraySpec
) –
Returns:
-
ArraySpec
–
Source code in zarr/abc/codec.py
to_dict ¶
Recursively serialize this model to a dictionary.
This method inspects the fields of self and calls x.to_dict()
for any fields that
are instances of Metadata
. Sequences of Metadata
are similarly recursed into, and
the output of that recursion is collected in a list.
Source code in zarr/abc/metadata.py
validate ¶
validate(
*,
shape: tuple[int, ...],
dtype: ZDType[TBaseDType, TBaseScalar],
chunk_grid: ChunkGrid,
) -> None
Validates that the codec configuration is compatible with the array metadata. Raises errors when the codec configuration is not compatible.
Parameters:
-
shape
(tuple[int, ...]
) –The array shape
-
dtype
(dtype[Any]
) –The array data type
-
chunk_grid
(ChunkGrid
) –The array chunk grid
Source code in zarr/abc/codec.py
BytesBytesCodec
dataclass
¶
Bases: BaseCodec[Buffer, Buffer]
Base class for bytes-to-bytes codecs.
Source code in zarr/abc/codec.py
compute_encoded_size
abstractmethod
¶
Given an input byte length, this method returns the output byte length. Raises a NotImplementedError for codecs with variable-sized outputs (e.g. compressors).
Parameters:
-
input_byte_length
(int
) – -
chunk_spec
(ArraySpec
) –
Returns:
-
int
–
Source code in zarr/abc/codec.py
decode
async
¶
decode(
chunks_and_specs: Iterable[
tuple[CodecOutput | None, ArraySpec]
],
) -> Iterable[CodecInput | None]
Decodes a batch of chunks. Chunks can be None in which case they are ignored by the codec.
Parameters:
-
chunks_and_specs
(Iterable[tuple[CodecOutput | None, ArraySpec]]
) –Ordered set of encoded chunks with their accompanying chunk spec.
Returns:
-
Iterable[CodecInput | None]
–
Source code in zarr/abc/codec.py
encode
async
¶
encode(
chunks_and_specs: Iterable[
tuple[CodecInput | None, ArraySpec]
],
) -> Iterable[CodecOutput | None]
Encodes a batch of chunks. Chunks can be None in which case they are ignored by the codec.
Parameters:
-
chunks_and_specs
(Iterable[tuple[CodecInput | None, ArraySpec]]
) –Ordered set of to-be-encoded chunks with their accompanying chunk spec.
Returns:
-
Iterable[CodecOutput | None]
–
Source code in zarr/abc/codec.py
evolve_from_array_spec ¶
evolve_from_array_spec(array_spec: ArraySpec) -> Self
Fills in codec configuration parameters that can be automatically inferred from the array metadata.
Parameters:
-
array_spec
(ArraySpec
) –
Returns:
-
Self
–
Source code in zarr/abc/codec.py
from_dict
classmethod
¶
resolve_metadata ¶
Computed the spec of the chunk after it has been encoded by the codec. This is important for codecs that change the shape, data type or fill value of a chunk. The spec will then be used for subsequent codecs in the pipeline.
Parameters:
-
chunk_spec
(ArraySpec
) –
Returns:
-
ArraySpec
–
Source code in zarr/abc/codec.py
to_dict ¶
Recursively serialize this model to a dictionary.
This method inspects the fields of self and calls x.to_dict()
for any fields that
are instances of Metadata
. Sequences of Metadata
are similarly recursed into, and
the output of that recursion is collected in a list.
Source code in zarr/abc/metadata.py
validate ¶
validate(
*,
shape: tuple[int, ...],
dtype: ZDType[TBaseDType, TBaseScalar],
chunk_grid: ChunkGrid,
) -> None
Validates that the codec configuration is compatible with the array metadata. Raises errors when the codec configuration is not compatible.
Parameters:
-
shape
(tuple[int, ...]
) –The array shape
-
dtype
(dtype[Any]
) –The array data type
-
chunk_grid
(ChunkGrid
) –The array chunk grid
Source code in zarr/abc/codec.py
CodecJSON_V2 ¶
CodecPipeline ¶
Base class for implementing CodecPipeline. A CodecPipeline implements the read and write paths for chunk data. On the read path, it is responsible for fetching chunks from a store (via ByteGetter), decoding them and assembling an output array. On the write path, it encodes the chunks and writes them to a store (via ByteSetter).
Source code in zarr/abc/codec.py
272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 |
|
compute_encoded_size
abstractmethod
¶
Given an input byte length, this method returns the output byte length. Raises a NotImplementedError for codecs with variable-sized outputs (e.g. compressors).
Parameters:
-
byte_length
(int
) – -
array_spec
(ArraySpec
) –
Returns:
-
int
–
Source code in zarr/abc/codec.py
decode
abstractmethod
async
¶
decode(
chunk_bytes_and_specs: Iterable[
tuple[Buffer | None, ArraySpec]
],
) -> Iterable[NDBuffer | None]
Decodes a batch of chunks. Chunks can be None in which case they are ignored by the codec.
Parameters:
-
chunk_bytes_and_specs
(Iterable[tuple[Buffer | None, ArraySpec]]
) –Ordered set of encoded chunks with their accompanying chunk spec.
Returns:
Source code in zarr/abc/codec.py
encode
abstractmethod
async
¶
encode(
chunk_arrays_and_specs: Iterable[
tuple[NDBuffer | None, ArraySpec]
],
) -> Iterable[Buffer | None]
Encodes a batch of chunks. Chunks can be None in which case they are ignored by the codec.
Parameters:
-
chunk_arrays_and_specs
(Iterable[tuple[NDBuffer | None, ArraySpec]]
) –Ordered set of to-be-encoded chunks with their accompanying chunk spec.
Returns:
Source code in zarr/abc/codec.py
evolve_from_array_spec
abstractmethod
¶
evolve_from_array_spec(array_spec: ArraySpec) -> Self
Fills in codec configuration parameters that can be automatically inferred from the array metadata.
Parameters:
-
array_spec
(ArraySpec
) –
Returns:
-
Self
–
Source code in zarr/abc/codec.py
from_array_metadata_and_store
classmethod
¶
Creates a codec pipeline from array metadata and a store path.
Raises NotImplementedError by default, indicating the CodecPipeline must be created with from_codecs instead.
Parameters:
-
array_metadata
(ArrayMetadata
) – -
store
(Store
) –
Returns:
-
Self
–
Source code in zarr/abc/codec.py
from_codecs
abstractmethod
classmethod
¶
read
abstractmethod
async
¶
read(
batch_info: Iterable[
tuple[
ByteGetter,
ArraySpec,
SelectorTuple,
SelectorTuple,
bool,
]
],
out: NDBuffer,
drop_axes: tuple[int, ...] = (),
) -> None
Reads chunk data from the store, decodes it and writes it into an output array. Partial decoding may be utilized if the codecs and stores support it.
Parameters:
-
batch_info
(Iterable[tuple[ByteGetter, ArraySpec, SelectorTuple, SelectorTuple]]
) –Ordered set of information about the chunks. The first slice selection determines which parts of the chunk will be fetched. The second slice selection determines where in the output array the chunk data will be written. The ByteGetter is used to fetch the necessary bytes. The chunk spec contains information about the construction of an array from the bytes.
If the Store returns
None
for a chunk, then the chunk was not written and the implementation must set the values of that chunk (orout
) to the fill value for the array. -
out
(NDBuffer
) –
Source code in zarr/abc/codec.py
validate
abstractmethod
¶
validate(
*,
shape: tuple[int, ...],
dtype: ZDType[TBaseDType, TBaseScalar],
chunk_grid: ChunkGrid,
) -> None
Validates that all codec configurations are compatible with the array metadata. Raises errors when a codec configuration is not compatible.
Parameters:
-
shape
(tuple[int, ...]
) –The array shape
-
dtype
(dtype[Any]
) –The array data type
-
chunk_grid
(ChunkGrid
) –The array chunk grid
Source code in zarr/abc/codec.py
write
abstractmethod
async
¶
write(
batch_info: Iterable[
tuple[
ByteSetter,
ArraySpec,
SelectorTuple,
SelectorTuple,
bool,
]
],
value: NDBuffer,
drop_axes: tuple[int, ...] = (),
) -> None
Encodes chunk data and writes it to the store. Merges with existing chunk data by reading first, if necessary. Partial encoding may be utilized if the codecs and stores support it.
Parameters:
-
batch_info
(Iterable[tuple[ByteSetter, ArraySpec, SelectorTuple, SelectorTuple]]
) –Ordered set of information about the chunks. The first slice selection determines which parts of the chunk will be encoded. The second slice selection determines where in the value array the chunk data is located. The ByteSetter is used to fetch and write the necessary bytes. The chunk spec contains information about the chunk.
-
value
(NDBuffer
) –