self.check_roundtrip(r"""{**{'y': 2}, 'x': 1}""")
self.check_roundtrip(r"""{**{'y': 2}, **{'x': 1}}""")
+ def test_subscript(self):
+ self.check_roundtrip("a[i]")
+ self.check_roundtrip("a[i,]")
+ self.check_roundtrip("a[i, j]")
+ self.check_roundtrip("a[()]")
+ self.check_roundtrip("a[i:j]")
+ self.check_roundtrip("a[:j]")
+ self.check_roundtrip("a[i:]")
+ self.check_roundtrip("a[i:j:k]")
+ self.check_roundtrip("a[:j:k]")
+ self.check_roundtrip("a[i::k]")
+ self.check_roundtrip("a[i:j,]")
+ self.check_roundtrip("a[i:j, k]")
+
class DirectoryTestCase(ASTTestCase):
"""Test roundtrip behaviour on all files in Lib and Lib/test."""
def _Subscript(self, t):
self.dispatch(t.value)
self.write("[")
- self.dispatch(t.slice)
+ if (isinstance(t.slice, ast.Index)
+ and isinstance(t.slice.value, ast.Tuple)
+ and t.slice.value.elts):
+ if len(t.slice.value.elts) == 1:
+ elt = t.slice.value.elts[0]
+ self.dispatch(elt)
+ self.write(",")
+ else:
+ interleave(lambda: self.write(", "), self.dispatch, t.slice.value.elts)
+ else:
+ self.dispatch(t.slice)
self.write("]")
def _Starred(self, t):
self.dispatch(t.step)
def _ExtSlice(self, t):
- interleave(lambda: self.write(', '), self.dispatch, t.dims)
+ if len(t.dims) == 1:
+ elt = t.dims[0]
+ self.dispatch(elt)
+ self.write(",")
+ else:
+ interleave(lambda: self.write(', '), self.dispatch, t.dims)
# argument
def _arg(self, t):