Fix index parsing on Python-3.9 (#48676)
Summary:
In 3.9, `ast.Index` and `ast.ExtSlice` are deprecated, so:
- `ast.parse('img[3]', model='eval')` evaluates to
`Expression(body=Subscript(value=Name(id='img'), slice=Constant(value=3)))` by 3.9,
but was previously evaluated to `Expression(body=Subscript(value=Name(id='img'), slice=Index(value=Num(n=3))))`
- and `ast.parse('img[..., 10:20]', mode='eval')` is evaluated to
`
Subscript(value=Name(id='img'),slice=Tuple(elts=[Constant(value=Ellipsis),Slice(lower=Constant(value=10), upper=Constant(value=20))]))
`
, but was evaluated to
`
Subscript(value=Name(id='img'), slice=ExtSlice(dims=[Index(value=Ellipsis()), Slice(lower=Num(n=10), upper=Num(n=20), step=None)]))
`
Fixes https://github.com/pytorch/pytorch/issues/48674
Pull Request resolved: https://github.com/pytorch/pytorch/pull/48676
Reviewed By: seemethere, gmagogsfm
Differential Revision: D25261323
Pulled By: malfet
fbshipit-source-id: cc818ecc596a062ed5f1a1d11d3fdf0f22bf7f4a