py: Add support to call __init__ from a builtin module on first import.
diff --git a/py/objmodule.c b/py/objmodule.c
index 940a8da..63cccde 100644
--- a/py/objmodule.c
+++ b/py/objmodule.c
@@ -215,6 +215,17 @@
if (el == NULL) {
return MP_OBJ_NULL;
}
+
+ if (MICROPY_MODULE_BUILTIN_INIT) {
+ // look for __init__ and call it if it exists
+ mp_obj_t dest[2];
+ mp_load_method_maybe(el->value, MP_QSTR___init__, dest);
+ if (dest[0] != MP_OBJ_NULL) {
+ mp_call_method_n_kw(0, 0, dest);
+ // register module so __init__ is not called again
+ mp_module_register(module_name, el->value);
+ }
+ }
}
// module found, return it