forked from mjhubisz/argweaver
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
105 lines (95 loc) · 2.8 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
[build-system]
requires = ["maturin>=1.4,<2.0", "cmake>=3.15"]
build-backend = "maturin"
[project]
name = "argweavers"
description = "Ancestral recombination graph sampling method"
license = { file = "LICENSE" }
authors = [
{name = "Matt Rasmussen", email = "[email protected]"},
{ name = "Melissa Hubisz", email = "[email protected]" },
]
maintainers = [{name = "Tang Ziya", email = "[email protected]"}]
requires-python = ">=3.8"
classifiers = [
"Programming Language :: C++",
"Programming Language :: R",
"Programming Language :: Rust",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"License :: OSI Approved :: MIT License",
]
dynamic = ["version"]
dependencies = [
"scipy>=1.10.1",
"numpy>=1.24.4",
"polars>=0.20.9",
"pyarrow>=15.0.0",
"pandas>=2.0.3",
"matplotlib>=3.7.5",
"biopython>=1.83",
"networkx>=3.1",
"tskit>=0.5.6",
]
[project.optional-dependencies]
r = ["rpy2>=3.5.15"]
[project.scripts]
arg-likelihood = "argweavers.bin:arg_likelihood"
arg-sample = "argweavers.bin:arg_sample"
arg-summarize = "argweavers.bin:arg_summarize"
smc2bed = "argweavers.scripts.smc2bed:main"
smc2bed-all = "argweavers.scripts.smc2bed_all:main"
[tool.rye]
dev-dependencies = [
"pip>=23.3.2",
"pre-commit>=3.5.0",
"pytest>=8.0",
"pytest-cov>=4.1.0",
"sphinx>=7.1.2",
"esbonio-extensions>=0.2.2",
"myst-parser>=2.0.0",
"sphinx-autodoc2>=0.5.0",
"ipykernel>=6.29.2",
"cibuildwheel>=2.16.5",
"seaborn>=0.13.2",
"snakeviz>=2.2.0",
]
[tool.rye.scripts]
cov-report = { chain = ["htmlcov", "htmlcov-serve"] }
htmlcov = "pytest --cov-report=html"
htmlcov-serve = "python -m http.server --directory htmlcov"
"restore:argweaver" = { cmd = ["R", "-e", "renv::install('./R/argweaver')"] }
"restore:renv" = { cmd = ["R", "-e", "renv::restore()"] }
restore-r = { chain = ["restore:renv", "restore:argweaver"] }
test = { chain = ["test:py", "test:rs"] }
"test:py" = { chain = ["dev", "pytest"] }
"test:rs" = "cargo test"
build = "maturin build"
dev = "maturin develop --skip-install"
[tool.maturin]
features = ["extension-module"]
[[tool.mypy.overrides]]
module = [
"rpy2.*",
]
ignore_missing_imports = true
[tool.ruff]
extend-select = ["I"]
target-version = "py38"
[tool.pytest.ini_options]
minversion = "7.0"
addopts = ["--cov=argweavers"]
[tool.coverage.report]
exclude_also = [
"if (typing\\.)?TYPE_CHECKING",
"if __name__ == \"__main__\"",
"raise ImportError",
"class \\w+\\((argparse\\.)?HelpFormatter\\)",
]
[tool.cibuildwheel]
skip = "pp*"