-
Notifications
You must be signed in to change notification settings - Fork 10
/
pyproject.toml
68 lines (59 loc) · 2.19 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
# Build and release configuration for the Python version of core SOMA.
# This lives at the root directory to save us lots of headaches with versioning.
[build-system]
requires = ["setuptools", "setuptools-scm", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "somacore"
description = "Python-language API specification and base utilities for implementation of the SOMA system."
dynamic = ["version"]
readme = "./python-spec/README.md"
dependencies = [
"anndata",
"attrs>=22.1",
"numba",
"numpy>=1.21",
"pandas",
"pyarrow",
# TODO: pyarrow >= 14.0.1 doesn't play well with some other PyPI packages
# on Mac OS: https://github.com/apache/arrow/issues/42154
# Remove this once we can specify a recent pyarrow.
"pyarrow-hotfix",
"scipy",
"shapely",
"typing-extensions>=4.1", # For LiteralString (py3.11)
]
requires-python = ">=3.9"
urls = { repository = "https://github.com/single-cell-data/SOMA.git" }
classifiers = ["License :: OSI Approved :: MIT License"]
[project.optional-dependencies]
dev = ["black", "isort", "mypy~=1.0", "ruff", "pandas-stubs"]
[tool.setuptools]
packages.find.where = ["python-spec/src"]
package-data.somacore = ["py.typed"]
[tool.setuptools_scm]
write_to = "python-spec/src/somacore/_version.py"
# Keep Python executable package versioning separate from the spec and R impl
# by requiring `python-` at the start of the tag (e.g. `python-v1.2.3`).
tag_regex = '^python-(?P<version>[vV]?\d+(?:\.\d+){0,2}[^\+]*)(?:\+.*)?$'
[tool.ruff]
lint.extend-select = ["I"]
target-version = "py39"
fix = true
[tool.ruff.lint.isort]
force-single-line = true
known-first-party = ["somacore"]
single-line-exclusions = ["typing", "typing_extensions"]
[tool.mypy]
check_untyped_defs = true
enable_error_code = ["ignore-without-code"]
warn_redundant_casts = true
python_version = 3.9
# We want to enable this but it won't work when running locally due to the
# presence of _version.py (which invalidates the ignore, which causes an error).
#
# warn_unused_ignores = true
[[tool.mypy.overrides]]
# These dependencies do not currently have canonical type stubs.
module = ["anndata", "pyarrow", "pyarrow.compute", "pyarrow_hotfix", "scipy", "shapely"]
ignore_missing_imports = true