[pypy-svn] r79857 - in pypy/branch/fast-forward/pypy/module/__builtin__: . test
afa at codespeak.net
afa at codespeak.net
Mon Dec 6 23:56:43 CET 2010
Author: afa
Date: Mon Dec 6 23:56:39 2010
New Revision: 79857
Modified:
pypy/branch/fast-forward/pypy/module/__builtin__/interp_memoryview.py
pypy/branch/fast-forward/pypy/module/__builtin__/test/test_buffer.py
Log:
Implement memoryview.suboffsets
Modified: pypy/branch/fast-forward/pypy/module/__builtin__/interp_memoryview.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/__builtin__/interp_memoryview.py (original)
+++ pypy/branch/fast-forward/pypy/module/__builtin__/interp_memoryview.py Mon Dec 6 23:56:39 2010
@@ -113,6 +113,14 @@
return space.newtuple([space.wrap(self.getlength())])
def w_get_strides(space, self):
return space.newtuple([space.wrap(1)])
+ def w_get_suboffsets(space, self):
+ if isinstance(self.buf, buffer.SubBuffer):
+ offset = self.buf.offset
+ elif isinstance(self.buf, buffer.RWSubBuffer):
+ offset = self.buf.offset
+ else:
+ offset = 0
+ return space.newtuple([space.wrap(offset)])
@unwrap_spec(ObjSpace, W_Root, W_Root)
@@ -144,6 +152,6 @@
readonly = GetSetProperty(W_MemoryView.w_is_readonly),
shape = GetSetProperty(W_MemoryView.w_get_shape),
strides = GetSetProperty(W_MemoryView.w_get_strides),
- #suboffsets? undocumented
+ suboffsets = GetSetProperty(W_MemoryView.w_get_suboffsets),
)
W_MemoryView.typedef.acceptable_as_base_class = False
Modified: pypy/branch/fast-forward/pypy/module/__builtin__/test/test_buffer.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/__builtin__/test/test_buffer.py (original)
+++ pypy/branch/fast-forward/pypy/module/__builtin__/test/test_buffer.py Mon Dec 6 23:56:39 2010
@@ -192,3 +192,10 @@
assert v.shape == (100,)
assert v.ndim == 1
assert v.strides == (1,)
+
+ def test_suboffsets(self):
+ v = memoryview("a"*100)
+ assert v.suboffsets == (0,)
+ v = memoryview(buffer("a"*100, 2))
+ assert v.shape == (98,)
+ assert v.suboffsets == (2,)
More information about the Pypy-commit
mailing list