summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--cc3200/application.mk1
-rw-r--r--cc3200/misc/help.c37
-rw-r--r--stmhal/Makefile1
-rw-r--r--stmhal/help.c38
-rw-r--r--teensy/Makefile1
-rw-r--r--teensy/help.c37
6 files changed, 9 insertions, 106 deletions
diff --git a/cc3200/application.mk b/cc3200/application.mk
index 2eef3c8c32..b862212a54 100644
--- a/cc3200/application.mk
+++ b/cc3200/application.mk
@@ -152,6 +152,7 @@ APP_LIB_SRC_C = $(addprefix lib/,\
netutils/netutils.c \
timeutils/timeutils.c \
utils/pyexec.c \
+ utils/pyhelp.c \
utils/printf.c \
)
diff --git a/cc3200/misc/help.c b/cc3200/misc/help.c
index 9bbd711a88..4601818bda 100644
--- a/cc3200/misc/help.c
+++ b/cc3200/misc/help.c
@@ -27,21 +27,12 @@
#include <stdio.h>
-#include "py/mpconfig.h"
-#include "py/obj.h"
+#include "lib/utils/pyhelp.h"
STATIC const char help_text[] = "Welcome to MicroPython!\n"
"For online help please visit http://micropython.org/help/.\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) {
if (n_args == 0) {
// print a general help message
@@ -49,31 +40,7 @@ STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
}
else {
// try to print something sensible about the given object
- 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);
- }
- }
- }
+ pyhelp_print_obj(args[0]);
}
return mp_const_none;
}
diff --git a/stmhal/Makefile b/stmhal/Makefile
index 1b4b78e43e..fffedd326c 100644
--- a/stmhal/Makefile
+++ b/stmhal/Makefile
@@ -110,6 +110,7 @@ SRC_LIB = $(addprefix lib/,\
netutils/netutils.c \
timeutils/timeutils.c \
utils/pyexec.c \
+ utils/pyhelp.c \
utils/printf.c \
)
diff --git a/stmhal/help.c b/stmhal/help.c
index 32837972f0..21e81ebc0e 100644
--- a/stmhal/help.c
+++ b/stmhal/help.c
@@ -26,8 +26,7 @@
#include <stdio.h>
-#include "py/nlr.h"
-#include "py/obj.h"
+#include "lib/utils/pyhelp.h"
STATIC const char *help_text =
"Welcome to MicroPython!\n"
@@ -72,14 +71,6 @@ STATIC const char *help_text =
"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) {
if (n_args == 0) {
// print a general help message
@@ -87,32 +78,7 @@ STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
} else {
// try to print something sensible about the given object
-
- 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);
- }
- }
- }
+ pyhelp_print_obj(args[0]);
}
return mp_const_none;
diff --git a/teensy/Makefile b/teensy/Makefile
index de7036571f..7b34ba90e2 100644
--- a/teensy/Makefile
+++ b/teensy/Makefile
@@ -109,6 +109,7 @@ LIB_SRC_C = $(addprefix lib/,\
libc/string0.c \
mp-readline/readline.c \
utils/pyexec.c \
+ utils/pyhelp.c \
utils/printf.c \
)
diff --git a/teensy/help.c b/teensy/help.c
index d8fe3a1d9c..147347fc22 100644
--- a/teensy/help.c
+++ b/teensy/help.c
@@ -26,7 +26,7 @@
#include <stdio.h>
-#include "py/obj.h"
+#include "lib/utils/pyhelp.h"
STATIC const char *help_text =
"Welcome to MicroPython!\n"
@@ -70,14 +70,6 @@ STATIC const char *help_text =
"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) {
if (n_args == 0) {
// print a general help message
@@ -85,32 +77,7 @@ STATIC mp_obj_t pyb_help(uint n_args, const mp_obj_t *args) {
} else {
// try to print something sensible about the given object
-
- 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);
- }
- }
- }
+ pyhelp_print_obj(args[0]);
}
return mp_const_none;