Files
beta_shape_pnpi/pyproject.toml
T
unzhakov 2788ea0683 feat(cli): separate-branches rename, short aliases, clean dry-run
- --normalize-to-one renamed to --separate-branches (no alias; the
  name now describes the output choice: total spectrum with
  intensity-normalized branches vs separate branches, each
  normalized to unit area with intensities left to the data user).
  SpectrumConfig.normalize_to_one -> separate_branches, CSV header
  word to_one -> separate.
- every long option gains a single-letter alias: -N -i -s -m -o -p
  -L -d -c -V -S -b (only -v/-q existed before)
- dry-run drops the top-level Transition: line — the per-branch
  list below already reports each branch's transition type
- version bumped to 0.4.1 (pyproject, __version__, CSV semantics
  docstring, TODO roadmap entry)
2026-10-03 01:08:51 +03:00

75 lines
1.7 KiB
TOML

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "beta-spectrum"
version = "0.4.1"
description = "High-precision beta spectrum calculation for nuclear physics"
authors = [
{ name = "Evgeniy Unzhakov" }
]
requires-python = ">=3.10"
dependencies = [
"numpy",
"scipy",
"matplotlib",
"pandas",
"nbformat>=5.10.4",
"nbconvert>=7.17.1",
]
[project.optional-dependencies]
ensdf = ["paceENSDF"]
root = ["root"] # PyROOT (requires system ROOT installation)
dev = [
"pytest",
"nbmake",
"black",
"ruff",
"mypy",
"mdformat",
"mdformat-frontmatter",
"mdformat-footnote",
"mdformat-tables"
]
[project.scripts]
bs_pnpi = "beta_spectrum.cli:main"
bs_exp = "exp_data.exp_cli:main"
[tool.setuptools.packages.find]
where = ["."]
[tool.mypy]
python_version = "3.10"
strict = true
exclude = ["notebooks", "scripts/notebook_plots.py", "tests/"]
disable_error_code = ["no-untyped-def", "arg-type", "return-value", "assignment", "misc", "import-untyped", "type-arg", "no-any-return", "union-attr", "operator"]
[tool.black]
line-length = 88
[tool.pytest.ini_options]
testpaths = ["tests", "notebooks"]
markers = [
"property: Physics property tests (positivity, monotonicity, limits)",
"physics: Physics behavior tests (energy dependence, Z dependence)",
"api: API contract tests (signatures, return types, error handling)",
"quality: Code quality tests (shape, type, NaN, stability)",
"integration: Full pipeline integration tests",
"slow: Tests that take >1s to run",
"requires_ensdf: Tests requiring paceENSDF package",
]
timeout = 30
timeout_method = "thread"
[tool.ruff]
line-length = 88
[tool.mdformat]
line-length = 88
wrap = false
number = true