From 2f823a78162d3b77727a5eb440c25aa7524d81c3 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Wed, 28 Oct 2026 10:46:17 +0100 Subject: Fail on non-finite dial values and results Co-Authored-By: Claude Sonnet 5.5 --- generat3d/scene.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'generat3d/scene.py') diff --git a/generat3d/scene.py b/generat3d/scene.py index cccfcff..722057f 100644 --- a/generat3d/scene.py +++ b/generat3d/scene.py @@ -63,8 +63,11 @@ class Scene: def _finite(v): - return (not isinstance(v, bool) and isinstance(v, (int, float)) - and math.isfinite(v)) + try: + return (not isinstance(v, bool) and isinstance(v, (int, float)) + and math.isfinite(v)) + except OverflowError: # huge int + return False def _channel(node, name): @@ -86,8 +89,8 @@ def _lookup(library, doc, url, section): def _number(url, v): - if isinstance(v, bool) or not isinstance(v, (int, float)): - raise Error(f"{url}: dial value is not a number") + if not _finite(v): + raise Error(f"{url}: dial value is not a finite number") return v -- cgit v1.2.3