Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
da1ce93d
Commit
da1ce93d
authored
Feb 14, 2014
by
Paul Sokolovsky
Browse files
Implement "from module import *" construct.
parent
a8d404e0
Changes
4
Hide whitespace changes
Inline
Side-by-side
py/runtime.c
View file @
da1ce93d
...
...
@@ -1016,6 +1016,17 @@ mp_obj_t rt_import_from(mp_obj_t module, qstr name) {
return
x
;
}
void
rt_import_all
(
mp_obj_t
module
)
{
DEBUG_printf
(
"import all %p
\n
"
,
module
);
mp_map_t
*
map
=
mp_obj_module_get_globals
(
module
);
for
(
uint
i
=
0
;
i
<
map
->
alloc
;
i
++
)
{
if
(
map
->
table
[
i
].
key
!=
MP_OBJ_NULL
)
{
rt_store_name
(
MP_OBJ_QSTR_VALUE
(
map
->
table
[
i
].
key
),
map
->
table
[
i
].
value
);
}
}
}
mp_map_t
*
rt_locals_get
(
void
)
{
return
map_locals
;
}
...
...
py/runtime.h
View file @
da1ce93d
...
...
@@ -39,6 +39,7 @@ mp_obj_t rt_getiter(mp_obj_t o);
mp_obj_t
rt_iternext
(
mp_obj_t
o
);
mp_obj_t
rt_import_name
(
qstr
name
,
mp_obj_t
fromlist
,
mp_obj_t
level
);
mp_obj_t
rt_import_from
(
mp_obj_t
module
,
qstr
name
);
void
rt_import_all
(
mp_obj_t
module
);
struct
_mp_map_t
;
struct
_mp_map_t
*
rt_locals_get
(
void
);
...
...
py/showbc.c
View file @
da1ce93d
...
...
@@ -390,6 +390,10 @@ void mp_byte_code_print(const byte *ip, int len) {
printf
(
"IMPORT_FROM %s"
,
qstr_str
(
qstr
));
break
;
case
MP_BC_IMPORT_STAR
:
printf
(
"IMPORT_STAR"
);
break
;
default:
printf
(
"code %p, byte code 0x%02x not implemented
\n
"
,
ip
,
op
);
assert
(
0
);
...
...
py/vm.c
View file @
da1ce93d
...
...
@@ -595,6 +595,10 @@ unwind_return:
PUSH
(
obj1
);
break
;
case
MP_BC_IMPORT_STAR
:
rt_import_all
(
TOP
());
break
;
default:
printf
(
"code %p, byte code 0x%02x not implemented
\n
"
,
ip
,
op
);
assert
(
0
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment