diff --git a/Lib/test/test_future.py b/Lib/test/test_future.py index fd468b57b4..d83c47ef15 100644 --- a/Lib/test/test_future.py +++ b/Lib/test/test_future.py @@ -256,6 +256,11 @@ class AnnotationsFutureTestCase(unittest.TestCase): eq("slice[:-1]") eq("slice[1:]") eq("slice[::-1]") + eq("slice[:,]") + eq("slice[1:2,]") + eq("slice[1:2:3,]") + eq("slice[1:2, 1]") + eq("slice[1:2, 2, 3]") eq("slice[()]") eq("slice[a, b:c, d:e:f]") eq("slice[(x for x in a)]") diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-02-02-00-12-07.bpo-39520.uicBq6.rst b/Misc/NEWS.d/next/Core and Builtins/2020-02-02-00-12-07.bpo-39520.uicBq6.rst new file mode 100644 index 0000000000..dec67656fa --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2020-02-02-00-12-07.bpo-39520.uicBq6.rst @@ -0,0 +1,2 @@ +Fix unparsing of ext slices with no items (``foo[:,]``). Patch by Batuhan +Taskaya. diff --git a/Python/ast_unparse.c b/Python/ast_unparse.c index f376e86ddc..1a7cd236aa 100644 --- a/Python/ast_unparse.c +++ b/Python/ast_unparse.c @@ -746,6 +746,7 @@ append_ast_ext_slice(_PyUnicodeWriter *writer, slice_ty slice) APPEND_STR_IF(i > 0, ", "); APPEND(slice, (slice_ty)asdl_seq_GET(slice->v.ExtSlice.dims, i)); } + APPEND_STR_IF(dims_count == 1, ","); return 0; }