py: Add "delattr" builtin, conditional on MICROPY_CPYTHON_COMPAT.
This commit is contained in:
parent
bc5b896f24
commit
5076e5c339
|
@ -42,6 +42,7 @@ MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_bin_obj);
|
||||||
MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_callable_obj);
|
MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_callable_obj);
|
||||||
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_compile_obj);
|
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_compile_obj);
|
||||||
MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_chr_obj);
|
MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_chr_obj);
|
||||||
|
MP_DECLARE_CONST_FUN_OBJ_2(mp_builtin_delattr_obj);
|
||||||
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_dir_obj);
|
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_dir_obj);
|
||||||
MP_DECLARE_CONST_FUN_OBJ_2(mp_builtin_divmod_obj);
|
MP_DECLARE_CONST_FUN_OBJ_2(mp_builtin_divmod_obj);
|
||||||
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_eval_obj);
|
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_eval_obj);
|
||||||
|
|
|
@ -542,6 +542,13 @@ STATIC mp_obj_t mp_builtin_setattr(mp_obj_t base, mp_obj_t attr, mp_obj_t value)
|
||||||
}
|
}
|
||||||
MP_DEFINE_CONST_FUN_OBJ_3(mp_builtin_setattr_obj, mp_builtin_setattr);
|
MP_DEFINE_CONST_FUN_OBJ_3(mp_builtin_setattr_obj, mp_builtin_setattr);
|
||||||
|
|
||||||
|
#if MICROPY_CPYTHON_COMPAT
|
||||||
|
STATIC mp_obj_t mp_builtin_delattr(mp_obj_t base, mp_obj_t attr) {
|
||||||
|
return mp_builtin_setattr(base, attr, MP_OBJ_NULL);
|
||||||
|
}
|
||||||
|
MP_DEFINE_CONST_FUN_OBJ_2(mp_builtin_delattr_obj, mp_builtin_delattr);
|
||||||
|
#endif
|
||||||
|
|
||||||
STATIC mp_obj_t mp_builtin_hasattr(mp_obj_t object_in, mp_obj_t attr_in) {
|
STATIC mp_obj_t mp_builtin_hasattr(mp_obj_t object_in, mp_obj_t attr_in) {
|
||||||
qstr attr = mp_obj_str_get_qstr(attr_in);
|
qstr attr = mp_obj_str_get_qstr(attr_in);
|
||||||
|
|
||||||
|
@ -645,6 +652,9 @@ STATIC const mp_rom_map_elem_t mp_module_builtins_globals_table[] = {
|
||||||
{ MP_ROM_QSTR(MP_QSTR_compile), MP_ROM_PTR(&mp_builtin_compile_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_compile), MP_ROM_PTR(&mp_builtin_compile_obj) },
|
||||||
#endif
|
#endif
|
||||||
{ MP_ROM_QSTR(MP_QSTR_chr), MP_ROM_PTR(&mp_builtin_chr_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_chr), MP_ROM_PTR(&mp_builtin_chr_obj) },
|
||||||
|
#if MICROPY_CPYTHON_COMPAT
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_delattr), MP_ROM_PTR(&mp_builtin_delattr_obj) },
|
||||||
|
#endif
|
||||||
{ MP_ROM_QSTR(MP_QSTR_dir), MP_ROM_PTR(&mp_builtin_dir_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_dir), MP_ROM_PTR(&mp_builtin_dir_obj) },
|
||||||
{ MP_ROM_QSTR(MP_QSTR_divmod), MP_ROM_PTR(&mp_builtin_divmod_obj) },
|
{ MP_ROM_QSTR(MP_QSTR_divmod), MP_ROM_PTR(&mp_builtin_divmod_obj) },
|
||||||
#if MICROPY_PY_BUILTINS_EVAL_EXEC
|
#if MICROPY_PY_BUILTINS_EVAL_EXEC
|
||||||
|
|
Loading…
Reference in New Issue