From fe61697b99ea14c8685377fcda4bace01c5fc363 Mon Sep 17 00:00:00 2001 From: Brian Greunke Date: Wed, 19 Nov 2025 12:10:39 -0600 Subject: [PATCH 1/2] refactor(image): Explicitly cast array returns --- dreadnode/data_types/image.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dreadnode/data_types/image.py b/dreadnode/data_types/image.py index c185b333..2d8d78de 100644 --- a/dreadnode/data_types/image.py +++ b/dreadnode/data_types/image.py @@ -279,7 +279,7 @@ def canonical_array(self) -> "np.ndarray[t.Any, np.dtype[np.float32]]": Returns: float32 numpy array in [0,1] range, HWC format """ - return self._canonical_array.copy() # Always return a copy for safety + return t.cast("np.ndarray[t.Any, np.dtype[np.float32]]", self._canonical_array.copy()) @property def shape(self) -> tuple[int, ...]: @@ -328,7 +328,7 @@ def to_numpy(self, dtype: t.Any = np.float32) -> "np.ndarray[t.Any, t.Any]": # Keep float range [0, 1] arr = arr.astype(dtype) - return arr + return t.cast("np.ndarray[t.Any, t.Any]", arr) def to_pil(self) -> "PILImage": """Returns the image as a Pillow Image object.""" From 2473ed3266f76e77a84ec8a7642f41ffa00aac9f Mon Sep 17 00:00:00 2001 From: Brian Greunke Date: Wed, 19 Nov 2025 15:52:38 -0600 Subject: [PATCH 2/2] chore: suppress typing error --- dreadnode/data_types/image.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dreadnode/data_types/image.py b/dreadnode/data_types/image.py index 2d8d78de..839c2a32 100644 --- a/dreadnode/data_types/image.py +++ b/dreadnode/data_types/image.py @@ -279,7 +279,7 @@ def canonical_array(self) -> "np.ndarray[t.Any, np.dtype[np.float32]]": Returns: float32 numpy array in [0,1] range, HWC format """ - return t.cast("np.ndarray[t.Any, np.dtype[np.float32]]", self._canonical_array.copy()) + return t.cast("np.ndarray[t.Any, np.dtype[np.float32]]", self._canonical_array.copy()) # type: ignore[redundant-cast] @property def shape(self) -> tuple[int, ...]: