diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2866ed4b85..c388ba31de 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,15 +33,14 @@ jobs: numpy-version: '2.1' dependency-set: 'optional' os: 'macos-latest' - # https://github.com/zarr-developers/zarr-python/issues/2438 - # - python-version: '3.11' - # numpy-version: '1.25' - # dependency-set: 'optional' - # os: 'windows-latest' - # - python-version: '3.13' - # numpy-version: '2.1' - # dependency-set: 'optional' - # os: 'windows-latest' + - python-version: '3.11' + numpy-version: '1.25' + dependency-set: 'optional' + os: 'windows-latest' + - python-version: '3.13' + numpy-version: '2.1' + dependency-set: 'optional' + os: 'windows-latest' runs-on: ${{ matrix.os }} steps: diff --git a/src/zarr/storage/local.py b/src/zarr/storage/local.py index c1c711e263..b8b67003ca 100644 --- a/src/zarr/storage/local.py +++ b/src/zarr/storage/local.py @@ -132,7 +132,7 @@ def with_mode(self, mode: AccessModeLiteral) -> Self: return type(self)(root=self.root, mode=mode) def __str__(self) -> str: - return f"file://{self.root}" + return f"file://{self.root.as_posix()}" def __repr__(self) -> str: return f"LocalStore({str(self)!r})" @@ -235,11 +235,9 @@ async def list_prefix(self, prefix: str) -> AsyncGenerator[str]: async def list_dir(self, prefix: str) -> AsyncGenerator[str]: # docstring inherited base = self.root / prefix - to_strip = str(base) + "/" - try: key_iter = base.iterdir() for key in key_iter: - yield key.as_posix().replace(to_strip, "") + yield key.relative_to(base).as_posix() except (FileNotFoundError, NotADirectoryError): pass diff --git a/tests/test_store/test_local.py b/tests/test_store/test_local.py index 5352e3520a..79236e547a 100644 --- a/tests/test_store/test_local.py +++ b/tests/test_store/test_local.py @@ -31,7 +31,7 @@ def store_kwargs(self, tmpdir) -> dict[str, str]: return {"root": str(tmpdir), "mode": "r+"} def test_store_repr(self, store: LocalStore) -> None: - assert str(store) == f"file://{store.root!s}" + assert str(store) == f"file://{store.root.as_posix()!s}" def test_store_supports_writes(self, store: LocalStore) -> None: assert store.supports_writes