@@ -3,20 +3,13 @@ requires = ["hatchling", "hatch-vcs"]
3
3
build-backend = " hatchling.build"
4
4
5
5
[tool .hatch .build .targets .sdist ]
6
- exclude = [
7
- " /.github" ,
8
- " /bench" ,
9
- " /docs" ,
10
- " /notebooks"
11
- ]
6
+ exclude = [" /.github" , " /bench" , " /docs" , " /notebooks" ]
12
7
13
8
[project ]
14
9
name = " zarr"
15
10
description = " An implementation of chunked, compressed, N-dimensional arrays for Python"
16
11
readme = { file = " README.md" , content-type = " text/markdown" }
17
- authors = [
18
- {
name =
" Alistair Miles" ,
email =
" [email protected] " },
19
- ]
12
+ authors = [{
name =
" Alistair Miles" ,
email =
" [email protected] " }]
20
13
maintainers = [
21
14
{
name =
" Davis Bennett" ,
email =
" [email protected] " },
22
15
{ name = " jakirkham" },
@@ -28,7 +21,7 @@ maintainers = [
28
21
{ name = " Ryan Abernathey" },
29
22
{ name = " David Stansby" },
30
23
{
name =
" Tom Augspurger" ,
email =
" [email protected] " },
31
- { name = " Deepak Cherian" }
24
+ { name = " Deepak Cherian" },
32
25
]
33
26
requires-python = " >=3.11"
34
27
# If you add a new dependency here, please also add it to .pre-commit-config.yml
@@ -40,9 +33,7 @@ dependencies = [
40
33
' donfig>=0.8' ,
41
34
]
42
35
43
- dynamic = [
44
- " version" ,
45
- ]
36
+ dynamic = [" version" ]
46
37
classifiers = [
47
38
' Development Status :: 6 - Mature' ,
48
39
' Intended Audience :: Developers' ,
@@ -57,18 +48,13 @@ classifiers = [
57
48
' Programming Language :: Python :: 3.12' ,
58
49
' Programming Language :: Python :: 3.13' ,
59
50
]
60
- license = {text = " MIT License" }
51
+ license = { text = " MIT License" }
61
52
keywords = [" Python" , " compressed" , " ndimensional-arrays" , " zarr" ]
62
53
63
54
[project .optional-dependencies ]
64
55
# User extras
65
- remote = [
66
- " fsspec>=2023.10.0" ,
67
- " obstore>=0.5.1" ,
68
- ]
69
- gpu = [
70
- " cupy-cuda12x" ,
71
- ]
56
+ remote = [" fsspec>=2023.10.0" , " obstore>=0.5.1" ]
57
+ gpu = [" cupy-cuda12x" ]
72
58
# Development extras
73
59
test = [
74
60
" coverage" ,
@@ -105,7 +91,7 @@ docs = [
105
91
' numcodecs[msgpack]' ,
106
92
' rich' ,
107
93
' s3fs>=2023.10.0' ,
108
- ' astroid<4'
94
+ ' astroid<4' ,
109
95
]
110
96
111
97
@@ -117,23 +103,18 @@ Documentation = "https://zarr.readthedocs.io/"
117
103
Homepage = " https://github.com/zarr-developers/zarr-python"
118
104
119
105
[dependency-groups ]
120
- dev = [
121
- " ipykernel>=6.29.5" ,
122
- " pip>=25.0.1" ,
123
- ]
106
+ dev = [" ipykernel>=6.29.5" , " pip>=25.0.1" ]
124
107
125
108
[tool .coverage .report ]
126
109
exclude_lines = [
127
110
" pragma: no cover" ,
128
111
" if TYPE_CHECKING:" ,
129
112
" pragma: ${PY_MAJOR_VERSION} no cover" ,
130
- ' .*\.\.\.' # Ignore "..." lines
113
+ ' .*\.\.\.' , # Ignore "..." lines
131
114
]
132
115
133
116
[tool .coverage .run ]
134
- omit = [
135
- " bench/compress_normal.py" ,
136
- ]
117
+ omit = [" bench/compress_normal.py" ]
137
118
138
119
[tool .hatch ]
139
120
version.source = " vcs"
@@ -142,9 +123,7 @@ version.source = "vcs"
142
123
hooks.vcs.version-file = " src/zarr/_version.py"
143
124
144
125
[tool .hatch .envs .test ]
145
- dependencies = [
146
- " numpy~={matrix:numpy}" ,
147
- ]
126
+ dependencies = [" numpy~={matrix:numpy}" ]
148
127
features = [" test" ]
149
128
150
129
[[tool .hatch .envs .test .matrix ]]
@@ -154,7 +133,9 @@ deps = ["minimal", "optional"]
154
133
155
134
[tool .hatch .envs .test .overrides ]
156
135
matrix.deps.dependencies = [
157
- {value = " zarr[remote, remote_tests, test, optional]" , if = [" optional" ]}
136
+ { value = " zarr[remote, remote_tests, test, optional]" , if = [
137
+ " optional" ,
138
+ ] },
158
139
]
159
140
160
141
[tool .hatch .envs .test .scripts ]
@@ -177,10 +158,7 @@ fix = "rm -r data/; pytest docs/user-guide --doctest-glob='*.rst' --accept"
177
158
list-env = " pip list"
178
159
179
160
[tool .hatch .envs .gputest ]
180
- dependencies = [
181
- " numpy~={matrix:numpy}" ,
182
- " universal_pathlib" ,
183
- ]
161
+ dependencies = [" numpy~={matrix:numpy}" , " universal_pathlib" ]
184
162
features = [" test" , " gpu" ]
185
163
186
164
[[tool .hatch .envs .gputest .matrix ]]
@@ -207,7 +185,7 @@ serve = "sphinx-autobuild docs docs/_build --host 0.0.0.0"
207
185
python = " 3.13"
208
186
dependencies = [
209
187
' packaging @ git+https://github.com/pypa/packaging' ,
210
- ' numpy' , # from scientific-python-nightly-wheels
188
+ ' numpy' , # from scientific-python-nightly-wheels
211
189
' numcodecs @ git+https://github.com/zarr-developers/numcodecs' ,
212
190
' fsspec @ git+https://github.com/fsspec/filesystem_spec' ,
213
191
' s3fs @ git+https://github.com/fsspec/s3fs' ,
@@ -243,7 +221,7 @@ dependencies = [
243
221
' zarr[remote]' ,
244
222
' packaging==22.*' ,
245
223
' numpy==1.25.*' ,
246
- ' numcodecs==0.14.*' , # 0.14 needed for zarr3 codecs
224
+ ' numcodecs==0.14.*' , # 0.14 needed for zarr3 codecs
247
225
' fsspec==2023.10.0' ,
248
226
' s3fs==2023.10.0' ,
249
227
' universal_pathlib==0.0.22' ,
@@ -280,7 +258,7 @@ extend-exclude = [
280
258
" buck-out" ,
281
259
" build" ,
282
260
" dist" ,
283
- " notebooks" , # temporary, until we achieve compatibility with ruff ≥ 0.6
261
+ " notebooks" , # temporary, until we achieve compatibility with ruff ≥ 0.6
284
262
" venv" ,
285
263
" docs" ,
286
264
" src/zarr/v2/" ,
@@ -357,17 +335,17 @@ enable_error_code = ["ignore-without-code", "redundant-expr", "truthy-bool"]
357
335
module = [
358
336
" tests.package_with_entrypoint.*" ,
359
337
" tests.test_codecs.test_transpose" ,
360
- " tests.test_config"
338
+ " tests.test_config" ,
339
+ " tests.test_metadata.*" ,
361
340
]
362
341
strict = false
363
342
364
343
# TODO: Move the next modules up to the strict = false section
365
344
# and fix the errors
366
345
[[tool .mypy .overrides ]]
367
346
module = [
368
- " zarr.testing.stateful" , # lots of hypothesis decorator errors
347
+ " zarr.testing.stateful" , # lots of hypothesis decorator errors
369
348
" tests.test_codecs.test_codecs" ,
370
- " tests.test_metadata.*" ,
371
349
" tests.test_store.*" ,
372
350
" tests.test_group" ,
373
351
" tests.test_indexing" ,
@@ -388,9 +366,7 @@ doctest_optionflags = [
388
366
" ELLIPSIS" ,
389
367
" IGNORE_EXCEPTION_DETAIL" ,
390
368
]
391
- addopts = [
392
- " --durations=10" , " -ra" , " --strict-config" , " --strict-markers" ,
393
- ]
369
+ addopts = [" --durations=10" , " -ra" , " --strict-config" , " --strict-markers" ]
394
370
filterwarnings = [
395
371
" error" ,
396
372
# TODO: explicitly filter or catch the warnings below where we expect them to be emitted in the tests
@@ -403,7 +379,7 @@ filterwarnings = [
403
379
" ignore:Duplicate name.*:UserWarning" ,
404
380
" ignore:The `compressor` argument is deprecated. Use `compressors` instead.:UserWarning" ,
405
381
" ignore:Numcodecs codecs are not in the Zarr version 3 specification and may not be supported by other zarr implementations.:UserWarning" ,
406
- " ignore:Unclosed client session <aiohttp.client.ClientSession.*:ResourceWarning"
382
+ " ignore:Unclosed client session <aiohttp.client.ClientSession.*:ResourceWarning" ,
407
383
]
408
384
markers = [
409
385
" gpu: mark a test as requiring CuPy and GPU" ,
@@ -412,8 +388,8 @@ markers = [
412
388
413
389
[tool .repo-review ]
414
390
ignore = [
415
- " PC111" , # fix Python code in documentation - enable later
416
- " PC180" , # for JavaScript - not interested
391
+ " PC111" , # fix Python code in documentation - enable later
392
+ " PC180" , # for JavaScript - not interested
417
393
]
418
394
419
395
[tool .numpydoc_validation ]
0 commit comments