summaryrefslogtreecommitdiff
path: root/py/objlist.c
diff options
context:
space:
mode:
authorPeter Züger <zueger.peter@icloud.com>2021-02-03 09:24:25 +0100
committerDamien George <damien@micropython.org>2021-08-07 13:52:16 +1000
commitffc854f17f1c4a3a9904fa8909f0b6ab5385206f (patch)
tree889276a0ee111c6f771248e32ab1a6b07b3f2890 /py/objlist.c
parent8616129f2e382310802950db066178648a9429a3 (diff)
extmod/modujson: Add support for dump/dumps separators keyword-argument.
Optionally enabled via MICROPY_PY_UJSON_SEPARATORS. Enabled by default. For dump, make sure mp_get_stream_raise is called after mod_ujson_separators since CPython does it in this order (if both separators and stream are invalid, separators will raise an exception first). Add separators argument in the docs as well. Signed-off-by: Peter Züger <zueger.peter@icloud.com> Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'py/objlist.c')
-rw-r--r--py/objlist.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/py/objlist.c b/py/objlist.c
index 8c989facc..f431e273d 100644
--- a/py/objlist.c
+++ b/py/objlist.c
@@ -44,13 +44,18 @@ STATIC mp_obj_t list_pop(size_t n_args, const mp_obj_t *args);
STATIC void list_print(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t kind) {
mp_obj_list_t *o = MP_OBJ_TO_PTR(o_in);
+ const char *item_separator = ", ";
if (!(MICROPY_PY_UJSON && kind == PRINT_JSON)) {
kind = PRINT_REPR;
+ } else {
+ #if MICROPY_PY_UJSON_SEPARATORS
+ item_separator = MP_PRINT_GET_EXT(print)->item_separator;
+ #endif
}
mp_print_str(print, "[");
for (size_t i = 0; i < o->len; i++) {
if (i > 0) {
- mp_print_str(print, ", ");
+ mp_print_str(print, item_separator);
}
mp_obj_print_helper(print, o->items[i], kind);
}