aboutsummaryrefslogtreecommitdiffstats
path: root/generat3d/scene.py
diff options
context:
space:
mode:
Diffstat (limited to 'generat3d/scene.py')
-rw-r--r--generat3d/scene.py11
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