summaryrefslogtreecommitdiff
path: root/py/runtime.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2018-02-20 18:00:44 +1100
committerDamien George <damien.p.george@gmail.com>2018-02-20 18:00:44 +1100
commit209936880df4d63730ea77cf4b6f84e5f2f56d7c (patch)
tree3799e168efc951c01d34c088253da895587a4675 /py/runtime.c
parent6e7819ee2ee20ec9f09feb40b68be5973797f874 (diff)
py/builtinimport: Add compile-time option to disable external imports.
The new option is MICROPY_ENABLE_EXTERNAL_IMPORT and is enabled by default so that the default behaviour is the same as before. With it disabled import is only supported for built-in modules, not for external files nor frozen modules. This allows to support targets that have no filesystem of any kind and that only have access to pre-supplied built-in modules implemented natively.
Diffstat (limited to 'py/runtime.c')
-rw-r--r--py/runtime.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/py/runtime.c b/py/runtime.c
index 9dff9847a..65d0df639 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -1337,6 +1337,8 @@ import_error:
return dest[0];
}
+ #if MICROPY_ENABLE_EXTERNAL_IMPORT
+
// See if it's a package, then can try FS import
if (!mp_obj_is_package(module)) {
goto import_error;
@@ -1363,6 +1365,13 @@ import_error:
// TODO lookup __import__ and call that instead of going straight to builtin implementation
return mp_builtin___import__(5, args);
+
+ #else
+
+ // Package import not supported with external imports disabled
+ goto import_error;
+
+ #endif
}
void mp_import_all(mp_obj_t module) {