feat: add paceENSDF integration and CLI interface (Track B1)

- Add nuclear_data.py module for paceENSDF integration and JSON input
- Add DecayInfo and BranchInfo dataclasses for parsed nuclear data
- Implement get_decay_info_from_paceENSDF() to retrieve decay parameters
- Implement load_json_input() and json_to_config() for custom JSON input
- Add create_config_from_source() unified interface for both sources
- Add bs_pnpi CLI with --nuclide, --input, --output, --plot, and detector options
- Add 23 comprehensive tests for nuclear_data module
- Add sample JSON input file
- Update __init__.py and pyproject.toml with new exports and entry point
- Add paceENSDF as optional dependency
This commit is contained in:
2026-05-02 22:09:25 +03:00
parent 6854bbff6e
commit 1269244b93
6 changed files with 1226 additions and 4 deletions
+8 -4
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "beta-spectrum"
version = "0.1.2"
version = "0.3.0"
description = "High-precision beta spectrum calculation for nuclear physics"
authors = [
{ name = "Evgeniy Unzhakov" }
@@ -18,10 +18,8 @@ dependencies = [
"pandas"
]
[tool.setuptools.packages.find]
where = ["."]
[project.optional-dependencies]
ensdf = ["paceENSDF"]
dev = [
"pytest",
"nbmake",
@@ -34,6 +32,12 @@ dev = [
"mdformat-tables"
]
[project.scripts]
bs_pnpi = "beta_spectrum.cli:main"
[tool.setuptools.packages.find]
where = ["."]
[tool.mypy]
python_version = "3.10"
strict = true