Skip to content

Commit 10ae5f3

Browse files
authored
[v3] reorganize package - move most modules to zarr.core (#2072)
* create core subpackage and move initial modules * rev 2 * lint * rev 3 * move __all__s
1 parent 035e2f8 commit 10ae5f3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+360
-238
lines changed

src/zarr/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
zeros,
2727
zeros_like,
2828
)
29-
from zarr.array import Array, AsyncArray
30-
from zarr.config import config
31-
from zarr.group import AsyncGroup, Group
29+
from zarr.core.array import Array, AsyncArray
30+
from zarr.core.config import config
31+
from zarr.core.group import AsyncGroup, Group
3232

3333
# in case setuptools scm screw up and find version to be 0.0.0
3434
assert not __version__.startswith("0.0.0")

src/zarr/abc/codec.py

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,28 @@
88

99
from zarr.abc.metadata import Metadata
1010
from zarr.abc.store import ByteGetter, ByteSetter
11-
from zarr.buffer import Buffer, NDBuffer
12-
from zarr.chunk_grids import ChunkGrid
13-
from zarr.common import ChunkCoords, concurrent_map
14-
from zarr.config import config
11+
from zarr.core.buffer import Buffer, NDBuffer
12+
from zarr.core.chunk_grids import ChunkGrid
13+
from zarr.core.common import ChunkCoords, concurrent_map
14+
from zarr.core.config import config
1515

1616
if TYPE_CHECKING:
1717
from typing_extensions import Self
1818

19-
from zarr.array_spec import ArraySpec
20-
from zarr.common import JSON
21-
from zarr.indexing import SelectorTuple
19+
from zarr.core.array_spec import ArraySpec
20+
from zarr.core.common import JSON
21+
from zarr.core.indexing import SelectorTuple
22+
23+
__all__ = [
24+
"CodecInput",
25+
"CodecOutput",
26+
"ArrayArrayCodec",
27+
"ArrayBytesCodec",
28+
"BytesBytesCodec",
29+
"ArrayBytesCodecPartialDecodeMixin",
30+
"ArrayBytesCodecPartialEncodeMixin",
31+
"CodecPipeline",
32+
]
2233

