cc3200, stmhal, teensy: Use pyhelp_print_obj function.
Update the help() implementations in the cc3200, stmhal and teensy ports to use the pyhelp_print_obj function.
This commit is contained in:
parent
2b46da234c
commit
104aa26271
@ -152,6 +152,7 @@ APP_LIB_SRC_C = $(addprefix lib/,\
|
|||||||
netutils/netutils.c \
|
netutils/netutils.c \
|
||||||
timeutils/timeutils.c \
|
timeutils/timeutils.c \
|
||||||
utils/pyexec.c \
|
utils/pyexec.c \
|
||||||
|
utils/pyhelp.c \
|
||||||
utils/printf.c \
|
utils/printf.c \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -27,21 +27,12 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "py/mpconfig.h"
|
#include "lib/utils/pyhelp.h"
|
||||||
#include "py/obj.h"
|
|
||||||
|
|
||||||
STATIC const char help_text[] = "Welcome to MicroPython!\n"
|
STATIC const char help_text[] = "Welcome to MicroPython!\n"
|
||||||
"For online help please visit http://micropython.org/help/.\n"
|
"For online help please visit http://micropython.org/help/.\n"
|
||||||
"For further help on a specific object, type help(obj)\n";
|
"For further help on a specific object, type help(obj)\n";
|
||||||
|
|
||||||
STATIC void pyb_help_print_info_about_object(mp_obj_t name_o, mp_obj_t value) {
|
|
||||||
printf(" ");
|
|
||||||
mp_obj_print(name_o, PRINT_STR);
|
|
||||||
printf(" -- ");
|
|
||||||
mp_obj_print(value, PRINT_STR);
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
|
STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
|
||||||
if (n_args == 0) {
|
if (n_args == 0) {
|
||||||
// print a general help message
|
// print a general help message
|
||||||
@ -49,31 +40,7 @@ STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// try to print something sensible about the given object
|
// try to print something sensible about the given object
|
||||||
printf("object ");
|
pyhelp_print_obj(args[0]);
|
||||||
mp_obj_print(args[0], PRINT_STR);
|
|
||||||
printf(" is of type %s\n", mp_obj_get_type_str(args[0]));
|
|
||||||
|
|
||||||
mp_map_t *map = NULL;
|
|
||||||
if (MP_OBJ_IS_TYPE(args[0], &mp_type_module)) {
|
|
||||||
map = mp_obj_dict_get_map(mp_obj_module_get_globals(args[0]));
|
|
||||||
} else {
|
|
||||||
mp_obj_type_t *type;
|
|
||||||
if (MP_OBJ_IS_TYPE(args[0], &mp_type_type)) {
|
|
||||||
type = args[0];
|
|
||||||
} else {
|
|
||||||
type = mp_obj_get_type(args[0]);
|
|
||||||
}
|
|
||||||
if (type->locals_dict != MP_OBJ_NULL && MP_OBJ_IS_TYPE(type->locals_dict, &mp_type_dict)) {
|
|
||||||
map = mp_obj_dict_get_map(type->locals_dict);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (map != NULL) {
|
|
||||||
for (uint i = 0; i < map->alloc; i++) {
|
|
||||||
if (map->table[i].key != MP_OBJ_NULL) {
|
|
||||||
pyb_help_print_info_about_object(map->table[i].key, map->table[i].value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
|
@ -110,6 +110,7 @@ SRC_LIB = $(addprefix lib/,\
|
|||||||
netutils/netutils.c \
|
netutils/netutils.c \
|
||||||
timeutils/timeutils.c \
|
timeutils/timeutils.c \
|
||||||
utils/pyexec.c \
|
utils/pyexec.c \
|
||||||
|
utils/pyhelp.c \
|
||||||
utils/printf.c \
|
utils/printf.c \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -26,8 +26,7 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "py/nlr.h"
|
#include "lib/utils/pyhelp.h"
|
||||||
#include "py/obj.h"
|
|
||||||
|
|
||||||
STATIC const char *help_text =
|
STATIC const char *help_text =
|
||||||
"Welcome to MicroPython!\n"
|
"Welcome to MicroPython!\n"
|
||||||
@ -72,14 +71,6 @@ STATIC const char *help_text =
|
|||||||
"For further help on a specific object, type help(obj)\n"
|
"For further help on a specific object, type help(obj)\n"
|
||||||
;
|
;
|
||||||
|
|
||||||
STATIC void pyb_help_print_info_about_object(mp_obj_t name_o, mp_obj_t value) {
|
|
||||||
printf(" ");
|
|
||||||
mp_obj_print(name_o, PRINT_STR);
|
|
||||||
printf(" -- ");
|
|
||||||
mp_obj_print(value, PRINT_STR);
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
|
STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
|
||||||
if (n_args == 0) {
|
if (n_args == 0) {
|
||||||
// print a general help message
|
// print a general help message
|
||||||
@ -87,32 +78,7 @@ STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// try to print something sensible about the given object
|
// try to print something sensible about the given object
|
||||||
|
pyhelp_print_obj(args[0]);
|
||||||
printf("object ");
|
|
||||||
mp_obj_print(args[0], PRINT_STR);
|
|
||||||
printf(" is of type %s\n", mp_obj_get_type_str(args[0]));
|
|
||||||
|
|
||||||
mp_map_t *map = NULL;
|
|
||||||
if (MP_OBJ_IS_TYPE(args[0], &mp_type_module)) {
|
|
||||||
map = mp_obj_dict_get_map(mp_obj_module_get_globals(args[0]));
|
|
||||||
} else {
|
|
||||||
mp_obj_type_t *type;
|
|
||||||
if (MP_OBJ_IS_TYPE(args[0], &mp_type_type)) {
|
|
||||||
type = args[0];
|
|
||||||
} else {
|
|
||||||
type = mp_obj_get_type(args[0]);
|
|
||||||
}
|
|
||||||
if (type->locals_dict != MP_OBJ_NULL && MP_OBJ_IS_TYPE(type->locals_dict, &mp_type_dict)) {
|
|
||||||
map = mp_obj_dict_get_map(type->locals_dict);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (map != NULL) {
|
|
||||||
for (uint i = 0; i < map->alloc; i++) {
|
|
||||||
if (map->table[i].key != MP_OBJ_NULL) {
|
|
||||||
pyb_help_print_info_about_object(map->table[i].key, map->table[i].value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
|
@ -109,6 +109,7 @@ LIB_SRC_C = $(addprefix lib/,\
|
|||||||
libc/string0.c \
|
libc/string0.c \
|
||||||
mp-readline/readline.c \
|
mp-readline/readline.c \
|
||||||
utils/pyexec.c \
|
utils/pyexec.c \
|
||||||
|
utils/pyhelp.c \
|
||||||
utils/printf.c \
|
utils/printf.c \
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "py/obj.h"
|
#include "lib/utils/pyhelp.h"
|
||||||
|
|
||||||
STATIC const char *help_text =
|
STATIC const char *help_text =
|
||||||
"Welcome to MicroPython!\n"
|
"Welcome to MicroPython!\n"
|
||||||
@ -70,14 +70,6 @@ STATIC const char *help_text =
|
|||||||
"For further help on a specific object, type help(obj)\n"
|
"For further help on a specific object, type help(obj)\n"
|
||||||
;
|
;
|
||||||
|
|
||||||
STATIC void pyb_help_print_info_about_object(mp_obj_t name_o, mp_obj_t value) {
|
|
||||||
printf(" ");
|
|
||||||
mp_obj_print(name_o, PRINT_STR);
|
|
||||||
printf(" -- ");
|
|
||||||
mp_obj_print(value, PRINT_STR);
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
|
STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
|
||||||
if (n_args == 0) {
|
if (n_args == 0) {
|
||||||
// print a general help message
|
// print a general help message
|
||||||
@ -85,32 +77,7 @@ STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
// try to print something sensible about the given object
|
// try to print something sensible about the given object
|
||||||
|
pyhelp_print_obj(args[0]);
|
||||||
printf("object ");
|
|
||||||
mp_obj_print(args[0], PRINT_STR);
|
|
||||||
printf(" is of type %s\n", mp_obj_get_type_str(args[0]));
|
|
||||||
|
|
||||||
mp_map_t *map = NULL;
|
|
||||||
if (MP_OBJ_IS_TYPE(args[0], &mp_type_module)) {
|
|
||||||
map = mp_obj_dict_get_map(mp_obj_module_get_globals(args[0]));
|
|
||||||
} else {
|
|
||||||
mp_obj_type_t *type;
|
|
||||||
if (MP_OBJ_IS_TYPE(args[0], &mp_type_type)) {
|
|
||||||
type = args[0];
|
|
||||||
} else {
|
|
||||||
type = mp_obj_get_type(args[0]);
|
|
||||||
}
|
|
||||||
if (type->locals_dict != MP_OBJ_NULL && MP_OBJ_IS_TYPE(type->locals_dict, &mp_type_dict)) {
|
|
||||||
map = mp_obj_dict_get_map(type->locals_dict);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (map != NULL) {
|
|
||||||
for (uint i = 0; i < map->alloc; i++) {
|
|
||||||
if (map->table[i].key != MP_OBJ_NULL) {
|
|
||||||
pyb_help_print_info_about_object(map->table[i].key, map->table[i].value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
|
Loading…
Reference in New Issue
Block a user