@@ -85,7 +85,7 @@ scanpy = "scanpy.cli:console_main"
85
85
86
86
[project .optional-dependencies ]
87
87
test-min = [
88
- " pytest>=7.4.2,!=8.1.* " ,
88
+ " pytest>=8.2 " ,
89
89
" pytest-nunit" ,
90
90
" pytest-mock" ,
91
91
" pytest-cov" ,
@@ -153,26 +153,23 @@ rapids = ["cudf>=0.9", "cuml>=0.9", "cugraph>=0.9"] # GPU accelerated calculati
153
153
dask = [" dask[array]>=2022.09.2" ] # Use the Dask parallelization engine
154
154
dask-ml = [" dask-ml" , " scanpy[dask]" ] # Dask-ML for sklearn-like API
155
155
156
- [tool .hatch .build ]
157
- exclude = [" scanpy/tests" ]
158
156
[tool .hatch .build .targets .wheel ]
159
- # TODO: move scanpy to src/
160
- only-include = [" src/testing" , " scanpy" ]
161
- sources = [" src" , " ." ]
157
+ packages = [" src/testing" , " src/scanpy" ]
162
158
[tool .hatch .version ]
163
159
source = " vcs"
164
160
[tool .hatch .build .hooks .vcs ]
165
- version-file = " scanpy/_version.py"
161
+ version-file = " src/ scanpy/_version.py"
166
162
167
163
[tool .pytest .ini_options ]
168
164
addopts = [
169
165
" --import-mode=importlib" ,
170
166
" --strict-markers" ,
171
167
" --doctest-modules" ,
172
168
" -ptesting.scanpy._pytest" ,
169
+ " --pyargs" ,
173
170
]
174
- testpaths = [" scanpy" ]
175
- norecursedirs = [" scanpy/ tests/_images" ]
171
+ testpaths = [" ./tests " , " scanpy" ]
172
+ norecursedirs = [" tests/_images" ]
176
173
xfail_strict = true
177
174
nunit_attach_on = " fail"
178
175
markers = [
@@ -206,7 +203,7 @@ filterwarnings = [
206
203
[tool .coverage .run ]
207
204
data_file = " test-data/coverage"
208
205
source_pkgs = [" scanpy" ]
209
- omit = [" scanpy/ tests/*" , " src/testing/*" ]
206
+ omit = [" tests/*" , " src/testing/*" ]
210
207
[tool .coverage .xml ]
211
208
output = " test-data/coverage.xml"
212
209
[tool .coverage .paths ]
@@ -219,6 +216,9 @@ exclude_also = [
219
216
" @numba.njit.*" ,
220
217
]
221
218
219
+ [tool .ruff ]
220
+ src = [" src" ]
221
+
222
222
[tool .ruff .format ]
223
223
docstring-code-format = true
224
224
@@ -247,7 +247,7 @@ ignore = [
247
247
]
248
248
[tool .ruff .lint .per-file-ignores ]
249
249
# Do not assign a lambda expression, use a def
250
- "scanpy/tools/_rank_genes_groups.py" = [" E731" ]
250
+ "src/ scanpy/tools/_rank_genes_groups.py" = [" E731" ]
251
251
[tool .ruff .lint .isort ]
252
252
known-first-party = [" scanpy" , " testing.scanpy" ]
253
253
required-imports = [" from __future__ import annotations" ]
0 commit comments