Module(body=[ClassDef(name='A', bases=[], body=[FunctionDef(name='__getitem__', args=arguments(args=[Name(id='self', ctx=Param()), Name(id='slices', ctx=Param())], vararg=None, kwarg=None, defaults=[]), body=[Return(value=Name(id='slices', ctx=Load()))], decorator_list=[])], decorator_list=[]), Assign(targets=[Name(id='a', ctx=Store())], value=Call(func=Name(id='A', ctx=Load()), args=[], keywords=[], starargs=None, kwargs=None)), Print(dest=None, values=[Subscript(value=Name(id='a', ctx=Load()), slice=Index(value=Num(n=1)), ctx=Load())], nl=True), Print(dest=None, values=[Subscript(value=Name(id='a', ctx=Load()), slice=Slice(lower=Num(n=0), upper=Num(n=2), step=None), ctx=Load())], nl=True), Print(dest=None, values=[Subscript(value=Name(id='a', ctx=Load()), slice=Slice(lower=None, upper=Num(n=2), step=None), ctx=Load())], nl=True), Print(dest=None, values=[Call(func=Name(id='slice', ctx=Load()), args=[Num(n=2)], keywords=[], starargs=None, kwargs=None)], nl=True), Print(dest=None, values=[Subscript(value=Name(id='a', ctx=Load()), slice=Slice(lower=Num(n=1), upper=None, step=None), ctx=Load())], nl=True), Print(dest=None, values=[Subscript(value=Name(id='a', ctx=Load()), slice=Slice(lower=None, upper=None, step=None), ctx=Load())], nl=True), Print(dest=None, values=[Subscript(value=Name(id='a', ctx=Load()), slice=Slice(lower=None, upper=None, step=Name(id='None', ctx=Load())), ctx=Load())], nl=True), Print(dest=None, values=[Subscript(value=Name(id='a', ctx=Load()), slice=Slice(lower=None, upper=None, step=Num(n=-1)), ctx=Load())], nl=True), Print(dest=None, values=[Subscript(value=Name(id='a', ctx=Load()), slice=ExtSlice(dims=[Index(value=Num(n=0)), Slice(lower=Num(n=1), upper=Num(n=2), step=None)]), ctx=Load())], nl=True), Print(dest=None, values=[Subscript(value=Name(id='a', ctx=Load()), slice=ExtSlice(dims=[Slice(lower=Num(n=0), upper=Num(n=2), step=None), Slice(lower=Num(n=2), upper=Num(n=30), step=Num(n=1))]), ctx=Load())], nl=True), Assert(test=Compare(left=Subscript(value=Name(id='a', ctx=Load()), slice=Index(value=Num(n=1)), ctx=Load()), ops=[Eq()], comparators=[Num(n=1)]), msg=None), Assert(test=Compare(left=Subscript(value=Name(id='a', ctx=Load()), slice=Slice(lower=Num(n=0), upper=Num(n=2), step=None), ctx=Load()), ops=[Eq()], comparators=[Call(func=Name(id='slice', ctx=Load()), args=[Num(n=0), Num(n=2)], keywords=[], starargs=None, kwargs=None)]), msg=None), Assert(test=Compare(left=Subscript(value=Name(id='a', ctx=Load()), slice=ExtSlice(dims=[Index(value=Num(n=0)), Slice(lower=Num(n=1), upper=Num(n=2), step=None)]), ctx=Load()), ops=[Eq()], comparators=[Tuple(elts=[Num(n=0), Call(func=Name(id='slice', ctx=Load()), args=[Num(n=1), Num(n=2)], keywords=[], starargs=None, kwargs=None)], ctx=Load())]), msg=None), Assert(test=Compare(left=Subscript(value=Name(id='a', ctx=Load()), slice=ExtSlice(dims=[Slice(lower=Num(n=0), upper=Num(n=2), step=None), Slice(lower=Num(n=2), upper=Num(n=30), step=Num(n=1))]), ctx=Load()), ops=[Eq()], comparators=[Tuple(elts=[Call(func=Name(id='slice', ctx=Load()), args=[Num(n=0), Num(n=2)], keywords=[], starargs=None, kwargs=None), Call(func=Name(id='slice', ctx=Load()), args=[Num(n=2), Num(n=30), Num(n=1)], keywords=[], starargs=None, kwargs=None)], ctx=Load())]), msg=None), Assert(test=Compare(left=Call(func=Name(id='slice', ctx=Load()), args=[Num(n=0), Num(n=2)], keywords=[], starargs=None, kwargs=None), ops=[Eq()], comparators=[Call(func=Name(id='slice', ctx=Load()), args=[Num(n=0), Num(n=2)], keywords=[], starargs=None, kwargs=None)]), msg=None), Assert(test=Compare(left=Call(func=Name(id='slice', ctx=Load()), args=[Num(n=0), Num(n=2)], keywords=[], starargs=None, kwargs=None), ops=[Lt()], comparators=[Call(func=Name(id='slice', ctx=Load()), args=[Num(n=1), Num(n=2)], keywords=[], starargs=None, kwargs=None)]), msg=None), Assert(test=Compare(left=Call(func=Name(id='slice', ctx=Load()), args=[Num(n=0), Num(n=2)], keywords=[], starargs=None, kwargs=None), ops=[Lt()], comparators=[Call(func=Name(id='slice', ctx=Load()), args=[Num(n=1), Num(n=1)], keywords=[], starargs=None, kwargs=None)]), msg=None), Assert(test=Compare(left=Call(func=Name(id='slice', ctx=Load()), args=[Num(n=2)], keywords=[], starargs=None, kwargs=None), ops=[Lt()], comparators=[Call(func=Name(id='slice', ctx=Load()), args=[Num(n=0), Num(n=2)], keywords=[], starargs=None, kwargs=None)]), msg=None), Assert(test=Compare(left=Call(func=Name(id='slice', ctx=Load()), args=[Num(n=1), Num(n=2)], keywords=[], starargs=None, kwargs=None), ops=[Lt()], comparators=[Call(func=Name(id='slice', ctx=Load()), args=[Num(n=1), Num(n=2), Num(n=3)], keywords=[], starargs=None, kwargs=None)]), msg=None), Assert(test=Compare(left=Call(func=Name(id='slice', ctx=Load()), args=[Num(n=1), Num(n=2), Num(n=3)], keywords=[], starargs=None, kwargs=None), ops=[Lt()], comparators=[Call(func=Name(id='slice', ctx=Load()), args=[Num(n=1), Num(n=2), Num(n=4)], keywords=[], starargs=None, kwargs=None)]), msg=None), Assert(test=Compare(left=Call(func=Name(id='slice', ctx=Load()), args=[Num(n=1), Num(n=-1)], keywords=[], starargs=None, kwargs=None), ops=[Lt()], comparators=[Call(func=Name(id='slice', ctx=Load()), args=[Num(n=1), Num(n=1)], keywords=[], starargs=None, kwargs=None)]), msg=None), Assert(test=Compare(left=Call(func=Name(id='slice', ctx=Load()), args=[Num(n=0), Num(n=1)], keywords=[], starargs=None, kwargs=None), ops=[Lt()], comparators=[Call(func=Name(id='slice', ctx=Load()), args=[Num(n=1), Num(n=-1)], keywords=[], starargs=None, kwargs=None)]), msg=None), Assert(test=Compare(left=Subscript(value=Name(id='a', ctx=Load()), slice=Index(value=Str(s='foo')), ctx=Load()), ops=[Eq()], comparators=[Str(s='foo')]), msg=None), Assert(test=Compare(left=Attribute(value=Subscript(value=Name(id='a', ctx=Load()), slice=Slice(lower=Str(s='foo'), upper=Tuple(elts=[Num(n=1), Num(n=2)], ctx=Load()), step=Name(id='True', ctx=Load())), ctx=Load()), attr='start', ctx=Load()), ops=[Eq()], comparators=[Str(s='foo')]), msg=None), Assert(test=Compare(left=Attribute(value=Subscript(value=Name(id='a', ctx=Load()), slice=Slice(lower=Str(s='foo'), upper=Tuple(elts=[Num(n=1), Num(n=2)], ctx=Load()), step=Name(id='True', ctx=Load())), ctx=Load()), attr='stop', ctx=Load()), ops=[Eq()], comparators=[Tuple(elts=[Num(n=1), Num(n=2)], ctx=Load())]), msg=None), Assert(test=Compare(left=Attribute(value=Subscript(value=Name(id='a', ctx=Load()), slice=Slice(lower=Str(s='foo'), upper=Tuple(elts=[Num(n=1), Num(n=2)], ctx=Load()), step=Name(id='True', ctx=Load())), ctx=Load()), attr='step', ctx=Load()), ops=[Eq()], comparators=[Name(id='True', ctx=Load())]), msg=None)])