Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
69 lines (61 loc) · 2.78 KB
/
Copy pathpyproject.toml
File metadata and controls
69 lines (61 loc) · 2.78 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
66
67
68
69
[build-system]
# >=64 rather than >=61: PEP 660 editable installs need build_editable, which landed in 64.
# The tested environment ships setuptools 59.5.0, so `pip install -e .` there must either use
# build isolation or have setuptools upgraded first.
requires = ["setuptools>=64"]
build-backend = "setuptools.build_meta"
[project]
name = "deepest"
version = "1.0.0"
description = "Bacterial protein function prediction from structure and expression-location features"
readme = "README.md"
# Upper-bounded: pytorch-lightning 1.9 predates 3.12 and relies on pkg_resources.
requires-python = ">=3.8,<3.12"
license = { file = "LICENSE.md" }
keywords = ["bioinformatics", "gene ontology", "protein function", "bacteria", "deep learning"]
classifiers = [
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering :: Bio-Informatics",
"Programming Language :: Python :: 3",
]
# Lower bounds, not pins. The exact stack the published results were produced with is in
# environment.yml; pinning it here (torch 2.0.0+cu118 in particular) would make the package
# uninstallable on most current machines, which defeats the point of being installable.
#
# Not listed, deliberately:
# lightning-flash -- DeepEST used one class from it; that class is vendored (see NOTICE).
# wandb -- was imported but never called; the import was removed.
dependencies = [
# setuptools, because pytorch-lightning 1.9 imports pkg_resources at module scope
# (lightning_fabric/__init__.py calls pkg_resources.declare_namespace). setuptools 81 removed
# pkg_resources, and modern Pythons no longer preinstall setuptools at all, so without this
# pin a clean `pip install` produces a `deepest` command that dies on import. environment.yml
# pins it for the conda path; this is the same fix for the pip path.
"setuptools<81",
# Upper-bounded: pytorch-lightning 1.9 is not compatible with torch 2.1+ internals, and
# pairing an uncapped torch with a capped PL is an untested combination.
"torch>=1.13,<2.1",
"pytorch-lightning>=1.9,<2",
"scikit-learn>=1.0",
# torch 2.0 wheels are compiled against the numpy 1.x C API. With numpy 2 an install resolves
# and imports, then dies mid-training with "Could not infer dtype of numpy.int64".
"numpy>=1.21,<2",
"pandas>=1.4,<2.1",
"h5py>=3.1",
"pyyaml>=5.4",
"tqdm>=4.60",
]
[project.optional-dependencies]
dev = ["pytest>=7.0"]
[project.urls]
Homepage = "https://github.com/BorgwardtLab/DeepEST"
Data = "https://doi.org/10.5281/zenodo.18695434"
[project.scripts]
deepest = "deepest.cli:main"
[tool.setuptools]
package-dir = { "" = "src" }
[tool.setuptools.packages.find]
where = ["src"]
[tool.pytest.ini_options]
testpaths = ["tests"]
markers = ["slow: trains a model; needs the example bundle and RUN_EXAMPLE=1"]