Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ dynamic = ["version"]
dependencies = [
# Type-only package providing Zarr v3 metadata TypedDicts/Literals used in
# the `.pyi` stubs (data-type names, codec configs, array metadata).
"zarr-metadata>=0.3",
"zarr-metadata>=0.4",
]

[tool.maturin]
Expand Down
10 changes: 5 additions & 5 deletions python/zarrista/_array.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ from collections.abc import Buffer
from types import EllipsisType
from typing import TypeAlias, Unpack

from zarr_metadata import ArrayMetadataV3, JSONValue
from zarr_metadata import JSONValue, ZarrV3ArrayMetadataJSON

from zarrista.codec import (
ArrayToArrayCodec,
Expand Down Expand Up @@ -37,7 +37,7 @@ class Array:
"""Open the array stored at `path` in `store`."""
@staticmethod
def from_metadata(
metadata: ArrayMetadataV3,
metadata: ZarrV3ArrayMetadataJSON,
store: FilesystemStore | MemoryStore,
path: str = "/",
) -> Array:
Expand Down Expand Up @@ -96,7 +96,7 @@ class Array:
def fill_value(self) -> FillValue:
"""The array's fill value."""
@property
def metadata(self) -> ArrayMetadataV3:
def metadata(self) -> ZarrV3ArrayMetadataJSON:
"""The array's full Zarr v3 metadata."""
@property
def ndim(self) -> int:
Expand Down Expand Up @@ -267,7 +267,7 @@ class AsyncArray:
"""
@staticmethod
def from_metadata(
metadata: ArrayMetadataV3,
metadata: ZarrV3ArrayMetadataJSON,
store: AsyncStore,
path: str = "/",
) -> AsyncArray:
Expand Down Expand Up @@ -327,7 +327,7 @@ class AsyncArray:
def fill_value(self) -> FillValue:
"""The array's fill value."""
@property
def metadata(self) -> ArrayMetadataV3:
def metadata(self) -> ZarrV3ArrayMetadataJSON:
"""The array's full Zarr v3 metadata."""
@property
def ndim(self) -> int:
Expand Down
4 changes: 2 additions & 2 deletions python/zarrista/_builder.pyi
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from collections.abc import Mapping, Sequence

from zarr_metadata import ArrayMetadataV3, JSONValue
from zarr_metadata import JSONValue, ZarrV3ArrayMetadataJSON

from zarrista.codec import (
ArrayToArrayCodec,
Expand Down Expand Up @@ -93,7 +93,7 @@ class ArrayBuilder:
[`ArrayBuilder.create_metadata`][zarrista.ArrayBuilder.create_metadata]
to build metadata without touching a store.
"""
def create_metadata(self) -> ArrayMetadataV3:
def create_metadata(self) -> ZarrV3ArrayMetadataJSON:
"""Build the array's Zarr v3 metadata without touching a store.

Nothing is written. Pass the result to
Expand Down
6 changes: 3 additions & 3 deletions python/zarrista/_chunk_key_encoding.pyi
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import Literal

from zarr_metadata import NamedConfigV3
from zarr_metadata import ZarrV3NamedConfigJSON

class ChunkKeyEncoding:
"""How an array maps chunk grid indices to store keys."""
Expand All @@ -9,10 +9,10 @@ class ChunkKeyEncoding:
def default(sep: Literal[".", "/"]) -> ChunkKeyEncoding:
"""Construct the `default` chunk key encoding with the given separator."""
@staticmethod
def from_metadata(metadata: NamedConfigV3) -> ChunkKeyEncoding:
def from_metadata(metadata: ZarrV3NamedConfigJSON) -> ChunkKeyEncoding:
"""Build a chunk key encoding from its Zarr v3 metadata."""
@property
def metadata(self) -> NamedConfigV3:
def metadata(self) -> ZarrV3NamedConfigJSON:
"""The chunk key encoding's Zarr v3 metadata."""
@property
def name(self) -> str | None:
Expand Down
9 changes: 6 additions & 3 deletions python/zarrista/_chunks.pyi
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from collections.abc import Sequence
from typing import TypeAlias

from zarr_metadata import NamedConfigV3
from zarr_metadata import ZarrV3NamedConfigJSON

_RunLength: TypeAlias = int | tuple[int, int]
"""One run of a rectilinear chunk edge: a single chunk size, or a
Expand Down Expand Up @@ -33,10 +33,13 @@ class ChunkGrid:
Experimental and may be incompatible with other Zarr V3 implementations.
"""
@staticmethod
def from_metadata(metadata: NamedConfigV3, shape: Sequence[int]) -> ChunkGrid:
def from_metadata(
metadata: ZarrV3NamedConfigJSON,
shape: Sequence[int],
) -> ChunkGrid:
"""Build a chunk grid from its Zarr v3 metadata and the array shape."""
@property
def metadata(self) -> NamedConfigV3:
def metadata(self) -> ZarrV3NamedConfigJSON:
"""The chunk grid's Zarr v3 metadata."""
@property
def ndim(self) -> int:
Expand Down
4 changes: 2 additions & 2 deletions python/zarrista/_dtype.pyi
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import TypeAlias

from zarr_metadata import NamedConfigV3
from zarr_metadata import ZarrV3NamedConfigJSON
from zarr_metadata.v3.data_type import (
BoolDataTypeName,
BytesDataTypeName,
Expand Down Expand Up @@ -50,7 +50,7 @@ class DataType:
"""A Zarr v3 data type."""

@staticmethod
def from_metadata(metadata: NamedConfigV3) -> DataType:
def from_metadata(metadata: ZarrV3NamedConfigJSON) -> DataType:
"""Construct a data type from its Zarr v3 metadata."""
@staticmethod
def from_string(name: DataTypeName | str) -> DataType:
Expand Down
14 changes: 9 additions & 5 deletions python/zarrista/_group.pyi
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
from zarr_metadata import ConsolidatedMetadataV3, GroupMetadataV3, JSONValue
from zarr_metadata import (
JSONValue,
ZarrV3ConsolidatedMetadataJSON,
ZarrV3GroupMetadataJSON,
)

from ._array import Array, AsyncArray
from ._store import AsyncStore, FilesystemStore, MemoryStore
Expand All @@ -13,10 +17,10 @@ class Group:
def attrs(self) -> dict[str, JSONValue]:
"""The group's user attributes as a dict."""
@property
def metadata(self) -> GroupMetadataV3:
def metadata(self) -> ZarrV3GroupMetadataJSON:
"""The group's full Zarr v3 metadata."""
@property
def consolidated_metadata(self) -> ConsolidatedMetadataV3 | None:
def consolidated_metadata(self) -> ZarrV3ConsolidatedMetadataJSON | None:
"""The consolidated metadata, if present in the group metadata."""
@property
def path(self) -> str:
Expand Down Expand Up @@ -62,10 +66,10 @@ class AsyncGroup:
def attrs(self) -> dict[str, JSONValue]:
"""The group's user attributes as a dict."""
@property
def metadata(self) -> GroupMetadataV3:
def metadata(self) -> ZarrV3GroupMetadataJSON:
"""The group's full Zarr v3 metadata."""
@property
def consolidated_metadata(self) -> ConsolidatedMetadataV3 | None:
def consolidated_metadata(self) -> ZarrV3ConsolidatedMetadataJSON | None:
"""The consolidated metadata, if present in the group metadata."""
@property
def path(self) -> str:
Expand Down
4 changes: 2 additions & 2 deletions tests/array/test_array.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from zarrista.store import MemoryStore

if TYPE_CHECKING:
from zarr_metadata import ArrayMetadataV3
from zarr_metadata import ZarrV3ArrayMetadataJSON


def test_array_from_metadata() -> None:
Expand All @@ -13,7 +13,7 @@ def test_array_from_metadata() -> None:
"""
store = MemoryStore()

meta: ArrayMetadataV3 = {
meta: ZarrV3ArrayMetadataJSON = {
"zarr_format": 3,
"attributes": {},
"chunk_grid": {"name": "regular", "configuration": {"chunk_shape": (2, 2)}},
Expand Down
4 changes: 2 additions & 2 deletions tests/array/test_store_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@
from zarrista.store import FilesystemStore, MemoryStore

if TYPE_CHECKING:
from zarr_metadata import ArrayMetadataV3
from zarr_metadata import ZarrV3ArrayMetadataJSON


def _metadata(data_type: str = "int16") -> "ArrayMetadataV3":
def _metadata(data_type: str = "int16") -> "ZarrV3ArrayMetadataJSON":
return {
"zarr_format": 3,
"attributes": {},
Expand Down
14 changes: 7 additions & 7 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading