Author: Ronan Lamy <[email protected]>
Branch: PyBuffer
Changeset: r91127:bf5037061e5f
Date: 2017-04-25 18:32 +0100
http://bitbucket.org/pypy/pypy/changeset/bf5037061e5f/
Log: More buffer -> view renamings
diff --git a/pypy/interpreter/buffer.py b/pypy/interpreter/buffer.py
--- a/pypy/interpreter/buffer.py
+++ b/pypy/interpreter/buffer.py
@@ -187,7 +187,7 @@
return space.newmemoryview(self)
-class SimpleBuffer(BufferView):
+class SimpleView(BufferView):
_attrs_ = ['readonly', 'data']
_immutable_ = True
@@ -250,7 +250,7 @@
def new_slice(self, start, step, slicelength):
if step == 1:
- return SimpleBuffer(SubBuffer(self.data, start, slicelength))
+ return SimpleView(SubBuffer(self.data, start, slicelength))
else:
return BufferSlice(self, start, step, slicelength)
@@ -258,47 +258,48 @@
idx = self.get_offset(space, 0, idx)
self.data[idx] = space.byte_w(w_obj)
+
class BufferSlice(BufferView):
_immutable_ = True
- _attrs_ = ['buf', 'readonly', 'shape', 'strides', 'start', 'step']
+ _attrs_ = ['parent', 'readonly', 'shape', 'strides', 'start', 'step']
- def __init__(self, buf, start, step, length):
- self.buf = buf
- self.readonly = self.buf.readonly
- self.strides = buf.getstrides()[:]
+ def __init__(self, parent, start, step, length):
+ self.parent = parent
+ self.readonly = self.parent.readonly
+ self.strides = parent.getstrides()[:]
self.start = start
self.step = step
self.strides[0] *= step
- self.shape = buf.getshape()[:]
+ self.shape = parent.getshape()[:]
self.shape[0] = length
def getlength(self):
return self.shape[0] * self.getitemsize()
def getbytes(self, start, size):
- offset = self.start * self.buf.getstrides()[0]
- return self.buf.getbytes(offset + start, size)
+ offset = self.start * self.parent.getstrides()[0]
+ return self.parent.getbytes(offset + start, size)
def setbytes(self, start, string):
if len(string) == 0:
return # otherwise, adding self.offset might make 'start'
# out of bounds
- offset = self.start * self.buf.getstrides()[0]
- self.buf.setbytes(offset + start, string)
+ offset = self.start * self.parent.getstrides()[0]
+ self.parent.setbytes(offset + start, string)
def get_raw_address(self):
from rpython.rtyper.lltypesystem import rffi
- offset = self.start * self.buf.getstrides()[0]
- return rffi.ptradd(self.buf.get_raw_address(), offset)
+ offset = self.start * self.parent.getstrides()[0]
+ return rffi.ptradd(self.parent.get_raw_address(), offset)
def getformat(self):
- return self.buf.getformat()
+ return self.parent.getformat()
def getitemsize(self):
- return self.buf.getitemsize()
+ return self.parent.getitemsize()
def getndim(self):
- return self.buf.getndim()
+ return self.parent.getndim()
def getshape(self):
return self.shape
@@ -310,12 +311,12 @@
return self.start + self.step * idx
def w_getitem(self, space, idx):
- return self.buf.w_getitem(space, self.parent_index(idx))
+ return self.parent.w_getitem(space, self.parent_index(idx))
def new_slice(self, start, step, slicelength):
real_start = start + self.start
real_step = self.step * step
- return BufferSlice(self.buf, real_start, real_step, slicelength)
+ return BufferSlice(self.parent, real_start, real_step, slicelength)
def setitem_w(self, space, idx, w_obj):
- return self.buf.setitem_w(space, self.parent_index(idx), w_obj)
+ return self.parent.setitem_w(space, self.parent_index(idx), w_obj)
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
@@ -2,9 +2,9 @@
# A convenient read-write buffer. Located here for want of a better place.
#
-from pypy.interpreter.buffer import SimpleBuffer, ByteBuffer
+from pypy.interpreter.buffer import SimpleView, ByteBuffer
from pypy.interpreter.gateway import unwrap_spec
@unwrap_spec(length=int)
def bytebuffer(space, length):
- return SimpleBuffer(ByteBuffer(length)).wrap(space)
+ return SimpleView(ByteBuffer(length)).wrap(space)
diff --git a/pypy/module/_cffi_backend/cbuffer.py
b/pypy/module/_cffi_backend/cbuffer.py
--- a/pypy/module/_cffi_backend/cbuffer.py
+++ b/pypy/module/_cffi_backend/cbuffer.py
@@ -5,7 +5,7 @@
from pypy.module._cffi_backend import cdataobj, ctypeptr, ctypearray
from pypy.module._cffi_backend import ctypestruct
-from pypy.interpreter.buffer import SimpleBuffer, BinaryBuffer
+from pypy.interpreter.buffer import SimpleView, BinaryBuffer
from rpython.rtyper.annlowlevel import llstr
from rpython.rtyper.lltypesystem import rffi
from rpython.rtyper.lltypesystem.rstr import copy_string_to_raw
@@ -47,7 +47,7 @@
self.keepalive = keepalive
def buffer_w(self, space, flags):
- return SimpleBuffer(self.buffer)
+ return SimpleView(self.buffer)
def descr_len(self, space):
return space.newint(self.buffer.getlength())
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
@@ -7,7 +7,7 @@
from pypy.interpreter.typedef import (
TypeDef, GetSetProperty, generic_new_descr, interp_attrproperty_w)
from pypy.interpreter.gateway import interp2app, unwrap_spec, WrappedDefault
-from pypy.interpreter.buffer import SimpleBuffer, BinaryBuffer, SubBuffer
+from pypy.interpreter.buffer import SimpleView, BinaryBuffer, SubBuffer
from rpython.rlib.rgc import (
nonmoving_raw_ptr_for_resizable_list, resizable_list_supporting_raw_ptr)
from rpython.rlib.rstring import StringBuilder
@@ -584,7 +584,7 @@
assert buffer is not None
length = intmask(length)
start = intmask(start)
- w_view = SimpleBuffer(SubBuffer(buffer, start, length)).wrap(space)
+ w_view = SimpleView(SubBuffer(buffer, start, length)).wrap(space)
while True:
try:
w_size = space.call_method(self.w_raw, "readinto", w_view)
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
@@ -2,7 +2,7 @@
from pypy.interpreter.typedef import (
TypeDef, generic_new_descr, GetSetProperty)
from pypy.interpreter.gateway import interp2app, unwrap_spec
-from pypy.interpreter.buffer import SimpleBuffer, BinaryBuffer
+from pypy.interpreter.buffer import SimpleView, BinaryBuffer
from rpython.rlib.rStringIO import RStringIO
from rpython.rlib.rarithmetic import r_longlong
from rpython.rlib.objectmodel import import_from_mixin
@@ -124,7 +124,7 @@
def getbuffer_w(self, space):
self._check_closed(space)
- return SimpleBuffer(BytesIOBuffer(self)).wrap(space)
+ return SimpleView(BytesIOBuffer(self)).wrap(space)
def getvalue_w(self, space):
self._check_closed(space)
diff --git a/pypy/module/_rawffi/interp_rawffi.py
b/pypy/module/_rawffi/interp_rawffi.py
--- a/pypy/module/_rawffi/interp_rawffi.py
+++ b/pypy/module/_rawffi/interp_rawffi.py
@@ -1,6 +1,6 @@
import sys
from pypy.interpreter.baseobjspace import W_Root
-from pypy.interpreter.buffer import SimpleBuffer
+from pypy.interpreter.buffer import SimpleView
from pypy.interpreter.error import OperationError, oefmt, wrap_oserror
from pypy.interpreter.gateway import interp2app, unwrap_spec
from pypy.interpreter.typedef import interp_attrproperty
@@ -380,7 +380,7 @@
self._ll_buffer = self.ll_buffer
def buffer_w(self, space, flags):
- return SimpleBuffer(RawFFIBuffer(self))
+ return SimpleView(RawFFIBuffer(self))
def getrawsize(self):
raise NotImplementedError("abstract base class")
diff --git a/pypy/module/cpyext/memoryobject.py
b/pypy/module/cpyext/memoryobject.py
--- a/pypy/module/cpyext/memoryobject.py
+++ b/pypy/module/cpyext/memoryobject.py
@@ -42,15 +42,15 @@
assert isinstance(w_obj, W_MemoryView)
py_obj = rffi.cast(PyMemoryViewObject, py_obj)
view = py_obj.c_view
- ndim = w_obj.buf.getndim()
+ ndim = w_obj.getndim()
if ndim >= Py_MAX_NDIMS:
# XXX warn?
return
- fill_Py_buffer(space, w_obj.buf, view)
+ fill_Py_buffer(space, w_obj.view, view)
try:
- view.c_buf = rffi.cast(rffi.VOIDP, w_obj.buf.get_raw_address())
+ view.c_buf = rffi.cast(rffi.VOIDP, w_obj.view.get_raw_address())
view.c_obj = make_ref(space, w_userdata)
- rffi.setintfield(view, 'c_readonly', w_obj.buf.readonly)
+ rffi.setintfield(view, 'c_readonly', w_obj.view.readonly)
except ValueError:
w_s = w_obj.descr_tobytes(space)
view.c_obj = make_ref(space, w_s)
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
@@ -3,7 +3,7 @@
from rpython.rtyper.lltypesystem import rffi
from pypy.module.cpyext.test.test_api import BaseApiTest
from pypy.module.cpyext.test.test_cpyext import AppTestCpythonExtensionBase
-from pypy.interpreter.buffer import SimpleBuffer, StringBuffer
+from pypy.interpreter.buffer import SimpleView, StringBuffer
from pypy.module.cpyext.pyobject import from_ref
from pypy.module.cpyext.memoryobject import PyMemoryViewObject
@@ -11,7 +11,7 @@
class TestMemoryViewObject(BaseApiTest):
def test_frombuffer(self, space, api):
- w_view = SimpleBuffer(StringBuffer("hello")).wrap(space)
+ w_view = SimpleView(StringBuffer("hello")).wrap(space)
c_memoryview = rffi.cast(
PyMemoryViewObject, api.PyMemoryView_FromObject(w_view))
w_memoryview = from_ref(space, c_memoryview)
diff --git a/pypy/module/mmap/interp_mmap.py b/pypy/module/mmap/interp_mmap.py
--- a/pypy/module/mmap/interp_mmap.py
+++ b/pypy/module/mmap/interp_mmap.py
@@ -2,7 +2,7 @@
from pypy.interpreter.baseobjspace import W_Root
from pypy.interpreter.typedef import TypeDef, GetSetProperty,
make_weakref_descr
from pypy.interpreter.gateway import interp2app, unwrap_spec, WrappedDefault
-from pypy.interpreter.buffer import BinaryBuffer, SimpleBuffer
+from pypy.interpreter.buffer import BinaryBuffer, SimpleView
from rpython.rlib import rmmap, rarithmetic, objectmodel
from rpython.rlib.rmmap import RValueError, RTypeError, RMMapError
from rpython.rlib.rstring import StringBuilder
@@ -24,7 +24,7 @@
write_required = bool(flags & space.BUF_WRITABLE)
if write_required and readonly:
raise oefmt(space.w_BufferError, "Object is not writable.")
- return SimpleBuffer(MMapBuffer(self.space, self.mmap, readonly))
+ return SimpleView(MMapBuffer(self.space, self.mmap, readonly))
def close(self):
self.mmap.close()
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
@@ -11,7 +11,7 @@
from pypy.tool.option import make_config
from pypy.interpreter import argument, gateway
from pypy.interpreter.baseobjspace import W_Root, ObjSpace, SpaceCache
-from pypy.interpreter.buffer import StringBuffer, SimpleBuffer
+from pypy.interpreter.buffer import StringBuffer, SimpleView
from pypy.interpreter.typedef import TypeDef, GetSetProperty
from pypy.objspace.std.sliceobject import W_SliceObject
@@ -42,7 +42,7 @@
is_root(w_subtype)
def buffer_w(self, space, flags):
- return SimpleBuffer(StringBuffer("foobar"))
+ return SimpleView(StringBuffer("foobar"))
def text_w(self, space):
return NonConstant("foobar")
diff --git a/pypy/objspace/std/bytearrayobject.py
b/pypy/objspace/std/bytearrayobject.py
--- a/pypy/objspace/std/bytearrayobject.py
+++ b/pypy/objspace/std/bytearrayobject.py
@@ -16,7 +16,7 @@
from pypy.objspace.std.bytesobject import makebytesdata_w, newbytesdata_w
from pypy.interpreter.gateway import WrappedDefault, interp2app, unwrap_spec
from pypy.interpreter.typedef import TypeDef
-from pypy.interpreter.buffer import SimpleBuffer, BinaryBuffer
+from pypy.interpreter.buffer import SimpleView, BinaryBuffer
from pypy.objspace.std.sliceobject import W_SliceObject, unwrap_start_stop
from pypy.objspace.std.stringmethods import StringMethods, _get_buffer
from pypy.objspace.std.stringmethods import _descr_getslice_slowpath
@@ -51,7 +51,7 @@
''.join(self._data[self._offset:]))
def buffer_w(self, space, flags):
- return SimpleBuffer(BytearrayBuffer(self))
+ return SimpleView(BytearrayBuffer(self))
def bytearray_list_of_chars_w(self, space):
return self.getdata()
diff --git a/pypy/objspace/std/bytesobject.py b/pypy/objspace/std/bytesobject.py
--- a/pypy/objspace/std/bytesobject.py
+++ b/pypy/objspace/std/bytesobject.py
@@ -7,7 +7,7 @@
from rpython.rlib.rstring import StringBuilder
from pypy.interpreter.baseobjspace import W_Root
-from pypy.interpreter.buffer import SimpleBuffer, StringBuffer
+from pypy.interpreter.buffer import SimpleView, StringBuffer
from pypy.interpreter.error import OperationError, oefmt
from pypy.interpreter.gateway import (
WrappedDefault, interp2app, interpindirect2app, unwrap_spec)
@@ -419,7 +419,7 @@
def buffer_w(self, space, flags):
space.check_buf_flags(flags, True)
- return SimpleBuffer(StringBuffer(self._value))
+ return SimpleView(StringBuffer(self._value))
def descr_getbuffer(self, space, w_flags):
#from pypy.objspace.std.bufferobject import W_Buffer
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,12 +5,11 @@
from rpython.rlib.objectmodel import compute_hash
from pypy.interpreter.baseobjspace import W_Root
-from pypy.interpreter.buffer import BufferView, SimpleBuffer, SubBuffer
+from pypy.interpreter.buffer import BufferView, SubBuffer
from pypy.interpreter.error import OperationError, oefmt
from pypy.interpreter.gateway import interp2app
from pypy.interpreter.typedef import TypeDef, GetSetProperty,
make_weakref_descr
from rpython.rlib.unroll import unrolling_iterable
-from rpython.rlib.objectmodel import always_inline
MEMORYVIEW_MAX_DIM = 64
MEMORYVIEW_SCALAR = 0x0001
@@ -25,60 +24,60 @@
an interp-level buffer.
"""
- def __init__(self, buf):
- assert isinstance(buf, BufferView)
- self.buf = buf
+ def __init__(self, view):
+ assert isinstance(view, BufferView)
+ self.view = view
self._hash = -1
self.flags = 0
self._init_flags()
def getndim(self):
- return self.buf.getndim()
+ return self.view.getndim()
def getshape(self):
- return self.buf.getshape()
+ return self.view.getshape()
def getstrides(self):
- return self.buf.getstrides()
+ return self.view.getstrides()
def getitemsize(self):
- return self.buf.getitemsize()
+ return self.view.getitemsize()
def getformat(self):
- return self.buf.getformat()
+ return self.view.getformat()
def buffer_w(self, space, flags):
self._check_released(space)
- space.check_buf_flags(flags, self.buf.readonly)
- return self.buf
+ space.check_buf_flags(flags, self.view.readonly)
+ return self.view
@staticmethod
def descr_new_memoryview(space, w_subtype, w_object):
if isinstance(w_object, W_MemoryView):
w_object._check_released(space)
return W_MemoryView.copy(w_object)
- buf = space.buffer_w(w_object, space.BUF_FULL_RO)
- return buf.wrap(space)
+ view = space.buffer_w(w_object, space.BUF_FULL_RO)
+ return view.wrap(space)
def _make_descr__cmp(name):
def descr__cmp(self, space, w_other):
- if self.buf is None:
+ if self.view is None:
return space.newbool(getattr(operator, name)(self, w_other))
if isinstance(w_other, W_MemoryView):
# xxx not the most efficient implementation
- str1 = self.buf.as_str()
- str2 = w_other.buf.as_str()
+ str1 = self.view.as_str()
+ str2 = w_other.view.as_str()
return space.newbool(getattr(operator, name)(str1, str2))
try:
- buf = space.buffer_w(w_other, space.BUF_CONTIG_RO)
+ view = space.buffer_w(w_other, space.BUF_CONTIG_RO)
except OperationError as e:
if not e.match(space, space.w_TypeError):
raise
return space.w_NotImplemented
else:
- str1 = self.buf.as_str()
- str2 = buf.as_str()
+ str1 = self.view.as_str()
+ str2 = view.as_str()
return space.newbool(getattr(operator, name)(str1, str2))
descr__cmp.func_name = name
return descr__cmp
@@ -87,21 +86,21 @@
descr_ne = _make_descr__cmp('ne')
def getlength(self):
- return self.buf.getlength()
+ return self.view.getlength()
def descr_tobytes(self, space):
self._check_released(space)
- return space.newbytes(self.buf.as_str())
+ return space.newbytes(self.view.as_str())
def descr_tolist(self, space):
self._check_released(space)
- return self.buf.w_tolist(space)
+ return self.view.w_tolist(space)
def _start_from_tuple(self, space, w_tuple):
from pypy.objspace.std.tupleobject import W_AbstractTupleObject
start = 0
- view = self.buf
+ view = self.view
length = space.len_w(w_tuple)
dim = view.getndim()
dim = 0
@@ -109,15 +108,12 @@
while dim < length:
w_obj = w_tuple.getitem(space, dim)
index = space.getindex_w(w_obj, space.w_IndexError)
- start += self.buf.get_offset(space, dim, index)
+ start += self.view.get_offset(space, dim, index)
dim += 1
return start
def _getitem_tuple_indexed(self, space, w_index):
- view = self.buf
-
- fmt = view.getformat() # TODO adjust format?
-
+ view = self.view
length = space.len_w(w_index)
ndim = view.getndim()
if length < ndim:
@@ -151,16 +147,15 @@
start, stop, step, slicelength = self._decode_index(space, w_index,
is_slice)
# ^^^ for a non-slice index, this returns (index, 0, 0, 1)
if step == 0: # index only
- itemsize = self.getitemsize()
dim = self.getndim()
if dim == 0:
raise oefmt(space.w_TypeError, "invalid indexing of 0-dim
memory")
elif dim == 1:
- return self.buf.w_getitem(space, start)
+ return self.view.w_getitem(space, start)
else:
raise oefmt(space.w_NotImplementedError, "multi-dimensional
sub-views are not implemented")
elif is_slice:
- return self.buf.new_slice(start, step, slicelength).wrap(space)
+ return self.view.new_slice(start, step, slicelength).wrap(space)
# multi index is handled at the top of this function
else:
raise TypeError("memoryview: invalid slice key")
@@ -177,14 +172,14 @@
return length * self.getitemsize()
@staticmethod
- def copy(view):
+ def copy(w_view):
# TODO suboffsets
- buf = view.buf
- return W_MemoryView(buf)
+ view = w_view.view
+ return W_MemoryView(view)
def descr_setitem(self, space, w_index, w_obj):
self._check_released(space)
- if self.buf.readonly:
+ if self.view.readonly:
raise oefmt(space.w_TypeError, "cannot modify read-only memory")
if space.isinstance_w(w_index, space.w_tuple):
raise oefmt(space.w_NotImplementedError, "")
@@ -193,13 +188,13 @@
start, stop, step, slicelength = self._decode_index(space, w_index,
is_slice)
itemsize = self.getitemsize()
if step == 0: # index only
- self.buf.setitem_w(space, start, w_obj)
+ self.view.setitem_w(space, start, w_obj)
elif step == 1:
value = space.buffer_w(w_obj, space.BUF_CONTIG_RO)
if value.getlength() != slicelength * itemsize:
raise oefmt(space.w_ValueError,
"cannot modify size of memoryview object")
- self.buf.setbytes(start * itemsize, value.as_str())
+ self.view.setbytes(start * itemsize, value.as_str())
else:
if self.getndim() != 1:
raise oefmt(space.w_NotImplementedError,
@@ -213,7 +208,7 @@
dst_strides = self.getstrides()
dim = 0
dst = SubBuffer(
- self.buf.as_binary_rw(),
+ self.view.as_binary_rw(),
start * itemsize, slicelength * itemsize)
src_stride0 = dst_strides[dim]
@@ -255,7 +250,7 @@
def w_is_readonly(self, space):
self._check_released(space)
- return space.newbool(bool(self.buf.readonly))
+ return space.newbool(bool(self.view.readonly))
def w_get_shape(self, space):
self._check_released(space)
@@ -271,7 +266,7 @@
return space.newtuple([])
def descr_repr(self, space):
- if self.buf is None:
+ if self.view is None:
return self.getrepr(space, u'released memory')
else:
return self.getrepr(space, u'memory')
@@ -279,17 +274,17 @@
def descr_hash(self, space):
if self._hash == -1:
self._check_released(space)
- if not self.buf.readonly:
+ if not self.view.readonly:
raise oefmt(space.w_ValueError,
"cannot hash writable memoryview object")
- self._hash = compute_hash(self.buf.as_str())
+ self._hash = compute_hash(self.view.as_str())
return space.newint(self._hash)
def descr_release(self, space):
- self.buf = None
+ self.view = None
def _check_released(self, space):
- if self.buf is None:
+ if self.view is None:
raise oefmt(space.w_ValueError,
"operation forbidden on released memoryview object")
@@ -298,17 +293,18 @@
return self
def descr_exit(self, space, __args__):
- self.buf = None
+ self.view = None
return space.w_None
def descr_pypy_raw_address(self, space):
from rpython.rtyper.lltypesystem import lltype, rffi
try:
- ptr = self.buf.get_raw_address()
+ ptr = self.view.get_raw_address()
except ValueError:
- # report the error using the RPython-level internal repr of
self.buf
+ # report the error using the RPython-level internal repr of
+ # self.view
msg = ("cannot find the underlying address of buffer that "
- "is internally %r" % (self.buf,))
+ "is internally %r" % (self.view,))
raise OperationError(space.w_ValueError, space.newtext(msg))
return space.newint(rffi.cast(lltype.Signed, ptr))
@@ -343,9 +339,9 @@
def _zero_in_shape(self):
# this method could be moved to the class BufferView
- buf = self.buf
- shape = buf.getshape()
- for i in range(buf.getndim()):
+ view = self.view
+ shape = view.getshape()
+ for i in range(view.getndim()):
if shape[i] == 0:
return True
return False
@@ -358,7 +354,7 @@
"memoryview: format argument must be a string")
fmt = space.text_w(w_format)
- buf = self.buf
+ view = self.view
ndim = 1
if not memory_view_c_contiguous(space, self.flags):
@@ -366,7 +362,7 @@
"memoryview: casts are restricted"
" to C-contiguous views")
- if (w_shape or buf.getndim() != 1) and self._zero_in_shape():
+ if (w_shape or view.getndim() != 1) and self._zero_in_shape():
raise oefmt(space.w_TypeError,
"memoryview: cannot casts view with"
" zeros in shape or strides")
@@ -379,11 +375,11 @@
raise oefmt(space.w_ValueError, \
"memoryview: number of dimensions must not exceed %d",
ndim)
- if ndim > 1 and buf.getndim() != 1:
+ if ndim > 1 and view.getndim() != 1:
raise oefmt(space.w_TypeError,
"memoryview: cast must be 1D -> ND or ND -> 1D")
- newview = self._cast_to_1D(space, buf, fmt)
+ newview = self._cast_to_1D(space, view, fmt)
if w_shape:
fview = space.fixedview(w_shape)
shape = [space.int_w(w_obj) for w_obj in fview]
@@ -391,7 +387,6 @@
return newview.wrap(space)
def _init_flags(self):
- buf = self.buf
ndim = self.getndim()
flags = 0
if ndim == 0:
@@ -419,21 +414,21 @@
self.flags = flags
- def _cast_to_1D(self, space, buf, fmt):
+ def _cast_to_1D(self, space, view, fmt):
itemsize = self.get_native_fmtchar(fmt)
if itemsize < 0:
- raise oefmt(space.w_ValueError, "memoryview: destination" \
- " format must be a native single character format
prefixed" \
+ raise oefmt(space.w_ValueError, "memoryview: destination"
+ " format must be a native single character format prefixed"
" with an optional '@'")
- origfmt = buf.getformat()
+ origfmt = view.getformat()
if self.get_native_fmtchar(origfmt) < 0 or \
(not is_byte_format(fmt) and not is_byte_format(origfmt)):
raise oefmt(space.w_TypeError,
- "memoryview: cannot cast between" \
+ "memoryview: cannot cast between"
" two non-byte formats")
- if buf.getlength() % itemsize != 0:
+ if view.getlength() % itemsize != 0:
raise oefmt(space.w_TypeError,
"memoryview: length is not a multiple of itemsize")
@@ -441,7 +436,7 @@
if not newfmt:
raise oefmt(space.w_RuntimeError,
"memoryview: internal error")
- return BufferView1D(buf, newfmt, itemsize)
+ return BufferView1D(view, newfmt, itemsize)
def get_native_fmtstr(self, fmt):
lenfmt = len(fmt)
@@ -449,7 +444,7 @@
if lenfmt == 0:
return None
elif lenfmt == 1:
- format = fmt[0] # fine!
+ format = fmt[0] # fine!
elif lenfmt == 2:
if fmt[0] == '@':
nat = True
@@ -459,8 +454,8 @@
else:
return None
- chars = ['c','b','B','h','H','i','I','l','L','q',
- 'Q','n','N','f','d','?','P']
+ chars = ['c', 'b', 'B', 'h', 'H', 'i', 'I', 'l', 'L', 'q',
+ 'Q', 'n', 'N', 'f', 'd', '?', 'P']
for c in unrolling_iterable(chars):
if c == format:
if nat:
@@ -470,16 +465,16 @@
return None
- def _cast_to_ND(self, space, buf, shape, ndim):
- length = itemsize = buf.getitemsize()
+ def _cast_to_ND(self, space, view, shape, ndim):
+ length = itemsize = view.getitemsize()
for i in range(ndim):
length *= shape[i]
- if length != buf.getlength():
+ if length != view.getlength():
raise oefmt(space.w_TypeError,
"memoryview: product(shape) * itemsize != buffer size")
strides = self._strides_from_shape(shape, itemsize)
- return BufferViewND(buf, ndim, shape, strides)
+ return BufferViewND(view, ndim, shape, strides)
@staticmethod
def _strides_from_shape(shape, itemsize):
@@ -497,7 +492,7 @@
def descr_hex(self, space):
from pypy.objspace.std.bytearrayobject import _array_to_hexstring
self._check_released(space)
- return _array_to_hexstring(space, self.buf.as_binary(), 0, 1,
self.getlength())
+ return _array_to_hexstring(space, self.view.as_binary(), 0, 1,
self.getlength())
def is_byte_format(char):
return char == 'b' or char == 'B' or char == 'c'
@@ -580,7 +575,7 @@
elif (fort == 'F'):
return _IsFortranContiguous(ndim, shape, strides, itemsize)
elif (fort == 'A'):
- return (_IsCContiguous(ndim, shape, strides, itemsize) or \
+ return (_IsCContiguous(ndim, shape, strides, itemsize) or
_IsFortranContiguous(ndim, shape, strides, itemsize))
return 0
diff --git a/pypy/objspace/std/strbufobject.py
b/pypy/objspace/std/strbufobject.py
--- a/pypy/objspace/std/strbufobject.py
+++ b/pypy/objspace/std/strbufobject.py
@@ -4,7 +4,7 @@
from pypy.objspace.std.bytesobject import W_AbstractBytesObject, W_BytesObject
from pypy.interpreter.gateway import interp2app, unwrap_spec
-from pypy.interpreter.buffer import SimpleBuffer, StringBuffer
+from pypy.interpreter.buffer import SimpleView, StringBuffer
from pypy.interpreter.error import OperationError
from rpython.rlib.rstring import StringBuilder
@@ -38,7 +38,7 @@
return self.force()
def buffer_w(self, space, flags):
- return SimpleBuffer(StringBuffer(self.force()))
+ return SimpleView(StringBuffer(self.force()))
def descr_len(self, space):
return space.newint(self.length)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit