New issue 2136: obj[None:None] slice behavior differs from CPython
https://bitbucket.org/pypy/pypy/issues/2136/obj-none-none-slice-behavior-differs-from
Anders Kaseorg:
```
#!python
class A:
def __getitem__(self, slice):
print '__getitem__(%r)' % slice
A()[:]
# CPython 2.7.10 and PyPy 2.6.0: __getitem__(slice(0, 9223372036854775807,
None))
A()[None:None]
# CPython 2.7.10: __getitem__(slice(None, None, None))
# PyPy 2.6.0: __getitem__(slice(0, 9223372036854775807, None))
class B(object):
def __getitem__(self, slice):
print '__getitem__(%r)' % slice
B()[:]
# CPython 2.7.10 and PyPy 2.6.0: __getitem__(slice(None, None, None))
B()[None:None]
# CPython 2.7.10 and PyPy 2.6.0: __getitem__(slice(None, None, None))
class C:
def __getslice__(self, lower, upper):
print '__getslice__(%r, %r)' % (lower, upper)
def __getitem__(self, slice):
print '__getitem__(%r)' % slice
C()[:]
# CPython 2.7.10 and PyPy 2.6.0: __getslice__(0, 9223372036854775807)
C()[None:None]
# CPython 2.7.10: __getitem__(slice(None, None, None))
# PyPy 2.6.0: __getslice__(0, 9223372036854775807)
class D(object):
def __getslice__(self, lower, upper):
print '__getslice__(%r, %r)' % (lower, upper)
def __getitem__(self, slice):
print '__getitem__(%r)' % slice
D()[:]
# CPython 2.7.10 and PyPy 2.6.0: __getslice__(0, 9223372036854775807)
D()[None:None]
# CPython 2.7.10: __getitem__(slice(None, None, None))
# PyPy 2.6.0: __getslice__(0, 9223372036854775807)
```
Similarly for `__setitem__`/`__setslice__` and `__delitem__`/`__delslice__`.
_______________________________________________
pypy-issue mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-issue