@@ -63,6 +63,8 @@ STATIC mp_obj_t array_iterator_new(mp_obj_t array_in, mp_obj_iter_buf_t *iter_bu
63
63
STATIC mp_obj_t array_append (mp_obj_t self_in , mp_obj_t arg );
64
64
STATIC mp_obj_t array_extend (mp_obj_t self_in , mp_obj_t arg_in );
65
65
STATIC mp_int_t array_get_buffer (mp_obj_t o_in , mp_buffer_info_t * bufinfo , mp_uint_t flags );
66
+ STATIC mp_obj_t array_decode (size_t n_args , const mp_obj_t * args );
67
+
66
68
67
69
/******************************************************************************/
68
70
// array
@@ -546,10 +548,30 @@ STATIC mp_int_t array_get_buffer(mp_obj_t o_in, mp_buffer_info_t *bufinfo, mp_ui
546
548
return 0 ;
547
549
}
548
550
551
+
552
+ #if MICROPY_CPYTHON_COMPAT
553
+ // Directly lifted from objstr.c
554
+ STATIC mp_obj_t array_decode (size_t n_args , const mp_obj_t * args ) {
555
+ mp_obj_t new_args [2 ];
556
+ if (n_args == 1 ) {
557
+ new_args [0 ] = args [0 ];
558
+ new_args [1 ] = MP_OBJ_NEW_QSTR (MP_QSTR_utf_hyphen_8 );
559
+ args = new_args ;
560
+ n_args ++ ;
561
+ }
562
+ return mp_obj_str_make_new (& mp_type_str , n_args , args , NULL );
563
+ }
564
+ MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (array_decode_obj , 1 , 3 , array_decode );
565
+ #endif
566
+
567
+
549
568
#if MICROPY_PY_BUILTINS_BYTEARRAY || MICROPY_PY_ARRAY
550
569
STATIC const mp_rom_map_elem_t array_locals_dict_table [] = {
551
570
{ MP_ROM_QSTR (MP_QSTR_append ), MP_ROM_PTR (& array_append_obj ) },
552
571
{ MP_ROM_QSTR (MP_QSTR_extend ), MP_ROM_PTR (& array_extend_obj ) },
572
+ #if MICROPY_CPYTHON_COMPAT
573
+ { MP_ROM_QSTR (MP_QSTR_decode ), MP_ROM_PTR (& array_decode_obj ) },
574
+ #endif
553
575
};
554
576
555
577
STATIC MP_DEFINE_CONST_DICT (array_locals_dict , array_locals_dict_table );
0 commit comments