feat: add CLI options for custom CSV separator and normalize-to-one branch normalization

This commit is contained in:
2026-07-06 17:32:56 +03:00
parent 1b4d418b5f
commit 6dc1e3924d
5 changed files with 78 additions and 11 deletions
+17
View File
@@ -152,6 +152,17 @@ def _build_parser() -> argparse.ArgumentParser:
choices=["full", "concise"],
help="CSV output verbosity: 'full' (all components) or 'concise' (total spectrum and normalized branch components only) (default: full)",
)
log_group.add_argument(
"--csv-separator",
type=str,
default=',',
help="CSV column separator (default: ','). Use 'tab' for tab separation.",
)
log_group.add_argument(
"--normalize-to-one",
action="store_true",
help="Normalize each branch to 1, ignoring intensity. In this case, total spectrum will not be produced (only energy and branch-wise spectra).",
)
return parser
@@ -253,6 +264,8 @@ def _run(args: argparse.Namespace) -> None:
neutrino_mass_MeV=args.neutrino_mass,
branches=branches,
intensity_cutoff=args.intensity_cutoff,
csv_separator=args.csv_separator,
normalize_to_one=args.normalize_to_one,
)
else:
config = create_config_from_source(
@@ -261,6 +274,8 @@ def _run(args: argparse.Namespace) -> None:
e_step_MeV=args.e_step,
intensity_cutoff=args.intensity_cutoff,
neutrino_mass_MeV=args.neutrino_mass,
csv_separator=args.csv_separator,
normalize_to_one=args.normalize_to_one,
)
else:
config = create_config_from_source(
@@ -269,6 +284,8 @@ def _run(args: argparse.Namespace) -> None:
e_step_MeV=args.e_step,
intensity_cutoff=args.intensity_cutoff,
neutrino_mass_MeV=args.neutrino_mass,
csv_separator=args.csv_separator,
normalize_to_one=args.normalize_to_one,
)
else:
logger.info("Source: JSON file=%s", source_value)