Author: Ronan Lamy <[email protected]>
Branch: PyBuffer
Changeset: r91126:3841ee7693ba
Date: 2017-04-25 18:00 +0100
http://bitbucket.org/pypy/pypy/changeset/3841ee7693ba/

Log:    Renamings: PyBuffer -> BufferView, space.newbuffer ->
        space.newmemoryview, ...

diff --git a/pypy/interpreter/buffer.py b/pypy/interpreter/buffer.py
--- a/pypy/interpreter/buffer.py
+++ b/pypy/interpreter/buffer.py
@@ -8,7 +8,7 @@
     pass
 
 
-class PyBuffer(object):
+class BufferView(object):
     """Abstract base class for buffers."""
     _attrs_ = ['readonly']
     _immutable_ = True
@@ -26,7 +26,7 @@
 
         This is a low-level operation, it is up to the caller to ensure that
         the data requested actually correspond to items accessible from the
-        PyBuffer.
+        BufferView.
         Note that `start` may be negative, e.g. if the buffer is reversed.
         """
         raise NotImplementedError
@@ -183,8 +183,11 @@
 
         return space.newlist(items)
 
+    def wrap(self, space):
+        return space.newmemoryview(self)
 
-class SimpleBuffer(PyBuffer):
+
+class SimpleBuffer(BufferView):
     _attrs_ = ['readonly', 'data']
     _immutable_ = True
 
@@ -255,7 +258,7 @@
         idx = self.get_offset(space, 0, idx)
         self.data[idx] = space.byte_w(w_obj)
 
-class BufferSlice(PyBuffer):
+class BufferSlice(BufferView):
     _immutable_ = True
     _attrs_ = ['buf', 'readonly', 'shape', 'strides', 'start', 'step']
 
diff --git a/pypy/module/__pypy__/bytebuffer.py 
b/pypy/module/__pypy__/bytebuffer.py
--- a/pypy/module/__pypy__/bytebuffer.py
+++ b/pypy/module/__pypy__/bytebuffer.py
@@ -7,4 +7,4 @@
 
 @unwrap_spec(length=int)
 def bytebuffer(space, length):
-    return space.newbuffer(SimpleBuffer(ByteBuffer(length)))
+    return SimpleBuffer(ByteBuffer(length)).wrap(space)
diff --git a/pypy/module/_io/interp_bufferedio.py 
b/pypy/module/_io/interp_bufferedio.py
--- a/pypy/module/_io/interp_bufferedio.py
+++ b/pypy/module/_io/interp_bufferedio.py
@@ -584,10 +584,10 @@
         assert buffer is not None
         length = intmask(length)
         start = intmask(start)
-        w_buf = space.newbuffer(SimpleBuffer(SubBuffer(buffer, start, length)))
+        w_view = SimpleBuffer(SubBuffer(buffer, start, length)).wrap(space)
         while True:
             try:
-                w_size = space.call_method(self.w_raw, "readinto", w_buf)
+                w_size = space.call_method(self.w_raw, "readinto", w_view)
             except OperationError as e:
                 if trap_eintr(space, e):
                     continue  # try again
diff --git a/pypy/module/_io/interp_bytesio.py 
b/pypy/module/_io/interp_bytesio.py
--- a/pypy/module/_io/interp_bytesio.py
+++ b/pypy/module/_io/interp_bytesio.py
@@ -8,7 +8,6 @@
 from rpython.rlib.objectmodel import import_from_mixin
 from pypy.module._io.interp_bufferedio import W_BufferedIOBase
 from pypy.module._io.interp_iobase import convert_size
-from pypy.objspace.std.memoryobject import W_MemoryView
 import sys
 
 
@@ -125,7 +124,7 @@
 
     def getbuffer_w(self, space):
         self._check_closed(space)
-        return W_MemoryView(SimpleBuffer(BytesIOBuffer(self)))
+        return SimpleBuffer(BytesIOBuffer(self)).wrap(space)
 
     def getvalue_w(self, space):
         self._check_closed(space)
diff --git a/pypy/module/array/interp_array.py 
b/pypy/module/array/interp_array.py
--- a/pypy/module/array/interp_array.py
+++ b/pypy/module/array/interp_array.py
@@ -6,7 +6,7 @@
 from rpython.rtyper.lltypesystem import lltype, rffi
 from rpython.rtyper.lltypesystem.rstr import copy_string_to_raw
 
-from pypy.interpreter.buffer import PyBuffer, BinaryBuffer
+from pypy.interpreter.buffer import BufferView, BinaryBuffer
 from pypy.interpreter.baseobjspace import W_Root
 from pypy.interpreter.error import OperationError, oefmt
 from pypy.interpreter.gateway import (
@@ -257,7 +257,7 @@
             lltype.free(oldbuffer, flavor='raw')
 
     def buffer_w(self, space, flags):
-        return ArrayBuffer(ArrayData(self), self.typecode, self.itemsize, 
False)
+        return ArrayView(ArrayData(self), self.typecode, self.itemsize, False)
 
     def descr_append(self, space, w_x):
         """ append(x)
