Author: Brian Kearns <bdkea...@gmail.com> Branch: Changeset: r70063:922c7ee9e9d2 Date: 2014-03-18 17:15 -0400 http://bitbucket.org/pypy/pypy/changeset/922c7ee9e9d2/
Log: more buffer cleanups diff --git a/lib-python/2.7/test/test_memoryview.py b/lib-python/2.7/test/test_memoryview.py --- a/lib-python/2.7/test/test_memoryview.py +++ b/lib-python/2.7/test/test_memoryview.py @@ -171,7 +171,7 @@ # very inconsisten on CPython. In PyPy, memoryview supports # the buffer interface, and thus the following comparison # succeeds. See also the comment in - # pypy.modules.__builtin__.interp_memoryview.W_MemoryView.descr_buffer + # pypy.objspace.std.memoryview.W_MemoryView.descr_buffer # # Comparison with objects which don't support the buffer API self.assertFalse(m == u"abcdef", "%s %s" % (self, tp)) diff --git a/pypy/interpreter/test/test_buffer.py b/pypy/interpreter/test/test_buffer.py --- a/pypy/interpreter/test/test_buffer.py +++ b/pypy/interpreter/test/test_buffer.py @@ -1,12 +1,10 @@ import py -from pypy.module.__builtin__.interp_memoryview import W_Buffer from rpython.tool.udir import udir testdir = udir.ensure('test_buffer', dir=1) class TestBuffer: - def test_buffer_w(self): space = self.space w_hello = space.wrap('hello world') @@ -14,14 +12,14 @@ assert buf.getlength() == 11 assert buf.as_str() == 'hello world' assert buf.getslice(1, 6, 1, 5) == 'ello ' - assert space.buffer_w(W_Buffer(buf)) is buf + assert space.buffer_w(space.newbuffer(buf)) is buf assert space.bufferstr_w(w_hello) == 'hello world' - assert space.bufferstr_w(W_Buffer(space.buffer_w(w_hello))) == 'hello world' + assert space.bufferstr_w(space.newbuffer(space.buffer_w(w_hello))) == 'hello world' space.raises_w(space.w_TypeError, space.buffer_w, space.wrap(5)) def test_file_write(self): space = self.space - w_buffer = W_Buffer(space.buffer_w(space.wrap('hello world'))) + w_buffer = space.newbuffer(space.buffer_w(space.wrap('hello world'))) filename = str(testdir.join('test_file_write')) space.appexec([w_buffer, space.wrap(filename)], """(buffer, filename): f = open(filename, 'wb') @@ -42,4 +40,4 @@ space.bufferstr_w, space.wrap(u'\xe9')) -# Note: some app-level tests for buffer are in module/__builtin__/test/. +# Note: some app-level tests for buffer are in objspace/std/test/test_memoryview.py. diff --git a/pypy/module/__builtin__/__init__.py b/pypy/module/__builtin__/__init__.py --- a/pypy/module/__builtin__/__init__.py +++ b/pypy/module/__builtin__/__init__.py @@ -33,16 +33,11 @@ interpleveldefs = { # constants + '__debug__' : '(space.w_True)', # XXX 'None' : '(space.w_None)', 'False' : '(space.w_False)', 'True' : '(space.w_True)', - '__debug__' : '(space.w_True)', # XXX - 'type' : '(space.w_type)', - 'object' : '(space.w_object)', 'bytes' : '(space.w_str)', - 'unicode' : '(space.w_unicode)', - 'buffer' : 'interp_memoryview.W_Buffer', - 'memoryview' : 'interp_memoryview.W_MemoryView', 'file' : 'state.get(space).w_file', 'open' : 'state.get(space).w_file', diff --git a/pypy/module/__builtin__/test/test_builtin.py b/pypy/module/__builtin__/test/test_builtin.py --- a/pypy/module/__builtin__/test/test_builtin.py +++ b/pypy/module/__builtin__/test/test_builtin.py @@ -24,6 +24,17 @@ else: cls.w_safe_runtimerror = cls.space.wrap(sys.version_info < (2, 6)) + def test_builtin_names(self): + import __builtin__ + assert __builtin__.None is None + assert __builtin__.False is False + assert __builtin__.True is True + + assert __builtin__.buffer is buffer + assert __builtin__.bytes is str + assert __builtin__.dict is dict + assert __builtin__.memoryview is memoryview + def test_bytes_alias(self): assert bytes is str assert isinstance(eval("b'hi'"), str) 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 @@ -4,11 +4,9 @@ from pypy.interpreter.buffer import RWBuffer from pypy.interpreter.gateway import unwrap_spec -from pypy.module.__builtin__.interp_memoryview import W_Buffer class ByteBuffer(RWBuffer): - def __init__(self, len): self.data = ['\x00'] * len @@ -24,4 +22,4 @@ @unwrap_spec(length=int) def bytebuffer(space, length): - return W_Buffer(ByteBuffer(length)) + return space.newbuffer(ByteBuffer(length)) 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 @@ -4,7 +4,7 @@ from pypy.interpreter.gateway import unwrap_spec, interp2app from pypy.interpreter.typedef import TypeDef, make_weakref_descr from pypy.module._cffi_backend import cdataobj, ctypeptr, ctypearray -from pypy.module.__builtin__.interp_memoryview import W_Buffer +from pypy.objspace.std.memoryview import W_Buffer from rpython.rtyper.annlowlevel import llstr from rpython.rtyper.lltypesystem import rffi 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 @@ -5,7 +5,6 @@ TypeDef, GetSetProperty, generic_new_descr, interp_attrproperty_w) from pypy.interpreter.gateway import interp2app, unwrap_spec, WrappedDefault from pypy.interpreter.buffer import RWBuffer -from pypy.module.__builtin__.interp_memoryview import W_Buffer from rpython.rlib.rstring import StringBuilder from rpython.rlib.rarithmetic import r_longlong, intmask from rpython.rlib import rposix @@ -512,7 +511,7 @@ def _raw_read(self, space, buffer, start, length): length = intmask(length) - w_buf = W_Buffer(RawBuffer(buffer, start, length)) + w_buf = space.newbuffer(RawBuffer(buffer, start, length)) while True: try: w_size = space.call_method(self.w_raw, "readinto", w_buf) diff --git a/pypy/module/cpyext/api.py b/pypy/module/cpyext/api.py --- a/pypy/module/cpyext/api.py +++ b/pypy/module/cpyext/api.py @@ -22,10 +22,10 @@ from pypy.interpreter.nestedscope import Cell from pypy.interpreter.module import Module from pypy.interpreter.function import StaticMethod +from pypy.objspace.std.memoryview import W_MemoryView from pypy.objspace.std.sliceobject import W_SliceObject from pypy.module.__builtin__.descriptor import W_Property from pypy.module.__builtin__.interp_classobj import W_ClassObject -from pypy.module.__builtin__.interp_memoryview import W_MemoryView from pypy.module.micronumpy.base import W_NDimArray from rpython.rlib.entrypoint import entrypoint_lowlevel from rpython.rlib.rposix import is_valid_fd, validate_fd diff --git a/pypy/module/cpyext/bufferobject.py b/pypy/module/cpyext/bufferobject.py --- a/pypy/module/cpyext/bufferobject.py +++ b/pypy/module/cpyext/bufferobject.py @@ -1,12 +1,12 @@ from rpython.rtyper.lltypesystem import rffi, lltype +from pypy.interpreter.buffer import StringBuffer, SubBuffer +from pypy.interpreter.error import OperationError from pypy.module.cpyext.api import ( cpython_api, Py_ssize_t, cpython_struct, bootstrap_function, PyObjectFields, PyObject) from pypy.module.cpyext.pyobject import make_typedescr, Py_DecRef, make_ref -from pypy.interpreter.buffer import StringBuffer, SubBuffer -from pypy.interpreter.error import OperationError -from pypy.module.__builtin__.interp_memoryview import W_Buffer from pypy.module.array.interp_array import ArrayBuffer +from pypy.objspace.std.memoryview import W_Buffer PyBufferObjectStruct = lltype.ForwardReference() 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 @@ -14,7 +14,6 @@ from pypy.module.cpyext.pyobject import from_ref from pypy.module.cpyext.pyerrors import PyErr_Occurred from pypy.module.cpyext.state import State -from pypy.module.__builtin__.interp_memoryview import W_Buffer from pypy.interpreter.error import OperationError, oefmt from pypy.interpreter.buffer import Buffer from pypy.interpreter.argument import Arguments @@ -250,7 +249,7 @@ size = generic_cpy_call(space, func_target, w_self, index, ptr) if size < 0: space.fromcache(State).check_and_raise_exception(always=True) - return W_Buffer(CPyBuffer(ptr[0], size, w_self)) + return space.newbuffer(CPyBuffer(ptr[0], size, w_self)) def get_richcmp_func(OP_CONST): def inner(space, w_self, w_args, func): 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 @@ -7,7 +7,6 @@ from rpython.rlib.rawstorage import RAW_STORAGE_PTR from rpython.rtyper.lltypesystem import rffi from rpython.tool.sourcetools import func_with_new_name -from pypy.module.__builtin__.interp_memoryview import W_Buffer from pypy.module.micronumpy import descriptor, ufuncs, boxes, arrayops, loop, \ support, constants as NPY from pypy.module.micronumpy.appbridge import get_appbridge_cache @@ -607,7 +606,7 @@ return self.implementation.get_buffer(space) def descr_get_data(self, space): - return W_Buffer(self.buffer_w(space)) + return space.newbuffer(self.buffer_w(space)) @unwrap_spec(offset=int, axis1=int, axis2=int) def descr_diagonal(self, space, offset=0, axis1=0, axis2=1): diff --git a/pypy/module/__builtin__/interp_memoryview.py b/pypy/objspace/std/memoryview.py rename from pypy/module/__builtin__/interp_memoryview.py rename to pypy/objspace/std/memoryview.py --- a/pypy/module/__builtin__/interp_memoryview.py +++ b/pypy/objspace/std/memoryview.py @@ -37,6 +37,7 @@ """ def __init__(self, buf): + assert isinstance(buf, buffer.Buffer) self.buf = buf def buffer_w(self, space): @@ -171,6 +172,7 @@ """ def __init__(self, buf): + assert isinstance(buf, buffer.Buffer) self.buf = buf def buffer_w(self, space): diff --git a/pypy/objspace/std/model.py b/pypy/objspace/std/model.py --- a/pypy/objspace/std/model.py +++ b/pypy/objspace/std/model.py @@ -63,7 +63,7 @@ from pypy.objspace.std import unicodeobject from pypy.objspace.std import dictproxyobject from pypy.objspace.std import proxyobject - from pypy.module.__builtin__.interp_memoryview import W_Buffer + from pypy.objspace.std.memoryview import W_Buffer, W_MemoryView import pypy.objspace.std.default # register a few catch-all multimethods import pypy.objspace.std.marshal_impl # install marshal multimethods @@ -84,6 +84,7 @@ self.pythontypes.append(boolobject.W_BoolObject.typedef) self.pythontypes.append(longobject.W_LongObject.typedef) self.pythontypes.append(W_Buffer.typedef) + self.pythontypes.append(W_MemoryView.typedef) # the set of implementation types self.typeorder = { 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 @@ -24,6 +24,7 @@ from pypy.objspace.std.iterobject import W_AbstractSeqIterObject from pypy.objspace.std.listobject import W_ListObject from pypy.objspace.std.longobject import W_LongObject, newlong +from pypy.objspace.std.memoryview import W_Buffer from pypy.objspace.std.noneobject import W_NoneObject from pypy.objspace.std.objectobject import W_ObjectObject from pypy.objspace.std.iterobject import W_SeqIterObject @@ -314,6 +315,9 @@ def newseqiter(self, w_obj): return W_SeqIterObject(w_obj) + def newbuffer(self, w_obj): + return W_Buffer(w_obj) + def type(self, w_obj): jit.promote(w_obj.__class__) return w_obj.getclass(self) diff --git a/pypy/module/__builtin__/test/test_buffer.py b/pypy/objspace/std/test/test_memoryview.py rename from pypy/module/__builtin__/test/test_buffer.py rename to pypy/objspace/std/test/test_memoryview.py --- a/pypy/module/__builtin__/test/test_buffer.py +++ b/pypy/objspace/std/test/test_memoryview.py @@ -1,6 +1,3 @@ -"""Tests some behaviour of the buffer type that is not tested in -lib-python/2.5.2/test/test_types.py where the stdlib buffer tests live.""" - class AppTestBuffer: spaceconfig = dict(usemodules=['array']) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit