Skip to content

Commit a80ff04

Browse files
committed
Add dummy bytes() constructor.
Currently, MicroPython strings are mix between CPython byte and unicode strings. So, conversion is null so far. This dummy implementation is intended for compatibility with CPython (so, same code can run on both).
1 parent f0cfb8c commit a80ff04

4 files changed

Lines changed: 15 additions & 0 deletions

File tree

py/builtin.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,3 +347,15 @@ static mp_obj_t mp_builtin_str(mp_obj_t o_in) {
347347
}
348348

349349
MP_DEFINE_CONST_FUN_OBJ_1(mp_builtin_str_obj, mp_builtin_str);
350+
351+
// TODO: This should be type, this is just quick CPython compat hack
352+
static mp_obj_t mp_builtin_bytes(uint n_args, const mp_obj_t *args) {
353+
if (!MP_OBJ_IS_QSTR(args[0]) && !MP_OBJ_IS_TYPE(args[0], &str_type)) {
354+
assert(0);
355+
}
356+
// Currently, MicroPython strings are mix between CPython byte and unicode
357+
// strings. So, conversion is null so far.
358+
return args[0];
359+
}
360+
361+
MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mp_builtin_bytes_obj, 1, 3, mp_builtin_bytes);

py/builtin.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ MP_DECLARE_CONST_FUN_OBJ(mp_builtin___repl_print___obj);
55
MP_DECLARE_CONST_FUN_OBJ(mp_builtin_abs_obj);
66
MP_DECLARE_CONST_FUN_OBJ(mp_builtin_all_obj);
77
MP_DECLARE_CONST_FUN_OBJ(mp_builtin_any_obj);
8+
MP_DECLARE_CONST_FUN_OBJ(mp_builtin_bytes_obj); // Temporary hack
89
MP_DECLARE_CONST_FUN_OBJ(mp_builtin_callable_obj);
910
MP_DECLARE_CONST_FUN_OBJ(mp_builtin_chr_obj);
1011
MP_DECLARE_CONST_FUN_OBJ(mp_builtin_divmod_obj);

py/mpqstrraw.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ Q(any)
4040
Q(array)
4141
Q(bool)
4242
Q(bytearray)
43+
Q(bytes)
4344
Q(callable)
4445
Q(chr)
4546
Q(complex)

py/runtime.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ void rt_init(void) {
130130
mp_map_add_qstr(&map_builtins, MP_QSTR_abs, (mp_obj_t)&mp_builtin_abs_obj);
131131
mp_map_add_qstr(&map_builtins, MP_QSTR_all, (mp_obj_t)&mp_builtin_all_obj);
132132
mp_map_add_qstr(&map_builtins, MP_QSTR_any, (mp_obj_t)&mp_builtin_any_obj);
133+
mp_map_add_qstr(&map_builtins, MP_QSTR_bytes, (mp_obj_t)&mp_builtin_bytes_obj);
133134
mp_map_add_qstr(&map_builtins, MP_QSTR_callable, (mp_obj_t)&mp_builtin_callable_obj);
134135
mp_map_add_qstr(&map_builtins, MP_QSTR_chr, (mp_obj_t)&mp_builtin_chr_obj);
135136
mp_map_add_qstr(&map_builtins, MP_QSTR_divmod, (mp_obj_t)&mp_builtin_divmod_obj);

0 commit comments

Comments
 (0)