@@ -82,43 +82,31 @@ urls.Documentation = "https://decoupler.readthedocs.io/"
8282urls.Homepage = " https://github.com/scverse/decoupler"
8383urls.Source = " https://github.com/scverse/decoupler"
8484
85- [tool .hatch .envs .default ]
86- installer = " uv"
87- features = [ " dev" ]
88-
89- [tool .hatch .envs .docs ]
90- features = [ " doc" ]
91- scripts.build = " sphinx-build -M html docs docs/_build -W {args}"
92- scripts.open = " python -m webbrowser -t docs/_build/html/index.html"
93- scripts.clean = " git clean -fdX -- {args:docs}"
94-
95- # Test the lowest and highest supported Python versions with normal deps
96- [[tool .hatch .envs .hatch-test .matrix ]]
97- deps = [ " stable" ]
98- python = [ " 3.10" , " 3.13" ]
99-
100- # Test the newest supported Python version also with pre-release deps
101- [[tool .hatch .envs .hatch-test .matrix ]]
102- deps = [ " pre" ]
103- python = [ " 3.13" ]
104-
105- [tool .hatch .envs .hatch-test ]
106- features = [ " dev" , " test" ]
107-
108- [tool .hatch .envs .hatch-test .overrides ]
85+ [tool .hatch ]
86+ envs.default.installer = " uv"
87+ envs.default.features = [ " dev" ]
88+ envs.docs.features = [ " doc" ]
89+ envs.docs.scripts.build = " sphinx-build -M html docs docs/_build -W {args}"
90+ envs.docs.scripts.open = " python -m webbrowser -t docs/_build/html/index.html"
91+ envs.docs.scripts.clean = " git clean -fdX -- {args:docs}"
92+ envs.hatch-test.features = [ " dev" , " test" ]
93+ envs.hatch-test.matrix = [
94+ # Test the lowest and highest supported Python versions with normal deps
95+ { deps = [ " stable" ], python = [ " 3.10" , " 3.13" ] },
96+ # Test the newest supported Python version also with pre-release deps
97+ { deps = [ " pre" ], python = [ " 3.13" ] },
98+ ]
10999# If the matrix variable `deps` is set to "pre",
110100# set the environment variable `UV_PRERELEASE` to "allow".
111- matrix.deps.env-vars = [
101+ envs.hatch-test.overrides. matrix.deps.env-vars = [
112102 { key = " UV_PRERELEASE" , value = " allow" , if = [ " pre" ] },
113103]
114104
115105[tool .ruff ]
116106line-length = 120
117107src = [ " src" ]
118108extend-include = [ " *.ipynb" ]
119-
120109format.docstring-code-format = true
121-
122110lint.select = [
123111 " B" , # flake8-bugbear
124112 " BLE" , # flake8-blind-except
@@ -152,19 +140,19 @@ lint.per-file-ignores."docs/*" = [ "I" ]
152140lint.per-file-ignores."tests/*" = [ " D" ]
153141lint.pydocstyle.convention = " numpy"
154142
155- [tool .pytest . ini_options ]
156- testpaths = [ " tests" ]
157- xfail_strict = true
158- addopts = [
143+ [tool .pytest ]
144+ ini_options. testpaths = [ " tests" ]
145+ ini_options. xfail_strict = true
146+ ini_options. addopts = [
159147 " --import-mode=importlib" , # allow using test files with same name
160148]
161149
162- [tool .coverage .run ]
163- source = [ " decoupler" ]
164- patch = [ " subprocess" ]
165- omit = [
150+ [tool .coverage ]
151+ run.omit = [
166152 " **/test_*.py" ,
167153]
154+ run.patch = [ " subprocess" ]
155+ run.source = [ " decoupler" ]
168156
169157[tool .cruft ]
170158skip = [
0 commit comments