From 5cbe40e85d4895b41e881b6a3571c8e68a7ff981 Mon Sep 17 00:00:00 2001 From: Bartok9 Date: Thu, 30 Jul 2026 05:23:27 -0400 Subject: [PATCH] fix(python): type ImageResponse.pixels_as_float as bool Match C++ ImageResponse / RPC adaptors (bool, default false) instead of 0.0. Signed-off-by: Bartok9 --- PythonClient/airsim/types.py | 2 +- PythonClient/tests/__init__.py | 0 .../test_image_response_pixels_as_float.py | 34 +++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 PythonClient/tests/__init__.py create mode 100644 PythonClient/tests/test_image_response_pixels_as_float.py diff --git a/PythonClient/airsim/types.py b/PythonClient/airsim/types.py index 7aef005549..261c4af6b1 100644 --- a/PythonClient/airsim/types.py +++ b/PythonClient/airsim/types.py @@ -329,7 +329,7 @@ class ImageResponse(MsgpackMixin): camera_orientation = Quaternionr() time_stamp = np.uint64(0) message = '' - pixels_as_float = 0.0 + pixels_as_float = False compress = True width = 0 height = 0 diff --git a/PythonClient/tests/__init__.py b/PythonClient/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/PythonClient/tests/test_image_response_pixels_as_float.py b/PythonClient/tests/test_image_response_pixels_as_float.py new file mode 100644 index 0000000000..452abd5511 --- /dev/null +++ b/PythonClient/tests/test_image_response_pixels_as_float.py @@ -0,0 +1,34 @@ +"""Offline check: ImageResponse.pixels_as_float is a bool (matches C++ RPC).""" +from __future__ import annotations + +import importlib.util +import sys +import types +import unittest +from pathlib import Path + + +def _load_types(): + if "msgpackrpc" not in sys.modules: + sys.modules["msgpackrpc"] = types.ModuleType("msgpackrpc") + root = Path(__file__).resolve().parents[1] / "airsim" / "types.py" + spec = importlib.util.spec_from_file_location("airsim_types_under_test", root) + mod = importlib.util.module_from_spec(spec) + assert spec.loader is not None + spec.loader.exec_module(mod) + return mod + + +class TestImageResponsePixelsAsFloat(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.types = _load_types() + + def test_pixels_as_float_is_bool_false(self): + r = self.types.ImageResponse() + self.assertIsInstance(r.pixels_as_float, bool) + self.assertIs(r.pixels_as_float, False) + + +if __name__ == "__main__": + unittest.main()