Skip to content

public types for metadata objects #3795

@d-v-b

Description

@d-v-b

For objects that end up in array or group metadata, there are 2 types that users might care about:

  • an input type that defines the set of python objects that can be parsed to the metadata object
  • an output type that defines the set of JSON-like objects that the metadata object serializes to

take the shape field of array metadata:

  • input type: something like Iterable[int] | int | numpy integers
  • output type: tuple[int, ...]

for something like the bytes codec, we would have:

  • input type: BytesCodec | Literal["bytes"] | NamedConfig[Literal["bytes"], BytesConfig]
  • output type: Literal["bytes"] | NamedConfig[Literal["bytes"], BytesConfig]

the input type is generous, the output type is strict. Both of these types are useful for people using zarr-python to create codecs, chunk key encodings, chunk grids, data types, etc.

This issue tracks the creation of public types for the input ("deserializable" type) and output ("serializable") of zarr metadata objects. I considered making a big list with checkboxes, but it would be really long and the checkboxes would all be empty. Instead, we can update this issue when we add or expose types, and close it when they are all added / exposed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions