diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-28 10:46:17 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-28 10:46:17 +0100 |
| commit | 2f823a78162d3b77727a5eb440c25aa7524d81c3 (patch) | |
| tree | e078fcc407c6314bbb8e9268b6639463ae17d3e8 /generat3d/scene.py | |
| parent | d9ed29956b111c0881f546d7f6beddf9af26dc48 (diff) | |
| download | generat3D-2f823a78162d3b77727a5eb440c25aa7524d81c3.tar.gz generat3D-2f823a78162d3b77727a5eb440c25aa7524d81c3.zip | |
Fail on non-finite dial values and results
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Diffstat (limited to 'generat3d/scene.py')
| -rw-r--r-- | generat3d/scene.py | 11 |
1 files changed, 7 insertions, 4 deletions
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 |
