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
+18
View File
@@ -14,6 +14,16 @@ from .components.detector_response import DetectorResponse
from .spectrum import BetaSpectrum, SpectrumConfig, BetaSpectrumAnalyzer
from .fitter import CurveFitter, FitConfig, FitResult
from .cw_extractor import CWExtractor, CWExtractionResult, GVAExtractionResult
from .nuclear_data import (
DecayInfo,
BranchInfo,
get_decay_info_from_paceENSDF,
decay_info_to_config,
create_config_from_source,
load_json_input,
json_to_config,
DEFAULT_JSON_SCHEMA,
)
__all__ = [
"ALPHA",
@@ -40,6 +50,14 @@ __all__ = [
"CWExtractor",
"CWExtractionResult",
"GVAExtractionResult",
"DecayInfo",
"BranchInfo",
"get_decay_info_from_paceENSDF",
"decay_info_to_config",
"create_config_from_source",
"load_json_input",
"json_to_config",
"DEFAULT_JSON_SCHEMA",
]
__version__ = "0.3.0"