From e3d2f0fe7c583f3a632d9643dca98b071c60b79f Mon Sep 17 00:00:00 2001 From: abhi-0203 Date: Sun, 9 Aug 2026 04:32:18 +0000 Subject: [PATCH] fix: accept numpy integer types as Parachute trigger isinstance(trigger, (int, float)) rejects numpy integer types (np.int64, np.int32) because they don't subclass Python's int or float. Replace with isinstance(trigger, numbers.Real) which covers all numeric types (int, float, numpy scalars) while excluding bool. Fixes #1106 --- rocketpy/rocket/parachute.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rocketpy/rocket/parachute.py b/rocketpy/rocket/parachute.py index da99743ce..ded0e006a 100644 --- a/rocketpy/rocket/parachute.py +++ b/rocketpy/rocket/parachute.py @@ -1,4 +1,5 @@ from inspect import Parameter, signature +from numbers import Real import numpy as np @@ -351,7 +352,7 @@ def wrapper(p, h, y, sensors, u_dot): return # Numeric altitude trigger - if isinstance(trigger, (int, float)): + if isinstance(trigger, Real) and not isinstance(trigger, bool): self._trigger_falling_only = True def triggerfunc(p, h, y, sensors, u_dot): # pylint: disable=unused-argument