@@ -8,26 +8,26 @@ description = "Modeling complex perturbations with flow matching at single-cell
88readme = " README.md"
99license = " PolyForm-Noncommercial-1.0.0"
1010maintainers = [
11- { name = " Dominik Klein" },
12- { name = " Selman Oezleyen" },
13- { name = " Jonas Simon Fleck" },
1411 { name = " Daniil Bobrovskiy" },
12+ { name = " Dominik Klein" },
1513 { name = " Guillaume Huguet" },
14+ { name = " Jonas Simon Fleck" },
15+ { name = " Selman Oezleyen" },
1616]
1717authors = [
18- { name = " Dominik Klein" },
19- { name = " Jonas Simon Fleck" },
2018 { name = " Daniil Bobrovskiy" },
19+ { name = " Dominik Klein" },
2120 { name = " Guillaume Huguet" },
21+ { name = " Jonas Simon Fleck" },
2222]
2323requires-python = " >=3.11"
2424classifiers = [
2525 " Programming Language :: Python :: 3 :: Only" ,
2626 " Programming Language :: Python :: 3.11" ,
2727 " Programming Language :: Python :: 3.12" ,
2828 " Programming Language :: Python :: 3.13" ,
29+ " Programming Language :: Python :: 3.14" ,
2930]
30-
3131dynamic = [ " version" ]
3232dependencies = [
3333 " adjusttext" ,
@@ -45,7 +45,6 @@ dependencies = [
4545 " scipy<1.16" , # see https://github.com/statsmodels/statsmodels/issues/9584
4646 " session-info" ,
4747]
48-
4948optional-dependencies.dev = [
5049 " furo" ,
5150 " myst-nb" ,
@@ -66,7 +65,7 @@ optional-dependencies.docs = [
6665 " myst-nb>=1.1" ,
6766 " pandas" ,
6867 " scvi-tools>=1.3.1" ,
69- " setuptools" , # Until pybtex >0.23.0 releases: https://bitbucket.org/pybtex-devs/pybtex/issues/169/
68+ " setuptools" , # Until pybtex >0.23.0 releases: https://bitbucket.org/pybtex-devs/pybtex/issues/169/
7069 " sphinx>=8" ,
7170 " sphinx-autodoc-typehints" ,
7271 " sphinx-book-theme>=1" ,
@@ -97,23 +96,19 @@ optional-dependencies.test = [
9796 " pytest-mock>=3.5" ,
9897 " pytest-xdist>=3" ,
9998]
100-
10199urls.Documentation = " https://cellflow.readthedocs.io/"
102100urls.Home-page = " https://github.com/theislab/cellflow"
103101urls.Source = " https://github.com/theislab/cellflow"
104102
105- [tool .hatch .build .targets .wheel ]
106- packages = [ ' src/cellflow' ]
107-
108- [tool .hatch .version ]
109- source = " vcs"
110- fallback-version = " 0.1.0"
103+ [tool .hatch ]
104+ build.targets.wheel.packages = [ " src/cellflow" ]
105+ version.source = " vcs"
106+ version.fallback-version = " 0.1.0"
111107
112108[tool .ruff ]
113109line-length = 120
114110src = [ " src" ]
115111extend-include = [ " *.ipynb" ]
116-
117112format.docstring-code-format = true
118113lint.select = [
119114 " B" , # flake8-bugbear
@@ -160,34 +155,32 @@ lint.per-file-ignores."docs/*" = [ "I" ]
160155lint.per-file-ignores."tests/*" = [ " D" ]
161156lint.pydocstyle.convention = " numpy"
162157
163- [tool .pytest . ini_options ]
164- testpaths = [ " tests" ]
165- xfail_strict = true
166- addopts = [
158+ [tool .pytest ]
159+ ini_options. testpaths = [ " tests" ]
160+ ini_options. xfail_strict = true
161+ ini_options. addopts = [
167162 " --import-mode=importlib" , # allow using test files with same name
168163]
169- markers = [
164+ ini_options. markers = [
170165 " slow: marks tests as slow (deselect with '-m \" not slow\" ')" ,
171166]
172167
173- [tool .coverage .run ]
174- branch = true
175- source = [ " src/" ]
176- concurrency = [ " multiprocessing" ]
177- parallel = " true"
178-
179- [tool .coverage .report ]
180- exclude_lines = [
181- ' \#.*pragma:\s*no.?cover' ,
168+ [tool .coverage ]
169+ run.branch = true
170+ run.concurrency = [ " multiprocessing" ]
171+ run.parallel = " true"
172+ run.source = [ " src/" ]
173+ report.exclude_lines = [
174+ " \\ #.*pragma:\\ s*no.?cover" ,
175+ " ^\\ s*raise AssertionError\\ b" ,
176+ " ^\\ s*raise NotImplementedError\\ b" ,
177+ " ^\\ s*return NotImplemented\\ b" ,
182178 " ^if __name__ == .__main__.:$" ,
183- ' ^\s*raise AssertionError\b' ,
184- ' ^\s*raise NotImplementedError\b' ,
185- ' ^\s*return NotImplemented\b' ,
186179]
187- precision = 2
188- show_missing = true
189- skip_empty = true
190- sort = " Miss"
180+ report. precision = 2
181+ report. show_missing = true
182+ report. skip_empty = true
183+ report. sort = " Miss"
191184
192185[tool .tox ]
193186legacy_tox_ini = """
@@ -287,18 +280,14 @@ commands = biber --tool --output_file={tox_root}{/}docs{/}references.bib --nolog
287280mypy_path = " $MYPY_CONFIG_FILE_DIR/src"
288281python_version = " 3.11"
289282plugins = " numpy.typing.mypy_plugin"
290-
291283ignore_errors = false
292-
293284warn_redundant_casts = true
294285warn_unused_configs = true
295286warn_unused_ignores = true
296-
297287disallow_untyped_calls = false
298288disallow_untyped_defs = true
299289disallow_incomplete_defs = true
300290disallow_any_generics = true
301-
302291strict_optional = true
303292strict_equality = true
304293warn_return_any = false
@@ -307,12 +296,10 @@ check_untyped_defs = true
307296no_implicit_optional = true
308297no_implicit_reexport = true
309298no_warn_no_return = true
310-
311299show_error_codes = true
312300show_column_numbers = true
313301error_summary = true
314302ignore_missing_imports = true
315-
316303disable_error_code = [ " assignment" , " comparison-overlap" , " no-untyped-def" , " override" ]
317304
318305[tool .cruft ]
0 commit comments