Diff of /pyproject.toml [000000] .. [121e55]

Switch to unified view

a b/pyproject.toml
1
[build-system]
2
build-backend = "hatchling.build"
3
requires = ["hatchling"]
4
5
[project]
6
name = "nichecompass"
7
version = "0.2.3"
8
description = "End-to-end analysis of spatial multi-omics data"
9
readme = "README.md"
10
requires-python = ">=3.9"
11
license = {file = "LICENSE"}
12
authors = [
13
    {name = "Sebastian Birk"},
14
]
15
maintainers = [
16
    {name = "Sebastian Birk", email = "sebastian.birk@outlook.com"},
17
]
18
urls.Documentation = "https://nichecompass.readthedocs.io/"
19
urls.Source = "https://github.com/Lotfollahi-lab/nichecompass"
20
urls.Home-page = "https://github.com/Lotfollahi-lab/nichecompass"
21
classifiers = [
22
  "Development Status :: 3 - Alpha",
23
  "Intended Audience :: Science/Research",
24
  "Natural Language :: English",
25
  "Programming Language :: Python :: 3.9",
26
  "Operating System :: POSIX :: Linux",
27
  "Topic :: Scientific/Engineering :: Bio-Informatics",
28
]
29
dependencies = [
30
    "mlflow>=1.28.0",
31
    "pyreadr>=0.4.6",
32
    "scanpy>=1.9.3,<1.10.0",
33
    "torch-geometric>=2.2.0",
34
    "omnipath>=1.0.7",
35
    "decoupler>=1.4.0",
36
    "numpy<2",
37
]
38
optional-dependencies.dev = [
39
    "pre-commit",
40
    "twine>=4.0.2",
41
]
42
optional-dependencies.docs = [
43
    "docutils>=0.8,!=0.18.*,!=0.19.*",
44
    "sphinx>=4.1",
45
    "sphinx-book-theme>=1.0.0",
46
    "myst-nb",
47
    "myst-parser",
48
    "sphinxcontrib-bibtex>=1.0.0",
49
    "sphinx-autodoc-typehints",
50
    "sphinx_rtd_theme",
51
    "sphinxext-opengraph",
52
    "sphinx-copybutton",
53
    "sphinx-design",
54
    "sphinx-hoverxref",
55
    # For notebooks
56
    "ipykernel",
57
    "ipython",
58
    "pandas",
59
]
60
optional-dependencies.docsbuild = [
61
    "nichecompass[docs,benchmarking,multimodal]"
62
]  # docs build dependencies
63
optional-dependencies.tests = [
64
    "pytest",
65
    "coverage",
66
]
67
optional-dependencies.benchmarking = [
68
    "scib-metrics>=0.3.3",
69
    "pynndescent>=0.5.8",
70
    "scikit-misc>=0.3.0",
71
    "squidpy>=1.2.2",
72
    "jax==0.4.7",
73
    "jaxlib==0.4.7"
74
]
75
optional-dependencies.multimodal = [
76
    "scglue>=0.3.2",
77
]
78
optional-dependencies.tutorials = [
79
    "jupyter",
80
]
81
all = ["nichecompass[dev,docs,tests,benchmarking,multimodal,tutorials]"]
82
83
[tool.coverage.run]
84
source = ["nichecompass"]
85
omit = [
86
    "**/test_*.py",
87
]
88
89
[tool.pytest.ini_options]
90
testpaths = ["tests"]
91
xfail_strict = true
92
addopts = [
93
    "--import-mode=importlib",  # allow using test files with same name
94
]
95
96
[tool.ruff]
97
line-length = 120
98
src = ["src"]
99
extend-include = ["*.ipynb"]
100
101
[tool.ruff.format]
102
docstring-code-format = true
103
104
[tool.ruff.lint]
105
select = [
106
    "F",  # Errors detected by Pyflakes
107
    "E",  # Error detected by Pycodestyle
108
    "W",  # Warning detected by Pycodestyle
109
    "I",  # isort
110
    "D",  # pydocstyle
111
    "B",  # flake8-bugbear
112
    "TID",  # flake8-tidy-imports
113
    "C4",  # flake8-comprehensions
114
    "BLE",  # flake8-blind-except
115
    "UP",  # pyupgrade
116
    "RUF100",  # Report unused noqa directives
117
]
118
ignore = [
119
    # line too long -> we accept long comment lines; formatter gets rid of long code lines
120
    "E501",
121
    # Do not assign a lambda expression, use a def -> lambda expression assignments are convenient
122
    "E731",
123
    # allow I, O, l as variable names -> I is the identity matrix
124
    "E741",
125
    # Missing docstring in public package
126
    "D104",
127
    # Missing docstring in public module
128
    "D100",
129
    # Missing docstring in __init__
130
    "D107",
131
    # Errors from function calls in argument defaults. These are fine when the result is immutable.
132
    "B008",
133
    # __magic__ methods are are often self-explanatory, allow missing docstrings
134
    "D105",
135
    # first line should end with a period [Bug: doesn't work with single-line docstrings]
136
    "D400",
137
    # First line should be in imperative mood; try rephrasing
138
    "D401",
139
    ## Disable one in each pair of mutually incompatible rules
140
    # We don’t want a blank line before a class docstring
141
    "D203",
142
    # We want docstrings to start immediately after the opening triple quote
143
    "D213",
144
]
145
146
[tool.ruff.lint.pydocstyle]
147
convention = "numpy"
148
149
[tool.ruff.lint.per-file-ignores]
150
"docs/*" = ["I"]
151
"tests/*" = ["D"]
152
"*/__init__.py" = ["F401"]
153
154
[tool.cruft]
155
skip = [
156
    "tests",
157
    "src/**/__init__.py",
158
    "src/**/basic.py",
159
    "docs/api.md",
160
    "docs/changelog.md",
161
    "docs/references.bib",
162
    "docs/references.md",
163
    "docs/notebooks/example.ipynb",
164
]