diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 809e152..cb1f6e7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,16 +8,16 @@ default_stages: minimum_pre_commit_version: 2.16.0 repos: - repo: https://github.com/biomejs/pre-commit - rev: v1.9.4 + rev: v2.3.14 hooks: - id: biome-format exclude: ^\.cruft\.json$ # inconsistent indentation with cruft - file never to be modified manually. - repo: https://github.com/tox-dev/pyproject-fmt - rev: v2.5.1 + rev: v2.15.0 hooks: - id: pyproject-fmt - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.11.2 + rev: v0.15.0 hooks: - id: ruff types_or: [python, pyi, jupyter] @@ -25,7 +25,7 @@ repos: - id: ruff-format types_or: [python, pyi, jupyter] - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: detect-private-key - id: check-ast diff --git a/pyproject.toml b/pyproject.toml index 27b9cb4..19021fd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,14 +12,14 @@ maintainers = [ { name = "Artuur Couckuyt", email = "Artuur.Couckuyt@ugent.be" }, { name = "Benjamin Rombaut", email = "Benjamin.Rombaut@ugent.be" }, { name = "Robbe Fonteyn", email = "Robbe.Fonteyn@ugent.be" }, - { name = "Yvan Saeys", email = "Yvan.Saeys@UGent.be" }, { name = "Sofie Van Gassen", email = "Sofie.VanGassen@UGent.be" }, + { name = "Yvan Saeys", email = "Yvan.Saeys@UGent.be" }, ] authors = [ { name = "Artuur Couckuyt", email = "Artuur.Couckuyt@ugent.be" }, { name = "Benjamin Rombaut", email = "Benjamin.Rombaut@ugent.be" }, - { name = "Yvan Saeys", email = "Yvan.Saeys@UGent.be" }, { name = "Sofie Van Gassen", email = "Sofie.VanGassen@UGent.be" }, + { name = "Yvan Saeys", email = "Yvan.Saeys@UGent.be" }, ] requires-python = ">=3.10" classifiers = [ @@ -28,6 +28,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] dependencies = [ "anndata", @@ -46,7 +47,6 @@ dependencies = [ # for debug logging (referenced from the issue template) "session-info2", ] - optional-dependencies.dev = [ "pre-commit", "twine>=4.0.2" ] optional-dependencies.doc = [ "docutils>=0.8,!=0.18.*,!=0.19.*", @@ -72,27 +72,20 @@ urls.Documentation = "https://flowsom.readthedocs.io/en/latest/" urls.Home-page = "https://github.com/saeyslab/FlowSOM_Python" urls.Source = "https://github.com/saeyslab/FlowSOM_Python" -[tool.hatch.build.targets.wheel] -packages = [ 'src/flowsom' ] - -[tool.hatch.envs.default] -installer = "uv" -features = [ "dev" ] - -[tool.hatch.envs.docs] -features = [ "doc" ] -scripts.build = "sphinx-build -M html docs docs/_build {args}" -scripts.open = "python -m webbrowser -t docs/_build/html/index.html" -scripts.clean = "git clean -fdX -- {args:docs}" - -[tool.hatch.envs.hatch-test] -features = [ "test" ] +[tool.hatch] +build.targets.wheel.packages = [ "src/flowsom" ] +envs.default.installer = "uv" +envs.default.features = [ "dev" ] +envs.docs.features = [ "doc" ] +envs.docs.scripts.build = "sphinx-build -M html docs docs/_build {args}" +envs.docs.scripts.open = "python -m webbrowser -t docs/_build/html/index.html" +envs.docs.scripts.clean = "git clean -fdX -- {args:docs}" +envs.hatch-test.features = [ "test" ] [tool.ruff] line-length = 120 src = [ "src" ] extend-include = [ "*.ipynb" ] - format.docstring-code-format = true lint.select = [ "B", # flake8-bugbear @@ -127,20 +120,24 @@ 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 ] -[tool.coverage.run] -source = [ "flowsom" ] -omit = [ "**/test_*.py" ] +[tool.coverage] +run.omit = [ "**/test_*.py" ] +run.source = [ "flowsom" ] [tool.fawltydeps] -code = [ "src" ] # Only search for imports under ./src -deps = [ "pyproject.toml" ] # Only look for declared dependencies here +code = [ + "src", +] # Only search for imports under ./src +deps = [ + "pyproject.toml", +] # Only look for declared dependencies here ignore_undeclared = [ "flowsom" ] [tool.cruft]