Skip to content

Commit 7b41cdb

Browse files
ypriverolclaude
andcommitted
build: migrate from Poetry to hatchling/PEP 621
Replace [tool.poetry] with standard [project] table, hatchling build backend, and hatch-vcs for version management from git tags. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent a4adab3 commit 7b41cdb

1 file changed

Lines changed: 51 additions & 76 deletions

File tree

pyproject.toml

Lines changed: 51 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
1-
[tool.poetry]
1+
# PEP 621 project metadata (used by uv, pip, and other standard tools)
2+
[project]
23
name = "mokume"
4+
dynamic = ["version"]
35
description = "A comprehensive proteomics quantification library supporting multiple methods (iBAQ, Top3, TopN, MaxLFQ, DirectLFQ)"
46
readme = "README.md"
5-
license = "MIT"
6-
version = "0.1.0"
7+
license = { text = "MIT" }
8+
requires-python = ">=3.9"
79
authors = [
8-
"Yasset Perez-Riverol <ypriverol@gmail.com>",
9-
"Dai Chengxin <chengxin2024@126.com>",
10-
"Julianus Pfeuffer <jule.pf@gmail.com>",
11-
"Joshua Klein <joshua.adam.klein@gmail.com>",
12-
"Enrique Audain <enrique.audain.martinez@uni-oldenburg.de>",
13-
"Ping Zheng <zprobot80@gmail.com>"
10+
{ name = "Yasset Perez-Riverol", email = "ypriverol@gmail.com" },
11+
{ name = "Dai Chengxin", email = "chengxin2024@126.com" },
12+
{ name = "Julianus Pfeuffer", email = "jule.pf@gmail.com" },
13+
{ name = "Joshua Klein", email = "joshua.adam.klein@gmail.com" },
14+
{ name = "Enrique Audain", email = "enrique.audain.martinez@uni-oldenburg.de" },
15+
{ name = "Ping Zheng", email = "zprobot80@gmail.com" }
1416
]
1517
keywords = [
1618
"quantms",
@@ -33,80 +35,57 @@ classifiers = [
3335
"Topic :: Scientific/Engineering :: Bio-Informatics",
3436
"Development Status :: 4 - Beta"
3537
]
36-
packages = [
37-
{ include = "mokume" }
38+
dependencies = [
39+
"scikit-learn",
40+
"pyopenms",
41+
"numpy<2.1.0",
42+
"click",
43+
"pandas",
44+
"pyarrow>=16.1.0",
45+
"duckdb>=0.10.1",
46+
"qnorm",
47+
"scipy>=1.10",
48+
"statsmodels>=0.13",
49+
"typing_extensions>=4.6.3",
50+
"anndata",
3851
]
3952

40-
[tool.poetry.urls]
53+
[project.optional-dependencies]
54+
plotting = ["matplotlib", "seaborn>=0.13.2"]
55+
reports = ["plotly>=5.0"]
56+
directlfq = ["directlfq>=0.3.0", "pyyaml>=6.0"]
57+
batch-correction = ["combat>=0.3"]
58+
inmoose = ["combat>=0.3"]
59+
tissuemap = ["scanpy>=1.9", "combat>=0.3", "umap-learn>=0.5", "matplotlib", "seaborn>=0.13.2"]
60+
all = ["directlfq>=0.3.0", "pyyaml>=6.0", "combat>=0.3", "matplotlib", "seaborn>=0.13.2", "plotly>=5.0", "scanpy>=1.9", "umap-learn>=0.5"]
61+
dev = [
62+
"pytest>=8.0",
63+
"pytest-cov>=4.0",
64+
"ruff",
65+
]
66+
67+
[project.scripts]
68+
mokume = "mokume.mokume_cli:main"
69+
70+
[project.urls]
4171
Homepage = "https://quantms.org"
4272
Documentation = "https://mokume.quantms.org"
4373
GitHub = "https://github.com/bigbio/mokume"
4474
"Bug Tracker" = "https://github.com/bigbio/mokume/issues"
4575
PyPI = "https://pypi.org/project/mokume/"
4676

47-
[tool.poetry.dependencies]
48-
python = ">=3.9"
49-
scikit-learn = "*"
50-
pyopenms = "*"
51-
numpy = "<2.1.0"
52-
click = "*"
53-
pandas = "*"
54-
pyarrow = ">=16.1.0"
55-
duckdb = ">=0.10.1"
56-
qnorm = "*"
57-
scipy = ">=1.10"
58-
statsmodels = ">=0.13"
59-
typing_extensions = ">=4.6.3"
60-
anndata = "*"
61-
62-
[tool.poetry.group.dev.dependencies]
63-
pytest = "^8.0"
64-
pytest-cov = "^4.0"
65-
flake8 = "^7.0"
66-
67-
[tool.poetry.extras]
68-
plotting = ["matplotlib", "seaborn"]
69-
reports = ["plotly"]
70-
directlfq = ["directlfq", "pyyaml"]
71-
batch-correction = ["combat"]
72-
inmoose = ["combat"] # Deprecated alias, use batch-correction instead
73-
tissuemap = ["scanpy", "combat", "umap-learn", "matplotlib", "seaborn"]
74-
all = ["directlfq", "pyyaml", "combat", "matplotlib", "seaborn", "plotly", "scanpy", "umap-learn"]
75-
76-
[tool.poetry.dependencies.matplotlib]
77-
version = "*"
78-
optional = true
79-
80-
[tool.poetry.dependencies.seaborn]
81-
version = ">=0.13.2"
82-
optional = true
83-
84-
[tool.poetry.dependencies.directlfq]
85-
version = ">=0.3.0"
86-
optional = true
87-
88-
[tool.poetry.dependencies.pyyaml]
89-
version = ">=6.0"
90-
optional = true
91-
92-
[tool.poetry.dependencies.combat]
93-
version = ">=0.3"
94-
optional = true
95-
96-
[tool.poetry.dependencies.plotly]
97-
version = ">=5.0"
98-
optional = true
77+
[build-system]
78+
requires = ["hatchling", "hatch-vcs"]
79+
build-backend = "hatchling.build"
9980

100-
[tool.poetry.dependencies.scanpy]
101-
version = ">=1.9"
102-
optional = true
81+
[tool.hatch.version]
82+
source = "vcs"
10383

104-
[tool.poetry.dependencies.umap-learn]
105-
version = ">=0.5"
106-
optional = true
84+
[tool.hatch.version.raw-options]
85+
local_scheme = "no-local-version"
10786

108-
[tool.poetry.scripts]
109-
mokume = "mokume.mokume_cli:main"
87+
[tool.hatch.build.targets.wheel]
88+
packages = ["mokume"]
11089

11190
[tool.pytest.ini_options]
11291
# Show print output during tests (needed for quantification comparison tables)
@@ -131,7 +110,3 @@ profile = "black"
131110
[tool.black]
132111
line-length = 99
133112
target-version = ["py39"]
134-
135-
[build-system]
136-
requires = ["poetry-core>=1.2.0"]
137-
build-backend = "poetry.core.masonry.api"

0 commit comments

Comments
 (0)