diff --git a/minimal/mpconfigport.h b/minimal/mpconfigport.h index f2c616732afc38dbfb6290fa81423390bcfce10d..b9c97d2d349c68544f515f9ebc42e8120c2a2450 100644 --- a/minimal/mpconfigport.h +++ b/minimal/mpconfigport.h @@ -24,6 +24,7 @@ #define MICROPY_PY_BUILTINS_BYTEARRAY (0) #define MICROPY_PY_BUILTINS_MEMORYVIEW (0) #define MICROPY_PY_BUILTINS_ENUMERATE (0) +#define MICROPY_PY_BUILTINS_FILTER (0) #define MICROPY_PY_BUILTINS_FROZENSET (0) #define MICROPY_PY_BUILTINS_REVERSED (0) #define MICROPY_PY_BUILTINS_SET (0) diff --git a/py/modbuiltins.c b/py/modbuiltins.c index d0c6130d5f652db4c8994a837d607c05321df986..d9b9b496ef18b8a741d95c528d3e5c4feb1d9920 100644 --- a/py/modbuiltins.c +++ b/py/modbuiltins.c @@ -563,7 +563,9 @@ STATIC const mp_map_elem_t mp_module_builtins_globals_table[] = { #if MICROPY_PY_BUILTINS_ENUMERATE { MP_OBJ_NEW_QSTR(MP_QSTR_enumerate), (mp_obj_t)&mp_type_enumerate }, #endif + #if MICROPY_PY_BUILTINS_FILTER { MP_OBJ_NEW_QSTR(MP_QSTR_filter), (mp_obj_t)&mp_type_filter }, + #endif #if MICROPY_PY_BUILTINS_FLOAT { MP_OBJ_NEW_QSTR(MP_QSTR_float), (mp_obj_t)&mp_type_float }, #endif diff --git a/py/mpconfig.h b/py/mpconfig.h index bfa7a1f68de0aacdf10bac0676614e9a4c7fe09b..ce6fa6ceaee74c869e0a24102b103630ab6bb7bc 100644 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -500,6 +500,11 @@ typedef double mp_float_t; #define MICROPY_PY_BUILTINS_EXECFILE (0) #endif +// Whether to support filter function(type) +#ifndef MICROPY_PY_BUILTINS_FILTER +#define MICROPY_PY_BUILTINS_FILTER (1) +#endif + // Whether to support reversed function(type) #ifndef MICROPY_PY_BUILTINS_REVERSED #define MICROPY_PY_BUILTINS_REVERSED (1) diff --git a/py/objfilter.c b/py/objfilter.c index a97c9f554c24cbb0af6a1af76bf15bc1cb8018d2..9ed37f5986ce8998ca3e7958b0a3489f345103e6 100644 --- a/py/objfilter.c +++ b/py/objfilter.c @@ -26,6 +26,8 @@ #include "py/runtime.h" +#if MICROPY_PY_BUILTINS_FILTER + typedef struct _mp_obj_filter_t { mp_obj_base_t base; mp_obj_t fun; @@ -66,3 +68,5 @@ const mp_obj_type_t mp_type_filter = { .getiter = mp_identity, .iternext = filter_iternext, }; + +#endif // MICROPY_PY_BUILTINS_FILTER diff --git a/py/qstrdefs.h b/py/qstrdefs.h index ea107f5f4798eb3088919563ed08cb608905eb47..b95067bbf1b9b5b01188a458ba68900071a85ebf 100644 --- a/py/qstrdefs.h +++ b/py/qstrdefs.h @@ -205,7 +205,9 @@ Q(exec) #if MICROPY_PY_BUILTINS_EXECFILE Q(execfile) #endif +#if MICROPY_PY_BUILTINS_FILTER Q(filter) +#endif #if MICROPY_PY_BUILTINS_FLOAT Q(float) #endif diff --git a/unix/mpconfigport_minimal.h b/unix/mpconfigport_minimal.h index 770188a60842cb9afbac0b4fd9db5f573e1dfbe8..d7b908bc9ab155ce781730333233e978772e5d16 100644 --- a/unix/mpconfigport_minimal.h +++ b/unix/mpconfigport_minimal.h @@ -50,6 +50,7 @@ #define MICROPY_PY_BUILTINS_MEMORYVIEW (0) #define MICROPY_PY_BUILTINS_COMPILE (0) #define MICROPY_PY_BUILTINS_ENUMERATE (0) +#define MICROPY_PY_BUILTINS_FILTER (0) #define MICROPY_PY_BUILTINS_FROZENSET (0) #define MICROPY_PY_BUILTINS_REVERSED (0) #define MICROPY_PY_BUILTINS_SET (0)