File tree 4 files changed +39
-14
lines changed
4 files changed +39
-14
lines changed Original file line number Diff line number Diff line change @@ -18,10 +18,32 @@ Release notes
18
18
See `GH1777 <https://github.com/zarr-developers/zarr-python/issues/1777 >`_ for more details on the upcoming
19
19
3.0 release.
20
20
21
+ .. release_3.0.0-beta:
22
+
23
+ 3.0.0-beta series
24
+ -----------------
25
+
26
+ .. warning ::
27
+ Zarr-Python 3.0.0-beta is a pre-release of the upcoming 3.0 release. This release is not feature complete or
28
+ expected to be ready for production applications.
29
+
30
+ .. note ::
31
+ The complete release notes for 3.0 have not been added to this document yet. See the
32
+ `3.0.0-beta <https://github.com/zarr-developers/zarr-python/releases/tag/v3.0.0-beta >`_ release on GitHub
33
+ for a record of changes included in this release.
34
+
35
+ Dependency Changes
36
+ ~~~~~~~~~~~~~~~~~~
37
+
38
+ * fsspec was moved from a required dependency to an optional one. Users should install
39
+ fsspec and any relevant implementations (e.g. s3fs) before using the ``RemoteStore ``.
40
+ By :user: `Joe Hamman <jhamman> ` :issue: `2391 `.
41
+
42
+
21
43
.. release_3.0.0-alpha:
22
44
23
- 3.0.0-alpha
24
- -----------
45
+ 3.0.0-alpha series
46
+ ------------------
25
47
26
48
.. warning ::
27
49
Zarr-Python 3.0.0-alpha is a pre-release of the upcoming 3.0 release. This release is not feature complete or
Original file line number Diff line number Diff line change @@ -28,8 +28,7 @@ requires-python = ">=3.11"
28
28
dependencies = [
29
29
' numpy>=1.25' ,
30
30
' numcodecs[crc32c]>=0.14' ,
31
- ' fsspec>=2022.10.0' ,
32
- ' typing_extensions>=4.6' ,
31
+ ' typing_extensions>=4.9' ,
33
32
' donfig>=0.8' ,
34
33
]
35
34
@@ -54,16 +53,16 @@ license = {text = "MIT License"}
54
53
keywords = [" Python" , " compressed" , " ndimensional-arrays" , " zarr" ]
55
54
56
55
[project .optional-dependencies ]
56
+ fsspec = [
57
+ " fsspec>=2023.10.0" ,
58
+ ]
57
59
test = [
58
60
" coverage" ,
59
61
" pytest" ,
60
62
" pytest-cov" ,
61
- " msgpack" ,
62
63
" s3fs" ,
63
64
" pytest-asyncio" ,
64
65
" moto[s3]" ,
65
- " flask-cors" ,
66
- " flask" ,
67
66
" requests" ,
68
67
" mypy" ,
69
68
" hypothesis" ,
@@ -224,7 +223,7 @@ dependencies = [
224
223
' fsspec==2022.10.0' ,
225
224
' s3fs==2022.10.0' ,
226
225
' universal_pathlib==0.0.22' ,
227
- ' typing_extensions==4.6 .*' , # 4.5 needed for @deprecated, 4.6 for Buffer
226
+ ' typing_extensions==4.9 .*' ,
228
227
' donfig==0.8.*' ,
229
228
# test deps
230
229
' hypothesis' ,
Original file line number Diff line number Diff line change 3
3
4
4
import pytest
5
5
from _pytest .compat import LEGACY_PATH
6
- from upath import UPath
7
6
8
7
from zarr .core .common import AccessModeLiteral
9
8
from zarr .storage ._utils import normalize_path
@@ -72,6 +71,7 @@ async def test_make_store_path_invalid() -> None:
72
71
73
72
74
73
async def test_make_store_path_fsspec (monkeypatch ) -> None :
74
+ pytest .importorskip ("fsspec" )
75
75
store_path = await make_store_path ("http://foo.com/bar" )
76
76
assert isinstance (store_path .store , RemoteStore )
77
77
@@ -106,13 +106,17 @@ async def test_unsupported() -> None:
106
106
"foo/bar///" ,
107
107
Path ("foo/bar" ),
108
108
b"foo/bar" ,
109
- UPath ("foo/bar" ),
110
109
],
111
110
)
112
- def test_normalize_path_valid (path : str | bytes | Path | UPath ) -> None :
111
+ def test_normalize_path_valid (path : str | bytes | Path ) -> None :
113
112
assert normalize_path (path ) == "foo/bar"
114
113
115
114
115
+ def test_normalize_path_upath () -> None :
116
+ upath = pytest .importorskip ("upath" )
117
+ assert normalize_path (upath .UPath ("foo/bar" )) == "foo/bar"
118
+
119
+
116
120
def test_normalize_path_none ():
117
121
assert normalize_path (None ) == ""
118
122
Original file line number Diff line number Diff line change 4
4
import os
5
5
from typing import TYPE_CHECKING
6
6
7
- import fsspec
8
7
import pytest
9
8
from botocore .session import Session
10
- from upath import UPath
11
9
12
10
import zarr .api .asynchronous
13
11
from zarr .core .buffer import Buffer , cpu , default_buffer_prototype
21
19
import botocore .client
22
20
23
21
22
+ fsspec = pytest .importorskip ("fsspec" )
24
23
s3fs = pytest .importorskip ("s3fs" )
25
24
requests = pytest .importorskip ("requests" )
26
25
moto_server = pytest .importorskip ("moto.moto_server.threaded_moto_server" )
@@ -182,7 +181,8 @@ async def test_remote_store_from_uri(self, store: RemoteStore):
182
181
assert dict (group .attrs ) == {"key" : "value-3" }
183
182
184
183
def test_from_upath (self ) -> None :
185
- path = UPath (
184
+ upath = pytest .importorskip ("upath" )
185
+ path = upath .UPath (
186
186
f"s3://{ test_bucket_name } /foo/bar/" ,
187
187
endpoint_url = endpoint_url ,
188
188
anon = False ,
You can’t perform that action at this time.
0 commit comments