Skip to content

add modules for types #3355

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
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
3 changes: 2 additions & 1 deletion examples/custom_dtype.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,15 @@
import pytest

import zarr
from zarr.core.common import JSON, ZarrFormat
from zarr.core.dtype import ZDType, data_type_registry
from zarr.core.dtype.common import (
DataTypeValidationError,
DTypeConfig_V2,
DTypeJSON,
check_dtype_spec_v2,
)
from zarr.core.types import JSON
from zarr.types import ZarrFormat

# This is the int2 array data type
int2_dtype_cls = type(np.dtype("int2"))
Expand Down
3 changes: 2 additions & 1 deletion src/zarr/abc/codec.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from zarr.abc.metadata import Metadata
from zarr.core.buffer import Buffer, NDBuffer
from zarr.core.common import ChunkCoords, concurrent_map
from zarr.core.common import concurrent_map
from zarr.core.config import config

if TYPE_CHECKING:
Expand All @@ -18,6 +18,7 @@
from zarr.core.dtype.wrapper import TBaseDType, TBaseScalar, ZDType
from zarr.core.indexing import SelectorTuple
from zarr.core.metadata import ArrayMetadata
from zarr.core.types import ChunkCoords

__all__ = [
"ArrayArrayCodec",
Expand Down
2 changes: 1 addition & 1 deletion src/zarr/abc/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
if TYPE_CHECKING:
from typing import Self

from zarr.core.common import JSON
from zarr.core.types import JSON

from dataclasses import dataclass, fields

Expand Down
2 changes: 1 addition & 1 deletion src/zarr/abc/store.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from typing import Any, Self, TypeAlias

from zarr.core.buffer import Buffer, BufferPrototype
from zarr.core.common import BytesLike
from zarr.core.types import BytesLike

__all__ = ["ByteGetter", "ByteSetter", "Store", "set_or_delete"]

Expand Down
14 changes: 8 additions & 6 deletions src/zarr/api/asynchronous.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,6 @@
from zarr.core.array_spec import ArrayConfigLike, parse_array_config
from zarr.core.buffer import NDArrayLike
from zarr.core.common import (
JSON,
AccessModeLiteral,
ChunkCoords,
DimensionNames,
MemoryOrder,
ZarrFormat,
_default_zarr_format,
_warn_write_empty_chunks_kwarg,
)
Expand Down Expand Up @@ -57,7 +51,15 @@
from zarr.abc.codec import Codec
from zarr.core.buffer import NDArrayLikeOrScalar
from zarr.core.chunk_key_encodings import ChunkKeyEncoding
from zarr.core.types import (
JSON,
AccessModeLiteral,
ChunkCoords,
DimensionNames,
MemoryOrder,
)
from zarr.storage import StoreLike
from zarr.types import ZarrFormat

# TODO: this type could use some more thought
ArrayLike = AsyncArray[ArrayV2Metadata] | AsyncArray[ArrayV3Metadata] | Array | npt.NDArray[Any]
Expand Down
6 changes: 3 additions & 3 deletions src/zarr/api/synchronous.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,17 @@
from zarr.core.array_spec import ArrayConfigLike
from zarr.core.buffer import NDArrayLike, NDArrayLikeOrScalar
from zarr.core.chunk_key_encodings import ChunkKeyEncoding, ChunkKeyEncodingLike
from zarr.core.common import (
from zarr.core.dtype import ZDTypeLike
from zarr.core.types import (
JSON,
AccessModeLiteral,
ChunkCoords,
DimensionNames,
MemoryOrder,
ShapeLike,
ZarrFormat,
)
from zarr.core.dtype import ZDTypeLike
from zarr.storage import StoreLike
from zarr.types import ZarrFormat

__all__ = [
"array",
Expand Down
3 changes: 2 additions & 1 deletion src/zarr/codecs/blosc.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

from zarr.abc.codec import BytesBytesCodec
from zarr.core.buffer.cpu import as_numpy_array_wrapper
from zarr.core.common import JSON, parse_enum, parse_named_configuration
from zarr.core.common import parse_enum, parse_named_configuration
from zarr.core.dtype.common import HasItemSize
from zarr.registry import register_codec

Expand All @@ -21,6 +21,7 @@

from zarr.core.array_spec import ArraySpec
from zarr.core.buffer import Buffer
from zarr.core.types import JSON


class BloscShuffle(Enum):
Expand Down
3 changes: 2 additions & 1 deletion src/zarr/codecs/bytes.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,15 @@

from zarr.abc.codec import ArrayBytesCodec
from zarr.core.buffer import Buffer, NDArrayLike, NDBuffer
from zarr.core.common import JSON, parse_enum, parse_named_configuration
from zarr.core.common import parse_enum, parse_named_configuration
from zarr.core.dtype.common import HasEndianness
from zarr.registry import register_codec

if TYPE_CHECKING:
from typing import Self

from zarr.core.array_spec import ArraySpec
from zarr.core.types import JSON


class Endian(Enum):
Expand Down
3 changes: 2 additions & 1 deletion src/zarr/codecs/crc32c_.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@
from crc32c import crc32c

from zarr.abc.codec import BytesBytesCodec
from zarr.core.common import JSON, parse_named_configuration
from zarr.core.common import parse_named_configuration
from zarr.registry import register_codec

if TYPE_CHECKING:
from typing import Self

from zarr.core.array_spec import ArraySpec
from zarr.core.buffer import Buffer
from zarr.core.types import JSON


@dataclass(frozen=True)
Expand Down
3 changes: 2 additions & 1 deletion src/zarr/codecs/gzip.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,15 @@

from zarr.abc.codec import BytesBytesCodec
from zarr.core.buffer.cpu import as_numpy_array_wrapper
from zarr.core.common import JSON, parse_named_configuration
from zarr.core.common import parse_named_configuration
from zarr.registry import register_codec

if TYPE_CHECKING:
from typing import Self

from zarr.core.array_spec import ArraySpec
from zarr.core.buffer import Buffer
from zarr.core.types import JSON


def parse_gzip_level(data: JSON) -> int:
Expand Down
5 changes: 2 additions & 3 deletions src/zarr/codecs/sharding.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,6 @@
)
from zarr.core.chunk_grids import ChunkGrid, RegularChunkGrid
from zarr.core.common import (
ChunkCoords,
ChunkCoordsLike,
parse_enum,
parse_named_configuration,
parse_shapelike,
Expand All @@ -52,14 +50,15 @@
morton_order_iter,
)
from zarr.core.metadata.v3 import parse_codecs
from zarr.core.types import ChunkCoords, ChunkCoordsLike
from zarr.registry import get_ndbuffer_class, get_pipeline_class, register_codec

if TYPE_CHECKING:
from collections.abc import Awaitable, Callable, Iterator
from typing import Self

from zarr.core.common import JSON
from zarr.core.dtype.wrapper import TBaseDType, TBaseScalar, ZDType
from zarr.core.types import JSON

MAX_UINT_64 = 2**64 - 1
ShardMapping = Mapping[ChunkCoords, Buffer]
Expand Down
3 changes: 2 additions & 1 deletion src/zarr/codecs/transpose.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

from zarr.abc.codec import ArrayArrayCodec
from zarr.core.array_spec import ArraySpec
from zarr.core.common import JSON, ChunkCoordsLike, parse_named_configuration
from zarr.core.common import parse_named_configuration
from zarr.registry import register_codec

if TYPE_CHECKING:
Expand All @@ -17,6 +17,7 @@
from zarr.core.buffer import NDBuffer
from zarr.core.chunk_grids import ChunkGrid
from zarr.core.dtype.wrapper import TBaseDType, TBaseScalar, ZDType
from zarr.core.types import JSON, ChunkCoordsLike


def parse_transpose_order(data: JSON | Iterable[int]) -> tuple[int, ...]:
Expand Down
3 changes: 2 additions & 1 deletion src/zarr/codecs/vlen_utf8.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@

from zarr.abc.codec import ArrayBytesCodec
from zarr.core.buffer import Buffer, NDBuffer
from zarr.core.common import JSON, parse_named_configuration
from zarr.core.common import parse_named_configuration
from zarr.registry import register_codec

if TYPE_CHECKING:
from typing import Self

from zarr.core.array_spec import ArraySpec
from zarr.core.types import JSON


# can use a global because there are no parameters
Expand Down
3 changes: 2 additions & 1 deletion src/zarr/codecs/zstd.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@

from zarr.abc.codec import BytesBytesCodec
from zarr.core.buffer.cpu import as_numpy_array_wrapper
from zarr.core.common import JSON, parse_named_configuration
from zarr.core.common import parse_named_configuration
from zarr.registry import register_codec

if TYPE_CHECKING:
from typing import Self

from zarr.core.array_spec import ArraySpec
from zarr.core.buffer import Buffer
from zarr.core.types import JSON


def parse_zstd_level(data: JSON) -> int:
Expand Down
2 changes: 1 addition & 1 deletion src/zarr/core/_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
import numcodecs.abc

from zarr.abc.codec import ArrayArrayCodec, ArrayBytesCodec, BytesBytesCodec
from zarr.core.common import ZarrFormat
from zarr.core.dtype.wrapper import TBaseDType, TBaseScalar, ZDType
from zarr.types import ZarrFormat


@dataclasses.dataclass(kw_only=True)
Expand Down
30 changes: 16 additions & 14 deletions src/zarr/core/array.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,6 @@
V2ChunkKeyEncoding,
)
from zarr.core.common import (
JSON,
ZARR_JSON,
ZARRAY_JSON,
ZATTRS_JSON,
ChunkCoords,
DimensionNames,
MemoryOrder,
ShapeLike,
ZarrFormat,
_default_zarr_format,
_warn_order_kwarg,
ceildiv,
Expand Down Expand Up @@ -106,9 +97,7 @@
ArrayMetadata,
ArrayMetadataDict,
ArrayV2Metadata,
ArrayV2MetadataDict,
ArrayV3Metadata,
ArrayV3MetadataDict,
T_ArrayMetadata,
)
from zarr.core.metadata.v2 import (
Expand All @@ -119,6 +108,18 @@
)
from zarr.core.metadata.v3 import parse_node_type_array
from zarr.core.sync import sync
from zarr.core.types import (
JSON,
ZARR_JSON,
ZARRAY_JSON,
ZATTRS_JSON,
ArrayMetadataJSON_V2,
ArrayMetadataJSON_V3,
ChunkCoords,
DimensionNames,
MemoryOrder,
ShapeLike,
)
from zarr.errors import MetadataValidationError, ZarrDeprecationWarning, ZarrUserWarning
from zarr.registry import (
_parse_array_array_codec,
Expand All @@ -140,6 +141,7 @@
from zarr.core.dtype.wrapper import TBaseDType, TBaseScalar
from zarr.core.group import AsyncGroup
from zarr.storage import StoreLike
from zarr.types import ZarrFormat


# Array and AsyncArray are defined in the base ``zarr`` namespace
Expand Down Expand Up @@ -294,15 +296,15 @@ class AsyncArray(Generic[T_ArrayMetadata]):
@overload
def __init__(
self: AsyncArray[ArrayV2Metadata],
metadata: ArrayV2Metadata | ArrayV2MetadataDict,
metadata: ArrayV2Metadata | ArrayMetadataJSON_V2,
store_path: StorePath,
config: ArrayConfigLike | None = None,
) -> None: ...

@overload
def __init__(
self: AsyncArray[ArrayV3Metadata],
metadata: ArrayV3Metadata | ArrayV3MetadataDict,
metadata: ArrayV3Metadata | ArrayMetadataJSON_V3,
store_path: StorePath,
config: ArrayConfigLike | None = None,
) -> None: ...
Expand Down Expand Up @@ -962,7 +964,7 @@ async def open(
store_path = await make_store_path(store)
metadata_dict = await get_array_metadata(store_path, zarr_format=zarr_format)
# TODO: remove this cast when we have better type hints
_metadata_dict = cast("ArrayV3MetadataDict", metadata_dict)
_metadata_dict = cast("ArrayMetadataJSON_V3", metadata_dict)
return cls(store_path=store_path, metadata=_metadata_dict)

@property
Expand Down
3 changes: 1 addition & 2 deletions src/zarr/core/array_spec.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from typing import TYPE_CHECKING, Any, Literal, Self, TypedDict, cast

from zarr.core.common import (
MemoryOrder,
parse_bool,
parse_fill_value,
parse_order,
Expand All @@ -16,8 +15,8 @@
from typing import NotRequired

from zarr.core.buffer import BufferPrototype
from zarr.core.common import ChunkCoords
from zarr.core.dtype.wrapper import TBaseDType, TBaseScalar, ZDType
from zarr.core.types import ChunkCoords, MemoryOrder


class ArrayConfigParams(TypedDict):
Expand Down
2 changes: 1 addition & 1 deletion src/zarr/core/attributes.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from collections.abc import MutableMapping
from typing import TYPE_CHECKING

from zarr.core.common import JSON
from zarr.core.types import JSON

if TYPE_CHECKING:
from collections.abc import Iterator
Expand Down
2 changes: 1 addition & 1 deletion src/zarr/core/buffer/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
from typing import Self

from zarr.codecs.bytes import Endian
from zarr.core.common import BytesLike, ChunkCoords
from zarr.core.types import BytesLike, ChunkCoords

# Everything here is imported into ``zarr.core.buffer`` namespace.
__all__: list[str] = []
Expand Down
2 changes: 1 addition & 1 deletion src/zarr/core/buffer/cpu.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from typing import Self

from zarr.core.buffer.core import ArrayLike, NDArrayLike
from zarr.core.common import BytesLike, ChunkCoords
from zarr.core.types import BytesLike, ChunkCoords


class Buffer(core.Buffer):
Expand Down
2 changes: 1 addition & 1 deletion src/zarr/core/buffer/gpu.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from collections.abc import Iterable
from typing import Self

from zarr.core.common import BytesLike, ChunkCoords
from zarr.core.types import BytesLike, ChunkCoords

try:
import cupy as cp
Expand Down
Loading
Loading