summaryrefslogtreecommitdiffstatshomepage
path: root/py/objnamedtuple.c
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-03-23 22:44:16 +0200
committerPaul Sokolovsky <pfalcon@users.sourceforge.net>2015-03-23 22:45:14 +0200
commit44cd46a7e4e8a2b7666f6fe356adfe19daa6b1e6 (patch)
tree857a1efb998108df283c0d7b0af44ddf393831da /py/objnamedtuple.c
parent870517123333bb23751332ea6e5a65f690423971 (diff)
downloadmicropython-44cd46a7e4e8a2b7666f6fe356adfe19daa6b1e6.tar.gz
micropython-44cd46a7e4e8a2b7666f6fe356adfe19daa6b1e6.zip
objnamedtuple: Accept field list as a string.
This change is required to unbreak some CPython stdlib modules (as included into micropython-lib).
Diffstat (limited to 'py/objnamedtuple.c')
-rw-r--r--py/objnamedtuple.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/py/objnamedtuple.c b/py/objnamedtuple.c
index 4bb0c0ae00..1996b41219 100644
--- a/py/objnamedtuple.c
+++ b/py/objnamedtuple.c
@@ -30,6 +30,7 @@
#include "py/nlr.h"
#include "py/objtuple.h"
#include "py/runtime.h"
+#include "py/objstr.h"
#if MICROPY_PY_COLLECTIONS
@@ -169,6 +170,11 @@ STATIC mp_obj_t new_namedtuple_type(mp_obj_t name_in, mp_obj_t fields_in) {
qstr name = mp_obj_str_get_qstr(name_in);
mp_uint_t n_fields;
mp_obj_t *fields;
+ #if MICROPY_CPYTHON_COMPAT
+ if (MP_OBJ_IS_STR(fields_in)) {
+ fields_in = mp_obj_str_split(1, &fields_in);
+ }
+ #endif
if (!MP_OBJ_IS_TYPE(fields_in, &mp_type_list)) {
nlr_raise(mp_obj_new_exception_msg(&mp_type_TypeError, "list required"));
}