From 1d938c9503ec794d4cbd4ceb5daf07eeb5a36d7a Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Tue, 4 Feb 2014 00:46:17 +0200
Subject: [PATCH] Expose __import__() function.

---
 py/builtin.h       | 1 +
 py/builtinimport.c | 1 +
 py/qstrdefs.h      | 1 +
 py/runtime.c       | 1 +
 4 files changed, 4 insertions(+)

diff --git a/py/builtin.h b/py/builtin.h
index 933776f53..e49e839a6 100644
--- a/py/builtin.h
+++ b/py/builtin.h
@@ -1,6 +1,7 @@
 mp_obj_t mp_builtin___import__(int n_args, mp_obj_t *args);
 
 MP_DECLARE_CONST_FUN_OBJ(mp_builtin___build_class___obj);
+MP_DECLARE_CONST_FUN_OBJ(mp_builtin___import___obj);
 MP_DECLARE_CONST_FUN_OBJ(mp_builtin___repl_print___obj);
 MP_DECLARE_CONST_FUN_OBJ(mp_builtin_abs_obj);
 MP_DECLARE_CONST_FUN_OBJ(mp_builtin_all_obj);
diff --git a/py/builtinimport.c b/py/builtinimport.c
index 35e7dcbb8..a5deed392 100644
--- a/py/builtinimport.c
+++ b/py/builtinimport.c
@@ -95,3 +95,4 @@ mp_obj_t mp_builtin___import__(int n_args, mp_obj_t *args) {
 
     return module_obj;
 }
+MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin___import___obj, 1, 5, mp_builtin___import__);
diff --git a/py/qstrdefs.h b/py/qstrdefs.h
index b273ac445..b246c5b42 100644
--- a/py/qstrdefs.h
+++ b/py/qstrdefs.h
@@ -4,6 +4,7 @@
 Q(__build_class__)
 Q(__class__)
 Q(__doc__)
+Q(__import__)
 Q(__init__)
 Q(__locals__)
 Q(__main__)
diff --git a/py/runtime.c b/py/runtime.c
index 836a07254..74c55ea6c 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -110,6 +110,7 @@ void rt_init(void) {
 
     // built-in core functions
     mp_map_add_qstr(&map_builtins, MP_QSTR___build_class__, (mp_obj_t)&mp_builtin___build_class___obj);
+    mp_map_add_qstr(&map_builtins, MP_QSTR___import__, (mp_obj_t)&mp_builtin___import___obj);
     mp_map_add_qstr(&map_builtins, MP_QSTR___repl_print__, (mp_obj_t)&mp_builtin___repl_print___obj);
 
     // built-in types
-- 
GitLab