diff options
| author | Serhiy Storchaka <storchaka@gmail.com> | 2020-03-07 18:55:32 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-07 18:55:32 +0200 |
| commit | 92b72788ecf2ee5dfac780c7dfb5ee5350fc641d (patch) | |
| tree | 275b322f60b15b95649a6687d787583019009e23 /Tools/parser/unparse.py | |
| parent | d692d52f4aaeb6feaabb18f18d49907dd578fbeb (diff) | |
| download | cpython-git-92b72788ecf2ee5dfac780c7dfb5ee5350fc641d.tar.gz | |
[3.8] bpo-39889: Fix unparse.py for subscript. (GH-18824). (GH-18826)
(cherry picked from commit c4928fc1a853f3f84e2b4ec1253d0349137745e5)
Diffstat (limited to 'Tools/parser/unparse.py')
| -rw-r--r-- | Tools/parser/unparse.py | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/Tools/parser/unparse.py b/Tools/parser/unparse.py index a5cc000676..0642b84dcf 100644 --- a/Tools/parser/unparse.py +++ b/Tools/parser/unparse.py @@ -556,7 +556,17 @@ class Unparser: 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): @@ -581,7 +591,12 @@ class Unparser: 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): |
