-
Notifications
You must be signed in to change notification settings - Fork 22
/
pyproject.toml
131 lines (116 loc) · 3.4 KB
/
pyproject.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"
[project]
name = "rapids_singlecell"
description = "running single cell analysis on Nvidia GPUs"
requires-python = ">=3.10"
license = {file = "LICENSE"}
authors = [{name = "Severin Dicks"}]
readme = {file = "README.md", content-type="text/markdown"}
dynamic = ["version"]
dependencies = [
"anndata>=0.10.0",
"scanpy>=1.10.0",
"numpy>=1.17.0",
"scipy>=1.4",
"pandas",
"natsort",
"scikit-misc>=0.1.3",
"matplotlib>=3.4",
"tqdm",
"statsmodels>=0.12.0",
"scikit-image",
]
[project.optional-dependencies]
rapids11 = ["cupy-cuda11x","cudf-cu11==24.10.*", "cuml-cu11==24.10.*", "cugraph-cu11==24.10.*"]
rapids12 = ["cupy-cuda12x","cudf-cu12==24.10.*", "cuml-cu12==24.10.*", "cugraph-cu12==24.10.*"]
doc = [
"sphinx>=4.5.0",
"sphinx-copybutton",
"nbsphinx>=0.8.12",
"myst-nb",
"scanpydoc[typehints,theme]>=0.9.4",
"readthedocs-sphinx-ext",
"sphinx_copybutton",
"dask",
]
test = [
"pytest",
"profimp",
"scanpy>=1.10.0",
"bbknn",
]
[project.urls]
Documentation = "https://rapids-singlecell.readthedocs.io"
Source = "https://github.com/scverse/rapids_singlecell"
[tool.ruff]
src = ["src"]
line-length = 88
lint.select = [
"F", # Errors detected by Pyflakes
"E", # Error detected by Pycodestyle
"W", # Warning detected by Pycodestyle
"I", # isort
"TID", # flake8-tidy-imports
"C4", # flake8-comprehensions
"BLE", # flake8-blind-except
"UP", # pyupgrade
"TID251", # Banned imports
"RUF100", # Report unused noqa directives
"ICN", # Follow import conventions
"PTH", # Pathlib instead of os.path
"TCH", # manage type checking blocks
"PLR0917", # Ban APIs with too many positional parameters
]
lint.ignore = [
# line too long -> we accept long comment lines; formatting gets rid of long code lines
"E501",
# Do not assign a lambda expression, use a def -> lambda expression assignments are convenient
"E731",
# allow I, O, l as variable names -> I is the identity matrix
"E741",
# Missing docstring in public package
"F403",
]
[tool.ruff.lint.per-file-ignores]
"docs/*" = ["I"]
"tests/*" = ["D"]
"*/__init__.py" = ["F401"]
"src/rapids_singlecell/preprocessing/_harmonypy_gpu.py" = ["PLR0917"]
"src/rapids_singlecell/decoupler_gpu/_method_mlm.py" = ["PLR0917"]
"src/rapids_singlecell/decoupler_gpu/_method_wsum.py" = ["PLR0917"]
[tool.ruff.lint.isort]
known-first-party = ["rapids_singlecell"]
required-imports = ["from __future__ import annotations"]
[tool.pytest.ini_options]
addopts = [
"--import-mode=importlib",
"--strict-markers",
]
markers = [
"gpu: tests that use a GPU (currently unused, but needs to be specified here as we import anndata.tests.helpers, which uses it)",
]
[tool.hatch.envs.hatch-test]
features = ["test", "rapids12"]
[tool.hatch.envs.docs]
installer = "uv"
features = ["doc"]
scripts.build = "sphinx-build -M html docs docs/_build {args}"
scripts.clean = "git clean -fXd docs"
[tool.hatch.build]
# exclude big files that don’t need to be installed
exclude = [
"tests",
"docs",
"notebooks"
]
[tool.hatch.build.hooks.vcs]
version-file = "src/rapids_singlecell/_version.py"
[tool.hatch.version]
source = "vcs"
[tool.hatch.build.targets.wheel]
packages = ['src/rapids_singlecell']
[tool.codespell]
skip = '*.ipynb,*.csv'
ignore-words-list = "nd"