From a2fe0198b881c3f248bc61b3c4629c60d4019d72 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 19:28:21 +0000 Subject: [PATCH 1/2] [pre-commit.ci] pre-commit autoupdate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/biomejs/pre-commit: v2.0.0-beta.5 → v2.3.15](https://github.com/biomejs/pre-commit/compare/v2.0.0-beta.5...v2.3.15) - [github.com/tox-dev/pyproject-fmt: v2.6.0 → v2.16.0](https://github.com/tox-dev/pyproject-fmt/compare/v2.6.0...v2.16.0) - [github.com/astral-sh/ruff-pre-commit: v0.11.11 → v0.15.1](https://github.com/astral-sh/ruff-pre-commit/compare/v0.11.11...v0.15.1) --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index afbbabcd..eb3a05f4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,16 +1,16 @@ repos: # Hooks that are run everywhere - repo: https://github.com/biomejs/pre-commit - rev: v2.0.0-beta.5 + rev: v2.3.15 hooks: - id: biome-format # Hooks that are run for scripts - repo: https://github.com/tox-dev/pyproject-fmt - rev: v2.6.0 + rev: v2.16.0 hooks: - id: pyproject-fmt - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.11.11 + rev: v0.15.1 hooks: - id: ruff args: [--fix, --exit-non-zero-on-fix] From 87a5df93754c10b48599bdb9a48914ac9571ab13 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 19:28:33 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pyproject.toml | 73 +++++++++++++++++++++----------------------------- 1 file changed, 30 insertions(+), 43 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 152c690b..310c26ac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,17 +8,17 @@ description = "Modeling complex perturbations with flow matching at single-cell readme = "README.md" license = "PolyForm-Noncommercial-1.0.0" maintainers = [ - { name = "Dominik Klein" }, - { name = "Selman Oezleyen" }, - { name = "Jonas Simon Fleck" }, { name = "Daniil Bobrovskiy" }, + { name = "Dominik Klein" }, { name = "Guillaume Huguet" }, + { name = "Jonas Simon Fleck" }, + { name = "Selman Oezleyen" }, ] authors = [ - { name = "Dominik Klein" }, - { name = "Jonas Simon Fleck" }, { name = "Daniil Bobrovskiy" }, + { name = "Dominik Klein" }, { name = "Guillaume Huguet" }, + { name = "Jonas Simon Fleck" }, ] requires-python = ">=3.11" classifiers = [ @@ -26,8 +26,8 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] - dynamic = [ "version" ] dependencies = [ "adjusttext", @@ -45,7 +45,6 @@ dependencies = [ "scipy<1.16", # see https://github.com/statsmodels/statsmodels/issues/9584 "session-info", ] - optional-dependencies.dev = [ "furo", "myst-nb", @@ -66,7 +65,7 @@ optional-dependencies.docs = [ "myst-nb>=1.1", "pandas", "scvi-tools>=1.3.1", - "setuptools", # Until pybtex >0.23.0 releases: https://bitbucket.org/pybtex-devs/pybtex/issues/169/ + "setuptools", # Until pybtex >0.23.0 releases: https://bitbucket.org/pybtex-devs/pybtex/issues/169/ "sphinx>=8", "sphinx-autodoc-typehints", "sphinx-book-theme>=1", @@ -97,23 +96,19 @@ optional-dependencies.test = [ "pytest-mock>=3.5", "pytest-xdist>=3", ] - urls.Documentation = "https://cellflow.readthedocs.io/" urls.Home-page = "https://github.com/theislab/cellflow" urls.Source = "https://github.com/theislab/cellflow" -[tool.hatch.build.targets.wheel] -packages = [ 'src/cellflow' ] - -[tool.hatch.version] -source = "vcs" -fallback-version = "0.1.0" +[tool.hatch] +build.targets.wheel.packages = [ "src/cellflow" ] +version.source = "vcs" +version.fallback-version = "0.1.0" [tool.ruff] line-length = 120 src = [ "src" ] extend-include = [ "*.ipynb" ] - format.docstring-code-format = true lint.select = [ "B", # flake8-bugbear @@ -160,34 +155,32 @@ lint.per-file-ignores."docs/*" = [ "I" ] lint.per-file-ignores."tests/*" = [ "D" ] lint.pydocstyle.convention = "numpy" -[tool.pytest.ini_options] -testpaths = [ "tests" ] -xfail_strict = true -addopts = [ +[tool.pytest] +ini_options.testpaths = [ "tests" ] +ini_options.xfail_strict = true +ini_options.addopts = [ "--import-mode=importlib", # allow using test files with same name ] -markers = [ +ini_options.markers = [ "slow: marks tests as slow (deselect with '-m \"not slow\"')", ] -[tool.coverage.run] -branch = true -source = [ "src/" ] -concurrency = [ "multiprocessing" ] -parallel = "true" - -[tool.coverage.report] -exclude_lines = [ - '\#.*pragma:\s*no.?cover', +[tool.coverage] +run.branch = true +run.concurrency = [ "multiprocessing" ] +run.parallel = "true" +run.source = [ "src/" ] +report.exclude_lines = [ + "\\#.*pragma:\\s*no.?cover", + "^\\s*raise AssertionError\\b", + "^\\s*raise NotImplementedError\\b", + "^\\s*return NotImplemented\\b", "^if __name__ == .__main__.:$", - '^\s*raise AssertionError\b', - '^\s*raise NotImplementedError\b', - '^\s*return NotImplemented\b', ] -precision = 2 -show_missing = true -skip_empty = true -sort = "Miss" +report.precision = 2 +report.show_missing = true +report.skip_empty = true +report.sort = "Miss" [tool.tox] legacy_tox_ini = """ @@ -287,18 +280,14 @@ commands = biber --tool --output_file={tox_root}{/}docs{/}references.bib --nolog mypy_path = "$MYPY_CONFIG_FILE_DIR/src" python_version = "3.11" plugins = "numpy.typing.mypy_plugin" - ignore_errors = false - warn_redundant_casts = true warn_unused_configs = true warn_unused_ignores = true - disallow_untyped_calls = false disallow_untyped_defs = true disallow_incomplete_defs = true disallow_any_generics = true - strict_optional = true strict_equality = true warn_return_any = false @@ -307,12 +296,10 @@ check_untyped_defs = true no_implicit_optional = true no_implicit_reexport = true no_warn_no_return = true - show_error_codes = true show_column_numbers = true error_summary = true ignore_missing_imports = true - disable_error_code = [ "assignment", "comparison-overlap", "no-untyped-def", "override" ] [tool.cruft]