-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
117 lines (105 loc) · 3.42 KB
/
pyproject.toml
File metadata and controls
117 lines (105 loc) · 3.42 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
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
106
107
108
109
110
111
112
113
114
115
116
117
[build-system]
requires = ["hatchling", "uv-dynamic-versioning"]
build-backend = "hatchling.build"
[project]
name = "microgrowagents"
description = "Agent-based system for microbial growth predictions"
authors = [
{name = "marcin p. joachimiak", email = "4625870+realmarcin@users.noreply.github.com"},
]
license = "BSD-3-Clause"
license-files = ["LICENSE"]
readme = "README.md"
requires-python = ">=3.10,<4.0"
dynamic = ["version"]
dependencies = [
"typer>=0.23.1", # CRITICAL: >=0.23.1 required to fix make_metavar() bug in 0.12.5 that broke skill CLI command
"linkml-runtime >=1.9.4",
"linkml >= 1.9.3",
"click >= 8.0.0",
"kghub-downloader >= 0.3.0",
"duckdb >= 0.9.0",
"pandas >= 2.0.0",
"requests >= 2.31.0",
"requests-cache >= 1.1.0",
"pyyaml >= 6.0",
"numpy >= 1.24.0",
"scipy >= 1.10.0",
"numba >= 0.58.0", # JIT compilation for MaxPro optimization performance
"matplotlib >= 3.5.0",
"seaborn >= 0.12.0",
"tqdm>=4.65.0",
"beautifulsoup4 >= 4.12.0",
"lxml >= 4.9.0",
"fuzzywuzzy >= 0.18.0",
"python-Levenshtein >= 0.21.0",
"grape >= 0.1.0", # GRAPE: Graph Representation leArning (Rust-backed, optimized for large biological networks)
"pypdf2>=3.0.1",
"markitdown>=0.1.4",
# Metabolic Modeling (GEMsembler Agent - Phases 1-3, 7-9)
"gemsembler >= 0.8.1, < 0.9.0", # CRITICAL: Avoid 0.9.0 breaking changes
"cobra >= 0.30.0", # COBRApy for FBA simulations
"python-libsbml >= 5.20.0", # SBML format support
# GapMind Agent (Phase 4) - Metabolic gap analysis
# Note: GapMind is Perl-based, no Python package
# Will use subprocess for local installation or cache pre-computed results
# MediaMatch Agent (Phase 5) - Medium recommendation
# requests >= 2.31.0 (already included above)
# scipy >= 1.10.0 (already included above)
# GrowthCodon Agent (Phase 6) - Hybrid CUB+FBA predictions
"rpy2 >= 3.5.0", # R interface for gRodon2
"scikit-learn>=1.3.0",
"scikit-optimize>=0.9.0",
"salib>=1.4.0",
"statsmodels>=0.14.0",
"pymoo>=0.6.0",
]
[dependency-groups]
dev = [
"mypy>=1.17.1",
"ruff>=0.4.8",
"mkdocs-material>=8.2.8",
"mkdocs-mermaid2-plugin>=1.1.1",
"jupyter>=1.0.0",
"mknotebooks>= 0.8.0",
]
[project.scripts]
MicroGrowAgents = "microgrowagents.cli:main"
microgrowagents = "microgrowagents.cli:main"
# See https://hatch.pypa.io/latest/config/build/#file-selection for how to
# explicitly include files other than default into the build distributions.
[tool.hatch.version]
source = "uv-dynamic-versioning"
# Ref.: https://github.com/ninoseki/uv-dynamic-versioning/
[tool.uv-dynamic-versioning]
vcs = "git"
style = "pep440"
fallback-version = "0.0.0"
# Ref.: https://docs.pytest.org/en/stable/reference/reference.html#configuration-options
[tool.pytest.ini_options]
testpaths = ["tests"]
# Ref.: https://github.com/codespell-project/codespell
[tool.codespell]
skip = [
"LICENSE",
"pyproject.toml",
"uv.lock",
"project/*",
"src/microgrowagents/datamodel/microgrowagents_pydantic.py",
"src/microgrowagents/datamodel/microgrowagents.py",
]
# Reminder: words have to be lowercased for the ignore-words-list
ignore-words-list = "linke"
quiet-level = 3
# Ref.: https://github.com/crate-ci/typos (spell checker)
[tool.typos.default.extend-words]
linke = "linke"
[tool.typos.files]
extend-exclude = [
"LICENSE",
"uv.lock",
"pyproject.toml",
"project/*",
"src/microgrowagents/datamodel/microgrowagents_pydantic.py",
"src/microgrowagents/datamodel/microgrowagents.py",
]