[pypy-svn] r78832 - in pypy/branch/fast-forward/pypy/module/__builtin__: . test

arigo at codespeak.net arigo at codespeak.net
Sun Nov 7 19:10:20 CET 2010


Author: arigo
Date: Sun Nov  7 19:10:19 2010
New Revision: 78832

Added:
   pypy/branch/fast-forward/pypy/module/__builtin__/interp_memoryview.py
      - copied, changed from r78830, pypy/branch/fast-forward/pypy/module/__builtin__/memoryview.py
Removed:
   pypy/branch/fast-forward/pypy/module/__builtin__/memoryview.py
Modified:
   pypy/branch/fast-forward/pypy/module/__builtin__/__init__.py
   pypy/branch/fast-forward/pypy/module/__builtin__/test/test_buffer.py
Log:
* rename memoryview.py into interp_memoryview.py to avoid conflicts
  with the built-in name from 2.7.

* implement the (dummy) attributes.


Modified: pypy/branch/fast-forward/pypy/module/__builtin__/__init__.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/__builtin__/__init__.py	(original)
+++ pypy/branch/fast-forward/pypy/module/__builtin__/__init__.py	Sun Nov  7 19:10:19 2010
@@ -52,8 +52,8 @@
         'object'        : '(space.w_object)',
         'bytes'         : '(space.w_str)',
         'unicode'       : '(space.w_unicode)',
-        'buffer'        : 'memoryview.W_Buffer',
-        'memoryview'    : 'memoryview.W_MemoryView',
+        'buffer'        : 'interp_memoryview.W_Buffer',
+        'memoryview'    : 'interp_memoryview.W_MemoryView',
 
         'file'          : 'state.get(space).w_file',
         'open'          : 'state.get(space).w_file',

Copied: pypy/branch/fast-forward/pypy/module/__builtin__/interp_memoryview.py (from r78830, pypy/branch/fast-forward/pypy/module/__builtin__/memoryview.py)
==============================================================================
--- pypy/branch/fast-forward/pypy/module/__builtin__/memoryview.py	(original)
+++ pypy/branch/fast-forward/pypy/module/__builtin__/interp_memoryview.py	Sun Nov  7 19:10:19 2010
@@ -100,8 +100,18 @@
     def descr_len(self, space):
         return self.buf.descr_len(space)
 
-    def is_readonly(space, self):
+    def w_get_format(space, self):
+        return space.wrap("B")
+    def w_get_itemsize(space, self):
+        return space.wrap(1)
+    def w_get_ndim(space, self):
+        return space.wrap(1)
+    def w_is_readonly(space, self):
         return space.wrap(not isinstance(self.buf, buffer.RWBuffer))
+    def w_get_shape(space, self):
+        return space.newtuple([space.wrap(self.getlength())])
+    def w_get_strides(space, self):
+        return space.newtuple([space.wrap(1)])
 
 
 @unwrap_spec(ObjSpace, W_Root, W_Root)
@@ -127,12 +137,12 @@
     __setitem__ = interp2app(W_MemoryView.descr_setitem),
     tobytes     = interp2app(W_MemoryView.descr_tobytes),
     tolist      = interp2app(W_MemoryView.descr_tolist),
-    #format
-    #itemsize
-    #ndim
-    readonly    = GetSetProperty(W_MemoryView.is_readonly)
-    #shape
-    #strides
-    #suboffsets
+    format      = GetSetProperty(W_MemoryView.w_get_format),
+    itemsize    = GetSetProperty(W_MemoryView.w_get_itemsize),
+    ndim        = GetSetProperty(W_MemoryView.w_get_ndim),
+    readonly    = GetSetProperty(W_MemoryView.w_is_readonly),
+    shape       = GetSetProperty(W_MemoryView.w_get_shape),
+    strides     = GetSetProperty(W_MemoryView.w_get_strides),
+    #suboffsets? undocumented
     )
 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	Sun Nov  7 19:10:19 2010
@@ -184,3 +184,11 @@
         v[1:4] = '123'
         assert data == bytearray(b'z123fg')
         raises((ValueError, TypeError), "v[2] = 'spam'")
+
+    def test_memoryview_attrs(self):
+        v = memoryview("a"*100)
+        assert v.format == "B"
+        assert v.itemsize == 1
+        assert v.shape == (100,)
+        assert v.ndim == 1
+        assert v.strides == (1,)



More information about the Pypy-commit mailing list