@@ -881,7 +881,7 @@
         return self.w_array._charbuf_start()
 
 
-class ArrayBuffer(PyBuffer):
+class ArrayView(BufferView):
     _immutable_ = True
 
     def __init__(self, data, fmt, itemsize, readonly):
diff --git a/pypy/module/cpyext/slotdefs.py b/pypy/module/cpyext/slotdefs.py
--- a/pypy/module/cpyext/slotdefs.py
+++ b/pypy/module/cpyext/slotdefs.py
@@ -19,7 +19,7 @@
 from pypy.module.cpyext.memoryobject import fill_Py_buffer
 from pypy.module.cpyext.state import State
 from pypy.module.cpyext import userslot
-from pypy.interpreter.buffer import PyBuffer, BinaryBuffer
+from pypy.interpreter.buffer import BufferView, BinaryBuffer
 from pypy.interpreter.error import OperationError, oefmt
 from pypy.interpreter.argument import Arguments
 from rpython.rlib.unroll import unrolling_iterable
@@ -313,7 +313,7 @@
         space.fromcache(State).check_and_raise_exception(always=True)
     return space.newint(res)
 
-class CPyBuffer(PyBuffer):
+class CPyBuffer(BufferView):
     # Similar to Py_buffer
     _immutable_ = True
 
@@ -427,32 +427,32 @@
 
 class CBuffer(BinaryBuffer):
     _immutable_ = True
-    def __init__(self, pybuffer):
-        self.pybuffer = pybuffer
-        self.readonly = pybuffer.readonly
+    def __init__(self, view):
+        self.view = view
+        self.readonly = view.readonly
 
     def getlength(self):
-        return self.pybuffer.getlength()
+        return self.view.getlength()
 
     def getitem(self, index):
-        return self.pybuffer.ptr[index]
+        return self.view.ptr[index]
 
     def getslice(self, start, stop, step, size):
         assert step == 1
         assert stop - start == size
-        ptr = rffi.ptradd(cts.cast('char *', self.pybuffer.ptr), start)
+        ptr = rffi.ptradd(cts.cast('char *', self.view.ptr), start)
         return rffi.charpsize2str(ptr, size)
 
     def setitem(self, index, char):
-        self.pybuffer.ptr[index] = char
+        self.view.ptr[index] = char
 
     def setslice(self, index, s):
         assert s is not None
-        ptr = rffi.ptradd(cts.cast('char *', self.pybuffer.ptr), index)
+        ptr = rffi.ptradd(cts.cast('char *', self.view.ptr), index)
         rffi.str2chararray(s, ptr, len(s))
 
     def get_raw_address(self):
-        return cts.cast('char *', self.pybuffer.ptr)
+        return cts.cast('char *', self.view.ptr)
 
 
 def wrap_getreadbuffer(space, w_self, w_args, func):
@@ -471,7 +471,7 @@
         buf = CPyBuffer(space, ptr[0], size, w_self,
                                releasebufferproc=rbp)
         fq.register_finalizer(buf)
-        return space.newbuffer(buf)
+        return buf.wrap(space)
 
 def wrap_getwritebuffer(space, w_self, w_args, func):
     func_target = rffi.cast(readbufferproc, func)
