@@ -15,8 +15,8 @@ keywords = [
1515]
1616license = " BSD-3-Clause"
1717maintainers = [
18- { name = " Selman Ozleyen" , email = " selman.ozleyen@helmholtz-munich.de" },
1918 { name = " Tim Treis" , email = " tim.treis@scverse.org" },
19+ { name = " Selman Ozleyen" , email = " selman.ozleyen@helmholtz-munich.de" },
2020]
2121authors = [
2222 { name = " scverse" },
@@ -67,7 +67,7 @@ dependencies = [
6767 # due to https://github.com/scikit-image/scikit-image/issues/6850 breaks rescale ufunc
6868 " scikit-learn>=0.24" ,
6969 " spatialdata>=0.7.1" ,
70- " spatialdata-plot>=0.2.13 " ,
70+ " spatialdata-plot" ,
7171 " statsmodels>=0.12" ,
7272 # https://github.com/scverse/squidpy/issues/526
7373 " tifffile!=2022.4.22" ,
@@ -76,6 +76,7 @@ dependencies = [
7676 " xarray>=2024.10" ,
7777 " zarr>=3" ,
7878]
79+
7980optional-dependencies.dev = [
8081 " hatch>=1.9" ,
8182 " ipykernel" ,
@@ -127,11 +128,17 @@ include-package-data = true
127128
128129[tool .setuptools_scm ]
129130
130- [tool .hatch ]
131- build.hooks.vcs.version-file = " _version.py"
132- build.targets.wheel.packages = [ " src/squidpy" ]
133- metadata.allow-direct-references = true
134- version.source = " vcs"
131+ [tool .hatch .version ]
132+ source = " vcs"
133+
134+ [tool .hatch .build .hooks .vcs ]
135+ version-file = " _version.py"
136+
137+ [tool .hatch .metadata ]
138+ allow-direct-references = true
139+
140+ [tool .hatch .build .targets .wheel ]
141+ packages = [ " src/squidpy" ]
135142
136143[tool .ruff ]
137144line-length = 120
@@ -144,6 +151,7 @@ exclude = [
144151 " docs/_build" ,
145152 " setup.py" ,
146153]
154+
147155format.docstring-code-format = true
148156lint.select = [
149157 " B" , # flake8-bugbear
@@ -153,8 +161,8 @@ lint.select = [
153161 " F" , # pyflakes
154162 " I" , # isort
155163 # below are not autofixed
156- " UP" , # pyupgrade
157- " W" , # pycodestyle
164+ " UP" , # pyupgrade
165+ " W" , # pycodestyle
158166]
159167# "squidpy/*.py"= ["RST303"]
160168lint.ignore = [
@@ -226,46 +234,84 @@ lint.unfixable = [
226234lint.flake8-tidy-imports.ban-relative-imports = " all"
227235lint.isort.required-imports = [ " from __future__ import annotations" ]
228236
229- [tool .pytest ]
230- ini_options. filterwarnings = [
237+ [tool .pytest . ini_options ]
238+ filterwarnings = [
231239 " error::numba.NumbaPerformanceWarning" ,
232240 " ignore::UserWarning" ,
233241 " ignore::anndata.OldFormatWarning" ,
234242 " ignore:.*pkg_resources:DeprecationWarning" ,
235243]
236- ini_options. python_files = " test_*.py"
237- ini_options. testpaths = [ " tests/" ]
238- ini_options. xfail_strict = true
239- ini_options. addopts = [
244+ python_files = " test_*.py"
245+ testpaths = [ " tests/" ]
246+ xfail_strict = true
247+ addopts = [
240248 " --ignore=tests/plotting/test_interactive.py" ,
241249 " --ignore=docs" ,
242250]
243251
244- [tool .coverage ]
245- run.branch = true
246- run.omit = [
252+ [tool .coverage .run ]
253+ branch = true
254+ parallel = true
255+ source = [ " squidpy" ]
256+ omit = [
247257 " */__init__.py" ,
248258 " */_version.py" ,
249259 " squidpy/pl/_interactive/*" ,
250260 " tox/*" ,
251261]
252- run.parallel = true
253- run.source = [ " squidpy " ]
254- paths. source = [
262+
263+ [ tool . coverage . paths ]
264+ source = [
255265 " squidpy" ,
256266 " */site-packages/squidpy" ,
257267]
258- report.exclude_lines = [
268+
269+ [tool .coverage .report ]
270+ exclude_lines = [
259271 " \\ #.*pragma:\\ s*no.?cover" ,
272+ " ^if __name__ == .__main__.:$" ,
260273 " ^\\ s*raise AssertionError\\ b" ,
261274 " ^\\ s*raise NotImplementedError\\ b" ,
262275 " ^\\ s*return NotImplemented\\ b" ,
263- " ^if __name__ == .__main__.:$" ,
264276]
265- report.precision = 2
266- report.show_missing = true
267- report.skip_empty = true
268- report.sort = " Miss"
277+ show_missing = true
278+ precision = 2
279+ skip_empty = true
280+ sort = " Miss"
281+
282+ [tool .pixi .workspace ]
283+ channels = [ " conda-forge" ]
284+ platforms = [ " osx-arm64" , " linux-64" ]
285+
286+ [tool .pixi .dependencies ]
287+ python = " >=3.11"
288+
289+ [tool .pixi .pypi-dependencies ]
290+ squidpy = { path = " ." , editable = true }
291+
292+ [tool .pixi .feature .py311 .dependencies ]
293+ python = " 3.11.*"
294+
295+ [tool .pixi .feature .py313 .dependencies ]
296+ python = " 3.13.*"
297+
298+ [tool .pixi .environments ]
299+ dev-py311 = { features = [ " dev" , " test" , " py311" ], solve-group = " py311" }
300+ docs-py311 = { features = [ " docs" , " py311" ], solve-group = " py311" }
301+
302+ default = { features = [ " py313" ], solve-group = " py313" }
303+ dev-py313 = { features = [ " dev" , " test" , " py313" ], solve-group = " py313" }
304+ docs-py313 = { features = [ " docs" , " py313" ], solve-group = " py313" }
305+ test-py313 = { features = [ " test" , " py313" ], solve-group = " py313" }
306+
307+ [tool .pixi .tasks ]
308+ lab = " jupyter lab"
309+ kernel-install = " python -m ipykernel install --user --name pixi-dev --display-name \" squidpy (dev)\" "
310+ test = " pytest -v --color=yes --tb=short --durations=10"
311+ lint = " ruff check ."
312+ format = " ruff format ."
313+ pre-commit-install = " pre-commit install"
314+ pre-commit = " pre-commit run"
269315
270316[tool .cruft ]
271317skip = [
@@ -278,24 +324,3 @@ skip = [
278324 " docs/references.md" ,
279325 " docs/notebooks/example.ipynb" ,
280326]
281-
282- [tool .pixi ]
283- dependencies.python = " >=3.11"
284- environments.dev-py311 = { features = [ " dev" , " test" , " py311" ], solve-group = " py311" }
285- environments.docs-py311 = { features = [ " docs" , " py311" ], solve-group = " py311" }
286- environments.default = { features = [ " py313" ], solve-group = " py313" }
287- environments.dev-py313 = { features = [ " dev" , " test" , " py313" ], solve-group = " py313" }
288- environments.docs-py313 = { features = [ " docs" , " py313" ], solve-group = " py313" }
289- environments.test-py313 = { features = [ " test" , " py313" ], solve-group = " py313" }
290- feature.py311.dependencies.python = " 3.11.*"
291- feature.py313.dependencies.python = " 3.13.*"
292- pypi-dependencies.squidpy = { path = " ." , editable = true }
293- tasks.lab = " jupyter lab"
294- tasks.kernel-install = ' python -m ipykernel install --user --name pixi-dev --display-name "squidpy (dev)"'
295- tasks.test = " pytest -v --color=yes --tb=short --durations=10"
296- tasks.lint = " ruff check ."
297- tasks.format = " ruff format ."
298- tasks.pre-commit-install = " pre-commit install"
299- tasks.pre-commit = " pre-commit run"
300- workspace.channels = [ " conda-forge" ]
301- workspace.platforms = [ " osx-arm64" , " linux-64" ]
0 commit comments