Skip to content

Commit 26283dc

Browse files
authored
Merge pull request #9940 from dhalbert/from-bytes-to-bytes-omit-byteorder
2 parents af2c232 + d0b8646 commit 26283dc

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

py/objint.c

+8-4
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,8 @@ static mp_obj_t int_from_bytes(size_t n_args, const mp_obj_t *pos_args, mp_map_t
490490
enum { ARG_bytes, ARG_byteorder, ARG_signed };
491491
static const mp_arg_t allowed_args[] = {
492492
{ MP_QSTR_bytes, MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = NULL} },
493-
{ MP_QSTR_byteorder, MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = NULL} },
493+
// CIRCUITPY-CHANGE: not required and given a default value.
494+
{ MP_QSTR_byteorder, MP_ARG_OBJ, {.u_obj = MP_OBJ_NEW_QSTR(MP_QSTR_big)} },
494495
{ MP_QSTR_signed, MP_ARG_KW_ONLY | MP_ARG_BOOL, {.u_bool = false} },
495496
};
496497
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
@@ -527,15 +528,17 @@ static mp_obj_t int_from_bytes(size_t n_args, const mp_obj_t *pos_args, mp_map_t
527528
return mp_obj_new_int_from_uint(value);
528529
}
529530

530-
static MP_DEFINE_CONST_FUN_OBJ_KW(int_from_bytes_fun_obj, 3, int_from_bytes);
531+
// CIRCUITPY-CHANGE: only two required args.
532+
static MP_DEFINE_CONST_FUN_OBJ_KW(int_from_bytes_fun_obj, 2, int_from_bytes);
531533
static MP_DEFINE_CONST_CLASSMETHOD_OBJ(int_from_bytes_obj, MP_ROM_PTR(&int_from_bytes_fun_obj));
532534

533535
// CIRCUITPY-CHANGE: supports signed
534536
static mp_obj_t int_to_bytes(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
535537
enum { ARG_length, ARG_byteorder, ARG_signed };
536538
static const mp_arg_t allowed_args[] = {
537539
{ MP_QSTR_length, MP_ARG_REQUIRED | MP_ARG_INT, {.u_int = 0} },
538-
{ MP_QSTR_byteorder, MP_ARG_REQUIRED | MP_ARG_OBJ, {.u_obj = MP_OBJ_NULL} },
540+
// CIRCUITPY-CHANGE: not required and given a default value.
541+
{ MP_QSTR_byteorder, MP_ARG_OBJ, {.u_obj = MP_OBJ_NEW_QSTR(MP_QSTR_big)} },
539542
{ MP_QSTR_signed, MP_ARG_KW_ONLY | MP_ARG_BOOL, {.u_bool = false} },
540543
};
541544
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
@@ -575,7 +578,8 @@ static mp_obj_t int_to_bytes(size_t n_args, const mp_obj_t *pos_args, mp_map_t *
575578

576579
return mp_obj_new_bytes_from_vstr(&vstr);
577580
}
578-
static MP_DEFINE_CONST_FUN_OBJ_KW(int_to_bytes_obj, 3, int_to_bytes);
581+
// CIRCUITPY-CHANGE: only two required args.
582+
static MP_DEFINE_CONST_FUN_OBJ_KW(int_to_bytes_obj, 2, int_to_bytes);
579583

580584
static const mp_rom_map_elem_t int_locals_dict_table[] = {
581585
// CIRCUITPY-CHANGE

tests/basics/int_bytes.py

+4
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,7 @@
4343
(-256).to_bytes(2, "little", signed=False)
4444
except OverflowError:
4545
print("OverflowError")
46+
47+
# byteorder arg can be omitted; default is "big"
48+
print(int.from_bytes(b"\x01\0"))
49+
print((100).to_bytes(10))

0 commit comments

Comments
 (0)