Skip to content

Commit a0dfe18

Browse files
authored
Merge branch 'main' into feat/read-funcs
2 parents d7ce58b + 680142f commit a0dfe18

File tree

4 files changed

+17
-20
lines changed

4 files changed

+17
-20
lines changed

.github/workflows/test.yml

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,14 @@ jobs:
3333
numpy-version: '2.1'
3434
dependency-set: 'optional'
3535
os: 'macos-latest'
36-
# https://github.com/zarr-developers/zarr-python/issues/2438
37-
# - python-version: '3.11'
38-
# numpy-version: '1.25'
39-
# dependency-set: 'optional'
40-
# os: 'windows-latest'
41-
# - python-version: '3.13'
42-
# numpy-version: '2.1'
43-
# dependency-set: 'optional'
44-
# os: 'windows-latest'
36+
- python-version: '3.11'
37+
numpy-version: '1.25'
38+
dependency-set: 'optional'
39+
os: 'windows-latest'
40+
- python-version: '3.13'
41+
numpy-version: '2.1'
42+
dependency-set: 'optional'
43+
os: 'windows-latest'
4544
runs-on: ${{ matrix.os }}
4645

4746
steps:

src/zarr/core/group.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -967,7 +967,7 @@ async def create_array(
967967

968968
@deprecated("Use AsyncGroup.create_array instead.")
969969
async def create_dataset(
970-
self, name: str, **kwargs: Any
970+
self, name: str, *, shape: ShapeLike, **kwargs: Any
971971
) -> AsyncArray[ArrayV2Metadata] | AsyncArray[ArrayV3Metadata]:
972972
"""Create an array.
973973
@@ -988,7 +988,7 @@ async def create_dataset(
988988
.. deprecated:: 3.0.0
989989
The h5py compatibility methods will be removed in 3.1.0. Use `AsyncGroup.create_array` instead.
990990
"""
991-
return await self.create_array(name, **kwargs)
991+
return await self.create_array(name, shape=shape, **kwargs)
992992

993993
@deprecated("Use AsyncGroup.require_array instead.")
994994
async def require_dataset(
@@ -1666,7 +1666,7 @@ def create_dataset(self, name: str, **kwargs: Any) -> Array:
16661666
return Array(self._sync(self._async_group.create_dataset(name, **kwargs)))
16671667

16681668
@deprecated("Use Group.require_array instead.")
1669-
def require_dataset(self, name: str, **kwargs: Any) -> Array:
1669+
def require_dataset(self, name: str, *, shape: ShapeLike, **kwargs: Any) -> Array:
16701670
"""Obtain an array, creating if it doesn't exist.
16711671
16721672
Arrays are known as "datasets" in HDF5 terminology. For compatibility
@@ -1688,9 +1688,9 @@ def require_dataset(self, name: str, **kwargs: Any) -> Array:
16881688
.. deprecated:: 3.0.0
16891689
The h5py compatibility methods will be removed in 3.1.0. Use `Group.require_array` instead.
16901690
"""
1691-
return Array(self._sync(self._async_group.require_array(name, **kwargs)))
1691+
return Array(self._sync(self._async_group.require_array(name, shape=shape, **kwargs)))
16921692

1693-
def require_array(self, name: str, **kwargs: Any) -> Array:
1693+
def require_array(self, name: str, *, shape: ShapeLike, **kwargs: Any) -> Array:
16941694
"""Obtain an array, creating if it doesn't exist.
16951695
16961696
@@ -1707,7 +1707,7 @@ def require_array(self, name: str, **kwargs: Any) -> Array:
17071707
-------
17081708
a : Array
17091709
"""
1710-
return Array(self._sync(self._async_group.require_array(name, **kwargs)))
1710+
return Array(self._sync(self._async_group.require_array(name, shape=shape, **kwargs)))
17111711

17121712
@_deprecate_positional_args
17131713
def empty(self, *, name: str, shape: ChunkCoords, **kwargs: Any) -> Array:

src/zarr/storage/local.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ def with_mode(self, mode: AccessModeLiteral) -> Self:
132132
return type(self)(root=self.root, mode=mode)
133133

134134
def __str__(self) -> str:
135-
return f"file://{self.root}"
135+
return f"file://{self.root.as_posix()}"
136136

137137
def __repr__(self) -> str:
138138
return f"LocalStore({str(self)!r})"
@@ -235,11 +235,9 @@ async def list_prefix(self, prefix: str) -> AsyncGenerator[str]:
235235
async def list_dir(self, prefix: str) -> AsyncGenerator[str]:
236236
# docstring inherited
237237
base = self.root / prefix
238-
to_strip = str(base) + "/"
239-
240238
try:
241239
key_iter = base.iterdir()
242240
for key in key_iter:
243-
yield key.as_posix().replace(to_strip, "")
241+
yield key.relative_to(base).as_posix()
244242
except (FileNotFoundError, NotADirectoryError):
245243
pass

tests/test_store/test_local.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ def store_kwargs(self, tmpdir) -> dict[str, str]:
3131
return {"root": str(tmpdir), "mode": "r+"}
3232

3333
def test_store_repr(self, store: LocalStore) -> None:
34-
assert str(store) == f"file://{store.root!s}"
34+
assert str(store) == f"file://{store.root.as_posix()!s}"
3535

3636
def test_store_supports_writes(self, store: LocalStore) -> None:
3737
assert store.supports_writes

0 commit comments

Comments
 (0)