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