From 3a34bc690137277d91ed9417522262ad4ab07fad Mon Sep 17 00:00:00 2001 From: Florian Pfaff <6773539+FlorianPfaff@users.noreply.github.com> Date: Fri, 3 Jul 2026 15:37:36 +0200 Subject: [PATCH 1/2] Normalize invalid scenario numeric inputs --- src/pyrecest/scenarios.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/pyrecest/scenarios.py b/src/pyrecest/scenarios.py index c14578646..62222f9c0 100644 --- a/src/pyrecest/scenarios.py +++ b/src/pyrecest/scenarios.py @@ -154,7 +154,10 @@ def convert(item: Any) -> float: raise ValueError(message) if isinstance(value, int | float): return [convert(value)] - return [convert(item) for item in value] + try: + return [convert(item) for item in value] + except TypeError as exc: + raise ValueError(message) from exc def _normalized_particle_weights(raw_weights: Any, particle_count: int, backend): From 426244c98c04a0887821b3c57c5be86e40cf873d Mon Sep 17 00:00:00 2001 From: Florian Pfaff <6773539+FlorianPfaff@users.noreply.github.com> Date: Fri, 3 Jul 2026 15:41:50 +0200 Subject: [PATCH 2/2] Add scenario numeric input regression --- tests/test_scenario_input_validation.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 tests/test_scenario_input_validation.py diff --git a/tests/test_scenario_input_validation.py b/tests/test_scenario_input_validation.py new file mode 100644 index 000000000..386160220 --- /dev/null +++ b/tests/test_scenario_input_validation.py @@ -0,0 +1,8 @@ +import pytest + +from pyrecest.scenarios import _to_float_list + + +def test_to_float_list_rejects_noniterable_nonnumeric_values(): + with pytest.raises(ValueError, match="measurement must contain numeric values"): + _to_float_list(object(), name="measurement", reject_text_or_bool=True)