From 7bb58b784e96721263b7457c69e68958fd4a3b30 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 d56a24b63..a5414005f 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 @@ -363,7 +364,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