diff --git a/code/ndarray.c b/code/ndarray.c index 72a82b2d..489be2a8 100644 --- a/code/ndarray.c +++ b/code/ndarray.c @@ -1398,6 +1398,13 @@ mp_obj_t ndarray_itemsize(mp_obj_t self_in) { } #endif +#if NDARRAY_HAS_NDIM +mp_obj_t ndarray_ndim(mp_obj_t self_in) { + ndarray_obj_t *self = MP_OBJ_TO_PTR(self_in); + return MP_OBJ_NEW_SMALL_INT(self->ndim); +} +#endif + #if NDARRAY_HAS_SHAPE mp_obj_t ndarray_shape(mp_obj_t self_in) { ndarray_obj_t *self = MP_OBJ_TO_PTR(self_in); diff --git a/code/ndarray.h b/code/ndarray.h index 6e24b24a..8e81773d 100644 --- a/code/ndarray.h +++ b/code/ndarray.h @@ -232,6 +232,10 @@ mp_obj_t ndarray_dtype(mp_obj_t ); mp_obj_t ndarray_itemsize(mp_obj_t ); #endif +#if NDARRAY_HAS_NDIM +mp_obj_t ndarray_ndim(mp_obj_t ); +#endif + #if NDARRAY_HAS_SIZE mp_obj_t ndarray_size(mp_obj_t ); #endif diff --git a/code/ndarray_properties.c b/code/ndarray_properties.c index aa297158..6c048bda 100644 --- a/code/ndarray_properties.c +++ b/code/ndarray_properties.c @@ -6,7 +6,7 @@ * * The MIT License (MIT) * - * Copyright (c) 2021 Zoltán Vörös + * Copyright (c) 2021-2025 Zoltán Vörös * */ @@ -42,6 +42,11 @@ void ndarray_properties_attr(mp_obj_t self_in, qstr attr, mp_obj_t *dest) { dest[0] = ndarray_itemsize(self_in); break; #endif + #if NDARRAY_HAS_NDIM + case MP_QSTR_ndim: + dest[0] = ndarray_ndim(self_in); + break; + #endif #if NDARRAY_HAS_SHAPE case MP_QSTR_shape: dest[0] = ndarray_shape(self_in); diff --git a/code/ndarray_properties.h b/code/ndarray_properties.h index 3e0b9a40..aa2e15ad 100644 --- a/code/ndarray_properties.h +++ b/code/ndarray_properties.h @@ -7,7 +7,7 @@ * The MIT License (MIT) * * Copyright (c) 2020 Jeff Epler for Adafruit Industries - * 2020-2021 Zoltán Vörös + * 2020-2025 Zoltán Vörös */ #ifndef _NDARRAY_PROPERTIES_ @@ -36,6 +36,10 @@ MP_DEFINE_CONST_FUN_OBJ_1(ndarray_flatiter_make_new_obj, ndarray_flatiter_make_n MP_DEFINE_CONST_FUN_OBJ_1(ndarray_itemsize_obj, ndarray_itemsize); #endif +#if NDARRAY_HAS_NDIM +MP_DEFINE_CONST_FUN_OBJ_1(ndarray_ndim_obj, ndarray_ndim); +#endif + #if NDARRAY_HAS_SHAPE MP_DEFINE_CONST_FUN_OBJ_1(ndarray_shape_obj, ndarray_shape); #endif diff --git a/code/ulab.c b/code/ulab.c index 34222e58..fb42f6a8 100644 --- a/code/ulab.c +++ b/code/ulab.c @@ -33,7 +33,7 @@ #include "user/user.h" #include "utils/utils.h" -#define ULAB_VERSION 6.7.7 +#define ULAB_VERSION 6.8.0 #define xstr(s) str(s) #define str(s) #s diff --git a/code/ulab.h b/code/ulab.h index 3eb30131..38d46903 100644 --- a/code/ulab.h +++ b/code/ulab.h @@ -245,6 +245,10 @@ #define NDARRAY_HAS_ITEMSIZE (1) #endif +#ifndef NDARRAY_HAS_NDIM +#define NDARRAY_HAS_NDIM (1) +#endif + #ifndef NDARRAY_HAS_RESHAPE #define NDARRAY_HAS_RESHAPE (1) #endif