2334
CodecInput = TypeVar("CodecInput", bound=NDBuffer | Buffer)
2435
CodecOutput = TypeVar("CodecOutput", bound=NDBuffer | Buffer)
@@ -112,7 +123,7 @@ async def decode(
112123
-------
113124
Iterable[CodecInput | None]
114125
"""
115-
return await batching_helper(self._decode_single, chunks_and_specs)
126+
return await _batching_helper(self._decode_single, chunks_and_specs)
116127

117128
async def _encode_single(
118129
self, chunk_data: CodecInput, chunk_spec: ArraySpec
@@ -135,7 +146,7 @@ async def encode(
135146
-------
136147
Iterable[CodecOutput | None]
137148
"""
138-
return await batching_helper(self._encode_single, chunks_and_specs)
149+
return await _batching_helper(self._encode_single, chunks_and_specs)
139150

140151

141152
class ArrayArrayCodec(_Codec[NDBuffer, NDBuffer]):
@@ -401,18 +412,18 @@ def from_dict(cls, data: Iterable[JSON | Codec]) -> Self:
401412
return cls(**data)
402413

403414

404-
async def batching_helper(
415+
async def _batching_helper(
405416
func: Callable[[CodecInput, ArraySpec], Awaitable[CodecOutput | None]],
406417
batch_info: Iterable[tuple[CodecInput | None, ArraySpec]],
407418
) -> list[CodecOutput | None]:
408419
return await concurrent_map(
409420
list(batch_info),
410-
noop_for_none(func),
421+
_noop_for_none(func),
411422
config.get("async.concurrency"),
412423
)
413424

414425

415-
def noop_for_none(
426+
def _noop_for_none(
416427
func: Callable[[CodecInput, ArraySpec], Awaitable[CodecOutput | None]],
417428
) -> Callable[[CodecInput | None, ArraySpec], Awaitable[CodecOutput | None]]:
418429
async def wrap(chunk: CodecInput | None, chunk_spec: ArraySpec) -> CodecOutput | None:

src/zarr/abc/metadata.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
from dataclasses import dataclass, fields
1010

11-
from zarr.common import JSON
11+
from zarr.core.common import JSON
12+
13+
__all__ = ["Metadata"]
1214

1315

1416
@dataclass(frozen=True)

src/zarr/abc/store.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44

55
from typing_extensions import Self
66

7-
from zarr.buffer import Buffer, BufferPrototype
8-
from zarr.common import AccessModeLiteral, BytesLike
7+
from zarr.core.buffer import Buffer, BufferPrototype
8+
from zarr.core.common import AccessModeLiteral, BytesLike
9+
10+
__all__ = ["Store", "AccessMode", "ByteGetter", "ByteSetter", "set_or_delete"]
911

1012

1113
class AccessMode(NamedTuple):

src/zarr/api/asynchronous.py

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,45 @@
99
import numpy.typing as npt
1010

1111
from zarr.abc.codec import Codec
12-
from zarr.array import Array, AsyncArray
13-
from zarr.buffer import NDArrayLike
14-
from zarr.chunk_key_encodings import ChunkKeyEncoding
15-
from zarr.common import JSON, AccessModeLiteral, ChunkCoords, MemoryOrder, ZarrFormat
16-
from zarr.group import AsyncGroup
17-
from zarr.metadata import ArrayV2Metadata, ArrayV3Metadata
12+
from zarr.core.array import Array, AsyncArray
13+
from zarr.core.buffer import NDArrayLike
14+
from zarr.core.chunk_key_encodings import ChunkKeyEncoding
15+
from zarr.core.common import JSON, AccessModeLiteral, ChunkCoords, MemoryOrder, ZarrFormat
16+
from zarr.core.group import AsyncGroup
17+
from zarr.core.metadata import ArrayV2Metadata, ArrayV3Metadata
1818
from zarr.store import (
1919
StoreLike,
2020
make_store_path,
2121
)
2222

23+
__all__ = [
24+
"consolidate_metadata",
25+
"copy",
26+
"copy_all",
27+
"copy_store",
28+
"load",
29+
"open",
30+
"open_consolidated",
31+
"save",
32+
"save_array",
33+
"save_group",
34+
"tree",
35+
"array",
36+
"group",
37+
"open_group",
38+
"create",
39+
"empty",
40+
"empty_like",
41+
"full",
42+
"full_like",
43+
"ones",
44+
"ones_like",
45+
"open_array",
46+
"open_like",
47+
"zeros",
48+
"zeros_like",
49+
]
50+
2351
# TODO: this type could use some more thought, noqa to avoid "Variable "asynchronous.ArrayLike" is not valid as a type"
2452
ArrayLike = Union[AsyncArray | Array | npt.NDArray[Any]] # noqa
2553
PathLike = str

src/zarr/api/synchronous.py

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,40 @@
33
from typing import Any
44

55
import zarr.api.asynchronous as async_api
6-
from zarr.array import Array, AsyncArray
7-
from zarr.buffer import NDArrayLike
8-
from zarr.common import JSON, AccessModeLiteral, ChunkCoords, ZarrFormat
9-
from zarr.group import Group
6+
from zarr.core.array import Array, AsyncArray
7+
from zarr.core.buffer import NDArrayLike
8+
from zarr.core.common import JSON, AccessModeLiteral, ChunkCoords, ZarrFormat
9+
from zarr.core.group import Group
10+
from zarr.core.sync import sync
1011
from zarr.store import StoreLike
11-
from zarr.sync import sync
12+
13+
__all__ = [
14+
"consolidate_metadata",
15+
"copy",
16+
"copy_all",
17+
"copy_store",
18+
"load",
19+
"open",
20+
"open_consolidated",
21+
"save",
22+
"save_array",
23+
"save_group",
24+
"tree",
25+
"array",
26+
"group",
27+
"open_group",
28+
"create",
29+
"empty",
30+
"empty_like",
31+
"full",
32+
"full_like",
33+
"ones",
34+
"ones_like",
35+
"open_array",
36+
"open_like",
37+
"zeros",
38+
"zeros_like",
39+
]
1240

1341

1442
def consolidate_metadata(*args: Any, **kwargs: Any) -> Group:

src/zarr/codecs/_v2.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
from numcodecs.compat import ensure_bytes, ensure_ndarray
77

88
from zarr.abc.codec import ArrayArrayCodec, ArrayBytesCodec
9-
from zarr.array_spec import ArraySpec
10-
from zarr.buffer import Buffer, NDBuffer, default_buffer_prototype
11-
from zarr.common import JSON, to_thread
9+
from zarr.core.array_spec import ArraySpec
10+
from zarr.core.buffer import Buffer, NDBuffer, default_buffer_prototype
11+
from zarr.core.common import JSON, to_thread
1212
from zarr.registry import get_ndbuffer_class
1313

1414

src/zarr/codecs/blosc.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
from numcodecs.blosc import Blosc
1010

1111
from zarr.abc.codec import BytesBytesCodec
12-
from zarr.array_spec import ArraySpec
13-
from zarr.buffer import Buffer, as_numpy_array_wrapper
14-
from zarr.common import JSON, parse_enum, parse_named_configuration, to_thread
12+
from zarr.core.array_spec import ArraySpec
13+
from zarr.core.buffer import Buffer, as_numpy_array_wrapper
14+
from zarr.core.common import JSON, parse_enum, parse_named_configuration, to_thread
1515
from zarr.registry import register_codec
1616

1717
if TYPE_CHECKING:

src/zarr/codecs/bytes.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
import numpy as np
99

1010
from zarr.abc.codec import ArrayBytesCodec
11-
from zarr.array_spec import ArraySpec
12-
from zarr.buffer import Buffer, NDArrayLike, NDBuffer
13-
from zarr.common import JSON, parse_enum, parse_named_configuration
11+
from zarr.core.array_spec import ArraySpec
12+
from zarr.core.buffer import Buffer, NDArrayLike, NDBuffer
13+
from zarr.core.common import JSON, parse_enum, parse_named_configuration
1414
from zarr.registry import register_codec
1515

1616
if TYPE_CHECKING:

src/zarr/codecs/crc32c_.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
from crc32c import crc32c
88

99
from zarr.abc.codec import BytesBytesCodec
10-
from zarr.array_spec import ArraySpec
11-
from zarr.buffer import Buffer
12-
from zarr.common import JSON, parse_named_configuration
10+
from zarr.core.array_spec import ArraySpec
11+
from zarr.core.buffer import Buffer
12+
from zarr.core.common import JSON, parse_named_configuration
1313
from zarr.registry import register_codec
1414

1515
if TYPE_CHECKING:

0 commit comments

Comments
 (0)