From 16f70d7a1d0d7adffc373256353aa1ba2012271c Mon Sep 17 00:00:00 2001 From: Andy Jost Date: Thu, 30 Apr 2026 12:48:31 -0700 Subject: [PATCH] cuda.core: fix _arr_is_c_contiguous discriminator for numba arrays `_arr_is_c_contiguous` checked `hasattr(arr, "flags")`, which is True for both numpy arrays and numba `DeviceNDArray`. For numba `arr.flags` is a plain dict, so the truthy branch falls into `arr.flags.c_contiguous` and raises `AttributeError: 'dict' object has no attribute 'c_contiguous'`. Discriminate on the flags object instead, mirroring the sibling `_arr_is_writeable` helper. Unblocks six numba-cuda parametrizations: - TestViewGPU::test_args_viewable_as_strided_memory_gpu[numba-cuda-{int8,float32}] - TestViewGPU::test_strided_memory_view_cpu[numba-cuda-{int8,float32}] - TestViewGPU::test_strided_memory_view_init[numba-cuda-{int8,float32}] Made-with: Cursor --- cuda_core/tests/test_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cuda_core/tests/test_utils.py b/cuda_core/tests/test_utils.py index 91075d85368..e5e47894646 100644 --- a/cuda_core/tests/test_utils.py +++ b/cuda_core/tests/test_utils.py @@ -102,7 +102,7 @@ def _arr_size(arr): def _arr_is_c_contiguous(arr): if torch is not None and isinstance(arr, torch.Tensor): return arr.is_contiguous() - return arr.flags.c_contiguous if hasattr(arr, "flags") else arr.flags["C_CONTIGUOUS"] + return arr.flags.c_contiguous if hasattr(arr.flags, "c_contiguous") else arr.flags["C_CONTIGUOUS"] def _arr_is_writeable(arr):