@@ -489,7 +489,7 @@
         buf = CPyBuffer(space, ptr[0], size, w_self, readonly=False,
                                releasebufferproc=rbp)
         fq.register_finalizer(buf)
-        return space.newbuffer(buf)
+        return buf.wrap(space)
 
 def wrap_getbuffer(space, w_self, w_args, func):
     func_target = rffi.cast(getbufferproc, func)
@@ -531,7 +531,7 @@
                             needs_decref=True,
                             releasebufferproc = rbp)
         fq.register_finalizer(buf)
-        return space.newbuffer(buf, itemsize=buf.itemsize)
+        return buf.wrap(space)
 
 def get_richcmp_func(OP_CONST):
     def inner(space, w_self, w_args, func):
@@ -784,24 +784,24 @@
     @slot_function([PyObject, Py_bufferP, rffi.INT_real],
             rffi.INT_real, error=-1)
     @func_renamer("cpyext_%s_%s" % (name, typedef.name))
-    def buff_w(space, w_self, view, flags):
+    def buff_w(space, w_self, c_view, flags):
         args = Arguments(space, [space.newint(flags)])
         w_obj = space.call_args(space.get(buff_fn, w_self), args)
-        if view:
+        if c_view:
             #like PyObject_GetBuffer
             flags = widen(flags)
             buf = space.buffer_w(w_obj, flags)
             try:
-                view.c_buf = rffi.cast(rffi.VOIDP, buf.get_raw_address())
-                view.c_obj = make_ref(space, w_obj)
+                c_view.c_buf = rffi.cast(rffi.VOIDP, buf.get_raw_address())
+                c_view.c_obj = make_ref(space, w_obj)
             except ValueError:
                 s = buf.as_str()
                 w_s = space.newbytes(s)
