-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
65 lines (58 loc) · 1.98 KB
/
Copy pathpyproject.toml
File metadata and controls
65 lines (58 loc) · 1.98 KB
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
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "repseq"
dynamic = ["version"]
description = "Representative sequence selection for large bioinformatics datasets"
requires-python = ">=3.10"
dependencies = [
"click>=8.1",
"pyyaml>=6.0",
"biopython>=1.81",
"requests>=2.31",
"tqdm>=4.66",
"pandas>=2.0",
"rich>=13.0",
]
[project.optional-dependencies]
# `[viz]` is intentionally matplotlib-only: it ships wheels for every
# platform and installs without compiling, so `--plot` always works after
# it. The embedding then falls back to a numpy-only classical MDS.
viz = [
"matplotlib>=3.7",
]
# `[viz-umap]` adds the optional UMAP upgrade (nicer separation on large
# diverse sets). umap-learn pins narrow numpy/scipy/numba ranges and can
# fail to build/import in a shared env — that's why it's split out and why
# repseq treats it as best-effort at run time, never required for a plot.
viz-umap = [
"matplotlib>=3.7",
"umap-learn>=0.5",
]
[project.scripts]
repseq = "repseq.cli:main"
[tool.setuptools.dynamic]
version = {attr = "repseq.__version__"}
[tool.setuptools.packages.find]
where = ["."]
include = ["repseq*"]
[tool.setuptools.package-data]
# Bundled HMM sets: the top-level viral-core database plus any
# family-specific subdirectory of .hmm files (e.g. data/hmms/Filoviridae/).
# Plus the canonical fully-commented reference config that `repseq
# init-config` reads and emits (single source of truth for the schema docs).
repseq = [
"data/hmms/*.hmm",
"data/hmms/*/*.hmm",
"data/hmms/*/README.md",
"data/default_config.yaml",
]
[tool.pytest.ini_options]
# The `integration` tests invoke the real external tools (mafft, FastTree,
# mmseqs) end-to-end. They are OPT-IN: skipped by default via the addopts
# filter below, run explicitly with `pytest -m integration`.
markers = [
"integration: end-to-end test using the real external binaries (opt-in).",
]
addopts = "-m 'not integration'"