Skip to content

Commit 5076e5c

Browse files
committed
py: Add "delattr" builtin, conditional on MICROPY_CPYTHON_COMPAT.
1 parent bc5b896 commit 5076e5c

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

py/builtin.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_bin_obj);
4242
MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_callable_obj);
4343
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_compile_obj);
4444
MP_DECLARE_CONST_FUN_OBJ_1(mp_builtin_chr_obj);
45+
MP_DECLARE_CONST_FUN_OBJ_2(mp_builtin_delattr_obj);
4546
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_dir_obj);
4647
MP_DECLARE_CONST_FUN_OBJ_2(mp_builtin_divmod_obj);
4748
MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_eval_obj);

py/modbuiltins.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,13 @@ STATIC mp_obj_t mp_builtin_setattr(mp_obj_t base, mp_obj_t attr, mp_obj_t value)
542542
}
543543
MP_DEFINE_CONST_FUN_OBJ_3(mp_builtin_setattr_obj, mp_builtin_setattr);
544544

545+
#if MICROPY_CPYTHON_COMPAT
546+
STATIC mp_obj_t mp_builtin_delattr(mp_obj_t base, mp_obj_t attr) {
547+
return mp_builtin_setattr(base, attr, MP_OBJ_NULL);
548+
}
549+
MP_DEFINE_CONST_FUN_OBJ_2(mp_builtin_delattr_obj, mp_builtin_delattr);
550+
#endif
551+
545552
STATIC mp_obj_t mp_builtin_hasattr(mp_obj_t object_in, mp_obj_t attr_in) {
546553
qstr attr = mp_obj_str_get_qstr(attr_in);
547554

@@ -645,6 +652,9 @@ STATIC const mp_rom_map_elem_t mp_module_builtins_globals_table[] = {
645652
{ MP_ROM_QSTR(MP_QSTR_compile), MP_ROM_PTR(&mp_builtin_compile_obj) },
646653
#endif
647654
{ MP_ROM_QSTR(MP_QSTR_chr), MP_ROM_PTR(&mp_builtin_chr_obj) },
655+
#if MICROPY_CPYTHON_COMPAT
656+
{ MP_ROM_QSTR(MP_QSTR_delattr), MP_ROM_PTR(&mp_builtin_delattr_obj) },
657+
#endif
648658
{ MP_ROM_QSTR(MP_QSTR_dir), MP_ROM_PTR(&mp_builtin_dir_obj) },
649659
{ MP_ROM_QSTR(MP_QSTR_divmod), MP_ROM_PTR(&mp_builtin_divmod_obj) },
650660
#if MICROPY_PY_BUILTINS_EVAL_EXEC

0 commit comments

Comments
 (0)