-                view.c_obj = make_ref(space, w_s)
-                view.c_buf = rffi.cast(rffi.VOIDP, rffi.str2charp(
+                c_view.c_obj = make_ref(space, w_s)
+                c_view.c_buf = rffi.cast(rffi.VOIDP, rffi.str2charp(
                                         s, track_allocation=False))
-                rffi.setintfield(view, 'c_readonly', 1)
-            ret = fill_Py_buffer(space, buf, view)
+                rffi.setintfield(c_view, 'c_readonly', 1)
+            ret = fill_Py_buffer(space, buf, c_view)
             return ret
         return 0
     return buff_w
@@ -811,23 +811,23 @@
     @slot_function([PyObject, Py_bufferP, rffi.INT_real],
             rffi.INT_real, error=-1)
     @func_renamer("cpyext_%s_%s" % (name, typedef.name))
-    def buff_w(space, w_self, view, flags):
+    def buff_w(space, w_self, c_view, flags):
         w_obj = w_self
-        if view:
+        if c_view:
             #like PyObject_GetBuffer
             flags = widen(flags)
             buf = space.buffer_w(w_obj, flags)
             try:
-                view.c_buf = rffi.cast(rffi.VOIDP, buf.get_raw_address())
-                view.c_obj = make_ref(space, w_obj)
+                c_view.c_buf = rffi.cast(rffi.VOIDP, buf.get_raw_address())
+                c_view.c_obj = make_ref(space, w_obj)
             except ValueError:
                 s = buf.as_str()
                 w_s = space.newbytes(s)
-                view.c_obj = make_ref(space, w_s)
-                view.c_buf = rffi.cast(rffi.VOIDP, rffi.str2charp(
+                c_view.c_obj = make_ref(space, w_s)
+                c_view.c_buf = rffi.cast(rffi.VOIDP, rffi.str2charp(
                                         s, track_allocation=False))
-                rffi.setintfield(view, 'c_readonly', 1)
-            ret = fill_Py_buffer(space, buf, view)
+                rffi.setintfield(c_view, 'c_readonly', 1)
+            ret = fill_Py_buffer(space, buf, c_view)
             return ret
         return 0
     return buff_w
diff --git a/pypy/module/cpyext/test/test_memoryobject.py 
b/pypy/module/cpyext/test/test_memoryobject.py
--- a/pypy/module/cpyext/test/test_memoryobject.py
+++ b/pypy/module/cpyext/test/test_memoryobject.py
@@ -11,9 +11,9 @@
 
 class TestMemoryViewObject(BaseApiTest):
     def test_frombuffer(self, space, api):
-        w_buf = space.newbuffer(SimpleBuffer(StringBuffer("hello")))
+        w_view = SimpleBuffer(StringBuffer("hello")).wrap(space)
         c_memoryview = rffi.cast(
-            PyMemoryViewObject, api.PyMemoryView_FromObject(w_buf))
+            PyMemoryViewObject, api.PyMemoryView_FromObject(w_view))
         w_memoryview = from_ref(space, c_memoryview)
         view = c_memoryview.c_view
         assert view.c_ndim == 1
diff --git a/pypy/module/micronumpy/concrete.py 
b/pypy/module/micronumpy/concrete.py
--- a/pypy/module/micronumpy/concrete.py
+++ b/pypy/module/micronumpy/concrete.py
@@ -1,4 +1,4 @@
-from pypy.interpreter.buffer import PyBuffer
+from pypy.interpreter.buffer import BufferView
 from pypy.interpreter.error import oefmt
 from rpython.rlib import jit, rgc
 from rpython.rlib.rarithmetic import ovfcheck
@@ -397,7 +397,7 @@
             not self.flags & NPY.ARRAY_WRITEABLE):
            raise oefmt(errtype, "buffer source array is read-only")
         readonly = not (flags & space.BUF_WRITABLE) == space.BUF_WRITABLE
-        return ArrayBuffer(self, readonly)
+        return ArrayView(self, readonly)
 
     def astype(self, space, dtype, order, copy=True):
         # copy the general pattern of the strides
@@ -702,7 +702,7 @@
         free_raw_storage(self.storage)
 
 
-class ArrayBuffer(PyBuffer):
+class ArrayView(BufferView):
     _immutable_ = True
 
     def __init__(self, impl, readonly):
diff --git a/pypy/module/micronumpy/ndarray.py 
b/pypy/module/micronumpy/ndarray.py
--- a/pypy/module/micronumpy/ndarray.py
+++ b/pypy/module/micronumpy/ndarray.py
@@ -808,7 +808,7 @@
         return self.implementation.get_buffer(space, flags)
 
     def descr_get_data(self, space):
-        return space.newbuffer(self.implementation.get_buffer(space, 
space.BUF_FULL))
+        return self.implementation.get_buffer(space, 
space.BUF_FULL).wrap(space)
 
     @unwrap_spec(offset=int, axis1=int, axis2=int)
     def descr_diagonal(self, space, offset=0, axis1=0, axis2=1):
diff --git a/pypy/objspace/fake/objspace.py b/pypy/objspace/fake/objspace.py
--- a/pypy/objspace/fake/objspace.py
+++ b/pypy/objspace/fake/objspace.py
@@ -205,7 +205,7 @@
     def newseqiter(self, x):
         return w_some_obj()
 
-    def newbuffer(self, x, itemsize=1):
+    def newmemoryview(self, x):
         return w_some_obj()
 
     @not_rpython
diff --git a/pypy/objspace/std/memoryobject.py 
b/pypy/objspace/std/memoryobject.py
--- a/pypy/objspace/std/memoryobject.py
+++ b/pypy/objspace/std/memoryobject.py
@@ -5,7 +5,7 @@
 
 from rpython.rlib.objectmodel import compute_hash
 from pypy.interpreter.baseobjspace import W_Root
-from pypy.interpreter.buffer import PyBuffer, SimpleBuffer, SubBuffer
+from pypy.interpreter.buffer import BufferView, SimpleBuffer, SubBuffer
 from pypy.interpreter.error import OperationError, oefmt
 from pypy.interpreter.gateway import interp2app
 from pypy.interpreter.typedef import TypeDef, GetSetProperty,  
make_weakref_descr
@@ -26,7 +26,7 @@
     """
 
     def __init__(self, buf):
-        assert isinstance(buf, PyBuffer)
+        assert isinstance(buf, BufferView)
         self.buf = buf
         self._hash = -1
         self.flags = 0
@@ -58,7 +58,7 @@
             w_object._check_released(space)
             return W_MemoryView.copy(w_object)
         buf = space.buffer_w(w_object, space.BUF_FULL_RO)
-        return W_MemoryView(buf)
+        return buf.wrap(space)
 
     def _make_descr__cmp(name):
         def descr__cmp(self, space, w_other):
@@ -160,7 +160,7 @@
             else:
                 raise oefmt(space.w_NotImplementedError, "multi-dimensional 
sub-views are not implemented")
         elif is_slice:
-            return W_MemoryView(self.buf.new_slice(start, step, slicelength))
+            return self.buf.new_slice(start, step, slicelength).wrap(space)
         # multi index is handled at the top of this function
         else:
             raise TypeError("memoryview: invalid slice key")
@@ -342,7 +342,7 @@
         return size
 
     def _zero_in_shape(self):
-        # this method could be moved to the class PyBuffer
+        # this method could be moved to the class BufferView
         buf = self.buf
         shape = buf.getshape()
         for i in range(buf.getndim()):
@@ -383,13 +383,12 @@
                 raise oefmt(space.w_TypeError,
                             "memoryview: cast must be 1D -> ND or ND -> 1D")
 
-        newbuf = self._cast_to_1D(space, buf, fmt)
+        newview = self._cast_to_1D(space, buf, fmt)
         if w_shape:
             fview = space.fixedview(w_shape)
             shape = [space.int_w(w_obj) for w_obj in fview]
-            newbuf = self._cast_to_ND(space, newbuf, shape, ndim)
-        mv = W_MemoryView(newbuf)
-        return mv
+            newview = self._cast_to_ND(space, newview, shape, ndim)
+        return newview.wrap(space)
 
     def _init_flags(self):
         buf = self.buf
@@ -586,7 +585,8 @@
     return 0
 
 
-class BufferViewBase(PyBuffer):
+class IndirectView(BufferView):
+    """Base class for views into another BufferView"""
     _immutable_ = True
     _attrs_ = ['readonly', 'parent']
 
@@ -614,7 +614,7 @@
     def as_binary_rw(self):
         return self.parent.as_binary_rw()
 
-class BufferView1D(BufferViewBase):
+class BufferView1D(IndirectView):
     _immutable_ = True
     _attrs_ = ['readonly', 'parent', 'format', 'itemsize']
 
@@ -639,7 +639,7 @@
     def getstrides(self):
         return [self.itemsize]
 
-class BufferViewND(BufferViewBase):
+class BufferViewND(IndirectView):
     _immutable_ = True
     _attrs_ = ['readonly', 'parent', 'ndim', 'shape', 'strides']
 
diff --git a/pypy/objspace/std/objspace.py b/pypy/objspace/std/objspace.py
--- a/pypy/objspace/std/objspace.py
+++ b/pypy/objspace/std/objspace.py
@@ -368,7 +368,7 @@
     def newseqiter(self, w_obj):
         return W_SeqIterObject(w_obj)
 
-    def newbuffer(self, w_obj, itemsize=1):
+    def newmemoryview(self, w_obj):
         return W_MemoryView(w_obj)
 
     def newbytes(self, s):
diff --git a/pypy/objspace/std/test/test_memoryobject.py 
b/pypy/objspace/std/test/test_memoryobject.py
--- a/pypy/objspace/std/test/test_memoryobject.py
+++ b/pypy/objspace/std/test/test_memoryobject.py
@@ -4,7 +4,7 @@
 from pypy.interpreter.baseobjspace import W_Root
 from pypy.interpreter.gateway import interp2app
 from pypy.interpreter.typedef import TypeDef
-from pypy.interpreter.buffer import PyBuffer
+from pypy.interpreter.buffer import BufferView
 from pypy.conftest import option
 
 class AppTestMemoryView(object):
@@ -300,7 +300,7 @@
         assert (m[0], m[1], m[2], m[3]) == expected
         a.free()
 
-class MockBuffer(PyBuffer):
+class MockBuffer(BufferView):
     def __init__(self, space, w_arr, w_dim, w_fmt, \
                  w_itemsize, w_strides, w_shape):
         self.space = space
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to