feat(toolkit): ship macro_lactone_toolkit package

Unify macrolactone detection, numbering, fragmentation, and
splicing under the installable macro_lactone_toolkit package.

- replace legacy src.* modules with the new package layout
- add analyze/number/fragment CLI entrypoints and pixi tasks
- migrate tests, README, and scripts to the new package API
This commit is contained in:
2026-03-18 22:06:45 +08:00
parent a768d26e47
commit 5e7b236f31
45 changed files with 1302 additions and 6304 deletions

View File

@@ -1,74 +1,28 @@
[build-system]
requires = ["setuptools>=61.0", "wheel"]
requires = ["setuptools>=69", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "macrolactone-fragmenter"
version = "1.2.0"
description = "A tool for analyzing and fragmenting macrolactone (12-20 membered ring) side chains"
name = "macro_lactone_toolkit"
version = "0.1.0"
description = "Toolkit for macrolactone detection, numbering, fragmentation, and splicing."
readme = "README.md"
requires-python = ">=3.8"
license = {text = "MIT"}
requires-python = ">=3.12"
license = { text = "MIT" }
authors = [
{name = "Macro Split Team", email = "your.email@example.com"},
{ name = "Macro Split Team" },
]
keywords = ["chemistry", "cheminformatics", "macrolactone", "rdkit", "fragmentation"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Science/Research",
"Topic :: Scientific/Engineering :: Chemistry",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
]
dependencies = [
"pandas>=1.3.0",
"numpy>=1.20.0",
"matplotlib>=3.3.0",
"seaborn>=0.11.0",
"dataclasses-json>=0.5.0",
"tqdm>=4.60.0",
"numpy>=1.26",
"pandas>=2.2",
]
[project.optional-dependencies]
dev = [
"jupyter>=1.0.0",
"pytest>=7.0.0",
"black>=22.0.0",
"flake8>=4.0.0",
]
docs = [
"mkdocs>=1.4.0",
"mkdocs-material>=9.0.0",
"mkdocstrings[python]>=0.20.0",
]
[project.urls]
Homepage = "https://github.com/yourusername/macro_split"
Documentation = "https://macro-split.readthedocs.io"
Repository = "https://github.com/yourusername/macro_split"
Issues = "https://github.com/yourusername/macro_split/issues"
[project.scripts]
macro-fragmenter = "src.macrolactone_fragmenter:main"
macro-lactone-toolkit = "macro_lactone_toolkit.cli:main"
[tool.setuptools]
packages = ["src"]
[tool.setuptools.package-data]
src = ["*.py"]
[tool.black]
line-length = 100
target-version = ['py38', 'py39', 'py310', 'py311']
[tool.setuptools.packages.find]
where = ["src"]
include = ["macro_lactone_toolkit*"]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = "test_*.py"
python_classes = "Test*"
python_functions = "test_*"