diff options
Diffstat (limited to 'py')
-rw-r--r-- | py/modbuiltins.c | 3 | ||||
-rw-r--r-- | py/mpconfig.h | 5 | ||||
-rw-r--r-- | py/obj.c | 8 | ||||
-rw-r--r-- | py/qstrdefs.h | 3 |
4 files changed, 19 insertions, 0 deletions
diff --git a/py/modbuiltins.c b/py/modbuiltins.c index 455e1cc1b6..9b5bd4c5ed 100644 --- a/py/modbuiltins.c +++ b/py/modbuiltins.c @@ -634,6 +634,9 @@ STATIC const mp_map_elem_t mp_module_builtins_globals_table[] = { // built-in objects { MP_OBJ_NEW_QSTR(MP_QSTR_Ellipsis), (mp_obj_t)&mp_const_ellipsis_obj }, + #if MICROPY_PY_BUILTINS_NOTIMPLEMENTED + { MP_OBJ_NEW_QSTR(MP_QSTR_NotImplemented), MP_OBJ_SENTINEL }, + #endif // built-in user functions { MP_OBJ_NEW_QSTR(MP_QSTR_abs), (mp_obj_t)&mp_builtin_abs_obj }, diff --git a/py/mpconfig.h b/py/mpconfig.h index a5aacc8b0e..560fdce9ce 100644 --- a/py/mpconfig.h +++ b/py/mpconfig.h @@ -479,6 +479,11 @@ typedef double mp_float_t; #define MICROPY_PY_BUILTINS_REVERSED (1) #endif +// Whether to define "NotImplemented" special constant +#ifndef MICROPY_PY_BUILTINS_NOTIMPLEMENTED +#define MICROPY_PY_BUILTINS_NOTIMPLEMENTED (0) +#endif + // Whether to set __file__ for imported modules #ifndef MICROPY_PY___FILE__ #define MICROPY_PY___FILE__ (1) @@ -62,6 +62,14 @@ void mp_obj_print_helper(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t return; } #endif + + #if MICROPY_PY_BUILTINS_NOTIMPLEMENTED + if (o_in == MP_OBJ_SENTINEL) { + mp_printf(print, "%q", MP_QSTR_NotImplemented); + return; + } + #endif + mp_obj_type_t *type = mp_obj_get_type(o_in); if (type->print != NULL) { type->print((mp_print_t*)print, o_in, kind); diff --git a/py/qstrdefs.h b/py/qstrdefs.h index 77277c095f..5d0dc9d274 100644 --- a/py/qstrdefs.h +++ b/py/qstrdefs.h @@ -115,6 +115,9 @@ Q(builtins) Q(Ellipsis) Q(StopIteration) +#if MICROPY_PY_BUILTINS_NOTIMPLEMENTED +Q(NotImplemented) +#endif Q(BaseException) Q(ArithmeticError) |