[pypy-commit] pypy space-newtext: micronumpy
cfbolz
pypy.commits at gmail.com
Wed Nov 9 07:37:56 EST 2016
Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: space-newtext
Changeset: r88259:613414c4df6c
Date: 2016-11-08 12:52 +0100
http://bitbucket.org/pypy/pypy/changeset/613414c4df6c/
Log: micronumpy
diff --git a/pypy/module/micronumpy/arrayops.py b/pypy/module/micronumpy/arrayops.py
--- a/pypy/module/micronumpy/arrayops.py
+++ b/pypy/module/micronumpy/arrayops.py
@@ -105,13 +105,13 @@
raise oefmt(space.w_ValueError, "need at least one array to concatenate")
args_w = [convert_to_array(space, w_arg) for w_arg in args_w]
if w_axis is None:
- w_axis = space.wrap(0)
+ w_axis = space.newint(0)
if space.is_none(w_axis):
args_w = [w_arg.reshape(space,
space.newlist([w_arg.descr_get_size(space)]),
w_arg.get_order())
for w_arg in args_w]
- w_axis = space.wrap(0)
+ w_axis = space.newint(0)
dtype = args_w[0].get_dtype()
shape = args_w[0].get_shape()[:]
ndim = len(shape)
@@ -184,7 +184,7 @@
def count_nonzero(space, w_obj):
- return space.wrap(loop.count_all_true(convert_to_array(space, w_obj)))
+ return space.newint(loop.count_all_true(convert_to_array(space, w_obj)))
def choose(space, w_arr, w_choices, w_out, w_mode):
diff --git a/pypy/module/micronumpy/base.py b/pypy/module/micronumpy/base.py
--- a/pypy/module/micronumpy/base.py
+++ b/pypy/module/micronumpy/base.py
@@ -136,7 +136,7 @@
if w_val is not None:
w_val = dtype.coerce(space, w_val)
else:
- w_val = dtype.coerce(space, space.wrap(0))
+ w_val = dtype.coerce(space, space.newint(0))
return convert_to_array(space, w_val)
@staticmethod
diff --git a/pypy/module/micronumpy/boxes.py b/pypy/module/micronumpy/boxes.py
--- a/pypy/module/micronumpy/boxes.py
+++ b/pypy/module/micronumpy/boxes.py
@@ -196,11 +196,11 @@
def descr_str(self, space):
tp = self.get_dtype(space).itemtype
- return space.wrap(tp.str_format(self, add_quotes=False))
+ return space.newtext(tp.str_format(self, add_quotes=False))
def descr_repr(self, space):
tp = self.get_dtype(space).itemtype
- return space.wrap(tp.str_format(self, add_quotes=True))
+ return space.newtext(tp.str_format(self, add_quotes=True))
def descr_format(self, space, w_spec):
return space.format(self.item(space), w_spec)
@@ -209,7 +209,7 @@
return space.hash(self.item(space))
def descr___array_priority__(self, space):
- return space.wrap(0.0)
+ return space.newfloat(0.0)
def descr_index(self, space):
return space.index(self.item(space))
@@ -242,7 +242,7 @@
return space.hex(self.descr_int(space))
def descr_nonzero(self, space):
- return space.wrap(self.get_dtype(space).itemtype.bool(self))
+ return space.newbool(self.get_dtype(space).itemtype.bool(self))
# TODO: support all kwargs in ufuncs like numpy ufunc_object.c
sig = None
@@ -385,16 +385,16 @@
return self.get_dtype(space)
def descr_get_size(self, space):
- return space.wrap(1)
+ return space.newint(1)
def descr_get_itemsize(self, space):
- return space.wrap(self.get_dtype(space).elsize)
+ return space.newint(self.get_dtype(space).elsize)
def descr_get_shape(self, space):
return space.newtuple([])
def descr_get_ndim(self, space):
- return space.wrap(0)
+ return space.newint(0)
def descr_copy(self, space):
return self.convert_to(space, self.get_dtype(space))
@@ -412,18 +412,18 @@
return self.get_dtype(space).itemtype.byteswap(self)
def descr_tostring(self, space, __args__):
- w_meth = space.getattr(self.descr_ravel(space), space.wrap('tostring'))
+ w_meth = space.getattr(self.descr_ravel(space), space.newtext('tostring'))
return space.call_args(w_meth, __args__)
def descr_reshape(self, space, __args__):
- w_meth = space.getattr(self.descr_ravel(space), space.wrap('reshape'))
+ w_meth = space.getattr(self.descr_ravel(space), space.newtext('reshape'))
w_res = space.call_args(w_meth, __args__)
if isinstance(w_res, W_NDimArray) and len(w_res.get_shape()) == 0:
return w_res.get_scalar_value()
return w_res
def descr_nd_nonzero(self, space, __args__):
- w_meth = space.getattr(self.descr_ravel(space), space.wrap('nonzero'))
+ w_meth = space.getattr(self.descr_ravel(space), space.newtext('nonzero'))
return space.call_args(w_meth, __args__)
def descr_get_real(self, space):
@@ -579,7 +579,7 @@
read_val = dtype.read(self.arr, self.ofs, ofs)
if isinstance (read_val, W_StringBox):
# StringType returns a str
- return space.wrap(dtype.itemtype.to_str(read_val))
+ return space.newbytes(dtype.itemtype.to_str(read_val))
return read_val
def descr_iter(self, space):
@@ -635,7 +635,7 @@
if dtype.is_unicode():
return self
elif dtype.is_object():
- return W_ObjectBox(space.wrap(self._value))
+ return W_ObjectBox(space.newunicode(self._value))
else:
raise oefmt(space.w_NotImplementedError,
"Conversion from unicode not implemented yet")
diff --git a/pypy/module/micronumpy/broadcast.py b/pypy/module/micronumpy/broadcast.py
--- a/pypy/module/micronumpy/broadcast.py
+++ b/pypy/module/micronumpy/broadcast.py
@@ -67,19 +67,19 @@
self.op_flags[i], self)
def descr_iter(self, space):
- return space.wrap(self)
+ return self
def descr_get_shape(self, space):
- return space.newtuple([space.wrap(i) for i in self.shape])
+ return space.newtuple([space.newint(i) for i in self.shape])
def descr_get_size(self, space):
- return space.wrap(self.size)
+ return space.newint(self.size)
def descr_get_index(self, space):
- return space.wrap(self.index)
+ return space.newint(self.index)
def descr_get_numiter(self, space):
- return space.wrap(len(self.iters))
+ return space.newint(len(self.iters))
@jit.unroll_safe
def descr_next(self, space):
diff --git a/pypy/module/micronumpy/casting.py b/pypy/module/micronumpy/casting.py
--- a/pypy/module/micronumpy/casting.py
+++ b/pypy/module/micronumpy/casting.py
@@ -127,18 +127,18 @@
raise oefmt(space.w_TypeError,
"did not understand one of the types; 'None' not accepted")
if isinstance(w_from, W_NDimArray):
- return space.wrap(can_cast_array(space, w_from, target, casting))
+ return space.newbool(can_cast_array(space, w_from, target, casting))
elif is_scalar_w(space, w_from):
w_scalar = as_scalar(space, w_from)
w_arr = W_NDimArray.from_scalar(space, w_scalar)
- return space.wrap(can_cast_array(space, w_arr, target, casting))
+ return space.newbool(can_cast_array(space, w_arr, target, casting))
try:
origin = as_dtype(space, w_from, allow_None=False)
except TypeError:
raise oefmt(space.w_TypeError,
"did not understand one of the types; 'None' not accepted")
- return space.wrap(can_cast_type(space, origin, target, casting))
+ return space.newbool(can_cast_type(space, origin, target, casting))
kind_ordering = {
Bool.kind: 0, ULong.kind: 1, Long.kind: 2,
@@ -328,7 +328,7 @@
space.int_w(w_obj)
except OperationError as e:
if e.match(space, space.w_OverflowError):
- if space.is_true(space.le(w_obj, space.wrap(0))):
+ if space.is_true(space.le(w_obj, space.newint(0))):
return int64_dtype
return uint64_dtype
raise
diff --git a/pypy/module/micronumpy/compile.py b/pypy/module/micronumpy/compile.py
--- a/pypy/module/micronumpy/compile.py
+++ b/pypy/module/micronumpy/compile.py
@@ -190,6 +190,10 @@
return StringObject(obj)
raise NotImplementedError
+ def newtext(self, obj):
+ return StringObject(obj)
+ newbytes = newtext
+
def newlist(self, items):
return ListObject(items)
@@ -197,7 +201,7 @@
return ComplexObject(r, i)
def newfloat(self, f):
- return self.float(f)
+ return FloatObject(f)
def newslice(self, start, stop, step):
return SliceObject(self.int_w(start), self.int_w(stop),
@@ -293,6 +297,7 @@
if isinstance(w_obj, StringObject):
return w_obj.v
raise NotImplementedError
+ text_w = str_w
def unicode_w(self, w_obj):
# XXX
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
@@ -233,7 +233,7 @@
elif shape_len > 1:
raise IndexError
idx = support.index_w(space, w_idx)
- return self._lookup_by_index(space, [space.wrap(idx)])
+ return self._lookup_by_index(space, [space.newint(idx)])
@jit.unroll_safe
def _prepare_slice_args(self, space, w_idx):
@@ -366,7 +366,7 @@
w_res = W_NDimArray.from_shape(space, [s, nd], index_type)
loop.nonzero(w_res, self, box)
w_res = w_res.implementation.swapaxes(space, w_res, 0, 1)
- l_w = [w_res.descr_getitem(space, space.wrap(d)) for d in range(nd)]
+ l_w = [w_res.descr_getitem(space, space.newint(d)) for d in range(nd)]
return space.newtuple(l_w)
##def get_storage(self):
diff --git a/pypy/module/micronumpy/ctors.py b/pypy/module/micronumpy/ctors.py
--- a/pypy/module/micronumpy/ctors.py
+++ b/pypy/module/micronumpy/ctors.py
@@ -45,10 +45,10 @@
def try_interface_method(space, w_object, copy):
try:
- w_interface = space.getattr(w_object, space.wrap("__array_interface__"))
+ w_interface = space.getattr(w_object, space.newtext("__array_interface__"))
if w_interface is None:
return None, False
- version_w = space.finditem(w_interface, space.wrap("version"))
+ version_w = space.finditem(w_interface, space.newtext("version"))
if version_w is None:
raise oefmt(space.w_ValueError, "__array_interface__ found without"
" 'version' key")
@@ -60,11 +60,11 @@
raise oefmt(space.w_ValueError,
"__array_interface__ version %d not supported", version)
# make a view into the data
- w_shape = space.finditem(w_interface, space.wrap('shape'))
- w_dtype = space.finditem(w_interface, space.wrap('typestr'))
- w_descr = space.finditem(w_interface, space.wrap('descr'))
- w_data = space.finditem(w_interface, space.wrap('data'))
- w_strides = space.finditem(w_interface, space.wrap('strides'))
+ w_shape = space.finditem(w_interface, space.newtext('shape'))
+ w_dtype = space.finditem(w_interface, space.newtext('typestr'))
+ w_descr = space.finditem(w_interface, space.newtext('descr'))
+ w_data = space.finditem(w_interface, space.newtext('data'))
+ w_strides = space.finditem(w_interface, space.newtext('strides'))
if w_shape is None or w_dtype is None:
raise oefmt(space.w_ValueError,
"__array_interface__ missing one or more required keys: shape, typestr"
@@ -96,7 +96,7 @@
start=offset), read_only
if w_data is None:
w_data = w_object
- w_offset = space.finditem(w_interface, space.wrap('offset'))
+ w_offset = space.finditem(w_interface, space.newtext('offset'))
if w_offset is None:
offset = 0
else:
@@ -115,11 +115,11 @@
raise
def _descriptor_from_pep3118_format(space, c_format):
- descr = descriptor.decode_w_dtype(space, space.wrap(c_format))
+ descr = descriptor.decode_w_dtype(space, space.newtext(c_format))
if descr:
return descr
msg = "invalid PEP 3118 format string: '%s'" % c_format
- space.warn(space.wrap(msg), space.w_RuntimeWarning)
+ space.warn(space.newtext(msg), space.w_RuntimeWarning)
return None
def _array_from_buffer_3118(space, w_object, dtype):
@@ -142,7 +142,7 @@
if descr.elsize != space.int_w(space.getattr(w_buf, space.newbytes('itemsize'))):
msg = ("Item size computed from the PEP 3118 buffer format "
"string does not match the actual item size.")
- space.warn(space.wrap(msg), space.w_RuntimeWarning)
+ space.warn(space.newtext(msg), space.w_RuntimeWarning)
return w_object
dtype = descr
elif not dtype:
@@ -170,7 +170,7 @@
elif nd > 1:
msg = ("ndim computed from the PEP 3118 buffer format "
"is greater than 1, but shape is NULL.")
- space.warn(space.wrap(msg), space.w_RuntimeWarning)
+ space.warn(space.newtext(msg), space.w_RuntimeWarning)
return w_object
try:
w_data = rffi.cast(RAW_STORAGE_PTR, space.int_w(space.call_method(w_buf, '_pypy_raw_address')))
@@ -238,7 +238,7 @@
must_copy |= (npy_order == NPY.CORDER and not flags & NPY.ARRAY_C_CONTIGUOUS)
must_copy |= (npy_order == NPY.FORTRANORDER and not flags & NPY.ARRAY_F_CONTIGUOUS)
if must_copy:
- return w_object.descr_copy(space, space.wrap(npy_order))
+ return w_object.descr_copy(space, space.newint(npy_order))
else:
return w_object
if subok and not type(w_object) is W_NDimArray:
@@ -338,9 +338,9 @@
from pypy.objspace.std.bufferobject import W_Buffer
shape = [space.len_w(w_iterable)]
if space.isinstance_w(w_iterable, space.w_buffer):
- batch = [space.wrap(0)] * shape[0]
+ batch = [space.newint(0)] * shape[0]
for i in range(shape[0]):
- batch[i] = space.ord(space.getitem(w_iterable, space.wrap(i)))
+ batch[i] = space.ord(space.getitem(w_iterable, space.newint(i)))
else:
batch = space.listview(w_iterable)
while True:
@@ -498,7 +498,7 @@
ai.setitem(state, val)
state = ai.next(state)
- return space.wrap(a)
+ return a
def _fromstring_bin(space, s, count, length, dtype):
@@ -516,7 +516,7 @@
a = W_NDimArray.from_shape(space, [count], dtype=dtype)
loop.fromstring_loop(space, a, dtype, itemsize, s)
- return space.wrap(a)
+ return a
@unwrap_spec(s=str, count=int, sep=str, w_dtype=WrappedDefault(None))
diff --git a/pypy/module/micronumpy/descriptor.py b/pypy/module/micronumpy/descriptor.py
--- a/pypy/module/micronumpy/descriptor.py
+++ b/pypy/module/micronumpy/descriptor.py
@@ -222,8 +222,8 @@
else:
name = self.get_name()
if self.is_flexible() and self.elsize != 0:
- return space.wrap(name + str(self.elsize * 8))
- return space.wrap(name)
+ return space.newtext(name + str(self.elsize * 8))
+ return space.newtext(name)
def descr_get_str(self, space, ignore='|', simple=True):
if not simple and self.fields and len(self.fields) > 0:
@@ -233,10 +233,10 @@
total += s
if not simple and total > 0:
return space.newtuple(
- [space.wrap(self.subdtype.get_str(ignore='')),
- space.newtuple([space.wrap(s) for s in self.shape]),
+ [space.newtext(self.subdtype.get_str(ignore='')),
+ space.newtuple([space.newint(s) for s in self.shape]),
])
- return space.wrap(self.get_str(ignore=ignore))
+ return space.newtext(self.get_str(ignore=ignore))
def get_str(self, ignore='|'):
basic = self.kind
@@ -257,7 +257,7 @@
if style == 'descr':
simple = True
if not self.is_record():
- return space.newlist([space.newtuple([space.wrap(""),
+ return space.newlist([space.newtuple([space.newtext(""),
self.descr_get_str(space, simple=simple)])])
elif (self.alignment > 1 and not style.startswith('descr')) or force_dict:
# we need to force a sorting order for the keys,
@@ -324,7 +324,7 @@
s_as_list += titles + [', ']
s_as_list += ["'itemsize':", str(self.elsize), suffix]
- return space.wrap(''.join(s_as_list))
+ return space.newtext(''.join(s_as_list))
else:
descr = []
total = 0
@@ -337,10 +337,10 @@
total += subdtype.elsize
ignore = '|'
if title:
- subdescr = [space.newtuple([space.wrap(title), space.wrap(name)])]
+ subdescr = [space.newtuple([space.newtext(title), space.newtext(name)])]
ignore = ''
else:
- subdescr = [space.wrap(name)]
+ subdescr = [space.newtext(name)]
if subdtype.is_record():
subdescr.append(subdtype.descr_get_descr(space, style))
elif subdtype.subdtype is not None:
@@ -351,19 +351,19 @@
subdescr.append(subdtype.descr_get_shape(space))
descr.append(space.newtuple(subdescr[:]))
if self.alignment >= 0 and not style.endswith('subdtype'):
- return space.wrap(space.str_w(space.repr(space.newlist(descr))) + ', align=True')
+ return space.newtext(space.str_w(space.repr(space.newlist(descr))) + ', align=True')
return space.newlist(descr)
def descr_get_hasobject(self, space):
- return space.wrap(self.is_object())
+ return space.newbool(self.is_object())
def descr_get_isbuiltin(self, space):
if self.fields is None:
- return space.wrap(1)
- return space.wrap(0)
+ return space.newint(1)
+ return space.newint(0)
def descr_get_isnative(self, space):
- return space.wrap(self.is_native())
+ return space.newbool(self.is_native())
def descr_get_base(self, space):
return space.wrap(self.base)
@@ -375,10 +375,10 @@
self.descr_get_shape(space)])
def descr_get_shape(self, space):
- return space.newtuple([space.wrap(dim) for dim in self.shape])
+ return space.newtuple([space.newint(dim) for dim in self.shape])
def descr_get_flags(self, space):
- return space.wrap(self.flags)
+ return space.newint(self.flags)
def descr_get_fields(self, space):
if not self.fields:
@@ -387,18 +387,18 @@
for name, title in self.names:
offset, subdtype = self.fields[name]
if title is not None:
- w_nt = space.newtuple([space.wrap(name), space.wrap(title)])
+ w_nt = space.newtuple([space.newtext(name), space.newtext(title)])
space.setitem(w_fields, w_nt,
- space.newtuple([subdtype, space.wrap(offset)]))
+ space.newtuple([subdtype, space.newint(offset)]))
else:
- space.setitem(w_fields, space.wrap(name),
- space.newtuple([subdtype, space.wrap(offset)]))
+ space.setitem(w_fields, space.newtext(name),
+ space.newtuple([subdtype, space.newint(offset)]))
return w_fields
def descr_get_names(self, space):
if not self.fields:
return space.w_None
- return space.newtuple([space.wrap(name[0]) for name in self.names])
+ return space.newtuple([space.newtext(name[0]) for name in self.names])
def descr_set_names(self, space, w_names):
if not self.fields:
@@ -462,30 +462,30 @@
return False
def descr_eq(self, space, w_other):
- return space.wrap(self.eq(space, w_other))
+ return space.newbool(self.eq(space, w_other))
def descr_ne(self, space, w_other):
- return space.wrap(not self.eq(space, w_other))
+ return space.newbool(not self.eq(space, w_other))
def descr_le(self, space, w_other):
from .casting import can_cast_to
w_other = as_dtype(space, w_other)
- return space.wrap(can_cast_to(self, w_other))
+ return space.newbool(can_cast_to(self, w_other))
def descr_ge(self, space, w_other):
from .casting import can_cast_to
w_other = as_dtype(space, w_other)
- return space.wrap(can_cast_to(w_other, self))
+ return space.newbool(can_cast_to(w_other, self))
def descr_lt(self, space, w_other):
from .casting import can_cast_to
w_other = as_dtype(space, w_other)
- return space.wrap(can_cast_to(self, w_other) and not self.eq(space, w_other))
+ return space.newbool(can_cast_to(self, w_other) and not self.eq(space, w_other))
def descr_gt(self, space, w_other):
from .casting import can_cast_to
w_other = as_dtype(space, w_other)
- return space.wrap(can_cast_to(w_other, self) and not self.eq(space, w_other))
+ return space.newbool(can_cast_to(w_other, self) and not self.eq(space, w_other))
def _compute_hash(self, space, x):
from rpython.rlib.rarithmetic import intmask
@@ -518,7 +518,7 @@
return x
def descr_hash(self, space):
- return space.wrap(self._compute_hash(space, 0x345678))
+ return space.newint(self._compute_hash(space, 0x345678))
def descr_str(self, space):
if self.fields:
@@ -540,12 +540,12 @@
def descr_repr(self, space):
if isinstance(self.itemtype, types.CharType):
- return space.wrap("dtype('S1')")
+ return space.newtext("dtype('S1')")
if self.fields:
r = self.descr_get_descr(space, style='repr')
name = space.str_w(space.str(self.w_box_type))
if name != "<type 'numpy.void'>":
- r = space.newtuple([space.wrap(self.w_box_type), r])
+ r = space.newtuple([self.w_box_type, r])
elif self.subdtype is not None:
r = space.newtuple([self.subdtype.descr_get_str(space),
self.descr_get_shape(space)])
@@ -558,12 +558,12 @@
size = self.elsize
if self.num == NPY.UNICODE:
size >>= 2
- r = space.wrap("'" + byteorder + self.char + str(size) + "'")
+ r = space.newtext("'" + byteorder + self.char + str(size) + "'")
else:
r = self.descr_get_name(space, quote=True)
if space.isinstance_w(r, space.w_str):
- return space.wrap("dtype(%s)" % space.str_w(r))
- return space.wrap("dtype(%s)" % space.str_w(space.repr(r)))
+ return space.newtext("dtype(%s)" % space.str_w(r))
+ return space.newtext("dtype(%s)" % space.str_w(space.repr(r)))
def descr_getitem(self, space, w_item):
if not self.fields:
@@ -589,8 +589,8 @@
def descr_len(self, space):
if not self.fields:
- return space.wrap(0)
- return space.wrap(len(self.fields))
+ return space.newint(0)
+ return space.newint(len(self.fields))
def runpack_str(self, space, s):
if self.is_str_or_unicode():
@@ -609,10 +609,10 @@
def descr_reduce(self, space):
w_class = space.type(self)
builder_args = space.newtuple([
- space.wrap("%s%d" % (self.kind, self.elsize)),
- space.wrap(0), space.wrap(1)])
+ space.newbytes("%s%d" % (self.kind, self.elsize)),
+ space.newint(0), space.newint(1)])
- version = space.wrap(3)
+ version = space.newint(3)
endian = self.byteorder
if endian == NPY.NATIVE:
endian = NPY.NATBYTE
@@ -620,17 +620,17 @@
names = self.descr_get_names(space)
values = self.descr_get_fields(space)
if self.is_flexible():
- w_size = space.wrap(self.elsize)
+ w_size = space.newint(self.elsize)
if self.alignment > 2:
- w_alignment = space.wrap(self.alignment)
+ w_alignment = space.newint(self.alignment)
else:
- w_alignment = space.wrap(1)
+ w_alignment = space.newint(1)
else:
- w_size = space.wrap(-1)
- w_alignment = space.wrap(-1)
- w_flags = space.wrap(self.flags)
+ w_size = space.newint(-1)
+ w_alignment = space.newint(-1)
+ w_flags = space.newint(self.flags)
- data = space.newtuple([version, space.wrap(endian), subdescr,
+ data = space.newtuple([version, space.newbytes(endian), subdescr,
names, values, w_size, w_alignment, w_flags])
return space.newtuple([w_class, builder_args, data])
@@ -639,24 +639,24 @@
# if builtin dtype (but not w_voiddtype)
return space.w_None
- version = space.int_w(space.getitem(w_data, space.wrap(0)))
+ version = space.int_w(space.getitem(w_data, space.newint(0)))
if version != 3:
raise oefmt(space.w_ValueError,
"can't handle version %d of numpy.dtype pickle",
version)
- endian = byteorder_w(space, space.getitem(w_data, space.wrap(1)))
+ endian = byteorder_w(space, space.getitem(w_data, space.newint(1)))
if endian == NPY.NATBYTE:
endian = NPY.NATIVE
- w_subarray = space.getitem(w_data, space.wrap(2))
- w_names = space.getitem(w_data, space.wrap(3))
- w_fields = space.getitem(w_data, space.wrap(4))
- size = space.int_w(space.getitem(w_data, space.wrap(5)))
- alignment = space.int_w(space.getitem(w_data, space.wrap(6)))
+ w_subarray = space.getitem(w_data, space.newint(2))
+ w_names = space.getitem(w_data, space.newint(3))
+ w_fields = space.getitem(w_data, space.newint(4))
+ size = space.int_w(space.getitem(w_data, space.newint(5)))
+ alignment = space.int_w(space.getitem(w_data, space.newint(6)))
if alignment < 2:
alignment = -1
- flags = space.int_w(space.getitem(w_data, space.wrap(7)))
+ flags = space.int_w(space.getitem(w_data, space.newint(7)))
if (w_names == space.w_None) != (w_fields == space.w_None):
raise oefmt(space.w_ValueError, "inconsistent fields and names in Numpy dtype unpickling")
@@ -685,11 +685,11 @@
self.fields = {}
for w_name in space.fixedview(w_names):
# XXX what happens if there is a title in the pickled dtype?
- name = space.str_w(w_name)
+ name = space.bytes_w(w_name)
value = space.getitem(w_fields, w_name)
- dtype = space.getitem(value, space.wrap(0))
- offset = space.int_w(space.getitem(value, space.wrap(1)))
+ dtype = space.getitem(value, space.newint(0))
+ offset = space.int_w(space.getitem(value, space.newint(1)))
self.names.append((name, None))
assert isinstance(dtype, W_Dtype)
self.fields[name] = offset, dtype
@@ -829,7 +829,7 @@
return retval
def _get_val_or_none(space, w_dict, key):
- w_key = space.wrap(key)
+ w_key = space.newtext(key)
try:
w_val = space.getitem(w_dict, w_key)
except OperationError as e:
@@ -890,7 +890,7 @@
try:
return get_appbridge_cache(space).call_method(space,
'numpy.core._internal', '_usefields', Arguments(space,
- [w_dict, space.wrap(alignment >= 0)]))
+ [w_dict, space.newbool(alignment >= 0)]))
except OperationError as e:
if e.match(space, space.w_ImportError):
return _usefields(space, w_dict, alignment >= 0)
@@ -950,7 +950,7 @@
"_commastring is not returning a list with len >= 1")
if space.len_w(w_lst) == 1:
return descr__new__(space, space.gettypefor(W_Dtype),
- space.getitem(w_lst, space.wrap(0)), align=alignment>0)
+ space.getitem(w_lst, space.newint(0)), align=alignment>0)
else:
try:
return dtype_from_list(space, w_lst, True, alignment)
@@ -1088,15 +1088,15 @@
return _set_metadata_and_copy( space, w_metadata,
dtype_from_list(space, w_dtype, False, alignment), copy)
elif space.isinstance_w(w_dtype, space.w_tuple):
- w_dtype0 = space.getitem(w_dtype, space.wrap(0))
- w_dtype1 = space.getitem(w_dtype, space.wrap(1))
+ w_dtype0 = space.getitem(w_dtype, space.newint(0))
+ w_dtype1 = space.getitem(w_dtype, space.newint(1))
# create a new dtype object
l_side = make_new_dtype(space, w_subtype, w_dtype0, alignment, copy)
assert isinstance(l_side, W_Dtype)
if l_side.elsize == 0 and space.isinstance_w(w_dtype1, space.w_int):
#(flexible_dtype, itemsize)
name = "%s%d" % (l_side.kind, space.int_w(w_dtype1))
- retval = make_new_dtype(space, w_subtype, space.wrap(name), alignment, copy)
+ retval = make_new_dtype(space, w_subtype, space.newtext(name), alignment, copy)
return _set_metadata_and_copy(space, w_metadata, retval, copy)
elif (space.isinstance_w(w_dtype1, space.w_int) or
space.isinstance_w(w_dtype1, space.w_tuple) or
@@ -1467,15 +1467,15 @@
space.wrap(dtype.itemtype.get_element_size())]
if dtype.is_int():
if dtype.is_bool():
- w_maxobj = space.wrap(1)
- w_minobj = space.wrap(0)
+ w_maxobj = space.newint(1)
+ w_minobj = space.newint(0)
elif dtype.is_signed():
- w_maxobj = space.wrap(r_longlong((1 << (itembits - 1))
- - 1))
- w_minobj = space.wrap(r_longlong(-1) << (itembits - 1))
+ w_maxobj = space.newint(r_longlong((1 << (itembits - 1))
+ - 1))
+ w_minobj = space.newint(r_longlong(-1) << (itembits - 1))
else:
- w_maxobj = space.wrap(r_ulonglong(1 << itembits) - 1)
- w_minobj = space.wrap(0)
+ w_maxobj = space.newint(r_ulonglong(1 << itembits) - 1)
+ w_minobj = space.newint(0)
items_w = items_w + [w_maxobj, w_minobj]
items_w = items_w + [dtype.w_box_type]
space.setitem(w_typeinfo, space.wrap(k), space.newtuple(items_w))
diff --git a/pypy/module/micronumpy/flagsobj.py b/pypy/module/micronumpy/flagsobj.py
--- a/pypy/module/micronumpy/flagsobj.py
+++ b/pypy/module/micronumpy/flagsobj.py
@@ -33,32 +33,32 @@
return self
def descr_c_contiguous(self, space):
- return space.wrap(bool(self.flags & NPY.ARRAY_C_CONTIGUOUS))
+ return space.newbool(bool(self.flags & NPY.ARRAY_C_CONTIGUOUS))
def descr_f_contiguous(self, space):
- return space.wrap(bool(self.flags & NPY.ARRAY_F_CONTIGUOUS))
+ return space.newbool(bool(self.flags & NPY.ARRAY_F_CONTIGUOUS))
def descr_get_writeable(self, space):
- return space.wrap(bool(self.flags & NPY.ARRAY_WRITEABLE))
+ return space.newbool(bool(self.flags & NPY.ARRAY_WRITEABLE))
def descr_get_owndata(self, space):
- return space.wrap(bool(self.flags & NPY.ARRAY_OWNDATA))
+ return space.newbool(bool(self.flags & NPY.ARRAY_OWNDATA))
def descr_get_aligned(self, space):
- return space.wrap(bool(self.flags & NPY.ARRAY_ALIGNED))
+ return space.newbool(bool(self.flags & NPY.ARRAY_ALIGNED))
def descr_get_fnc(self, space):
- return space.wrap(bool(
+ return space.newbool(bool(
self.flags & NPY.ARRAY_F_CONTIGUOUS and not
self.flags & NPY.ARRAY_C_CONTIGUOUS ))
def descr_get_forc(self, space):
- return space.wrap(bool(
+ return space.newbool(bool(
self.flags & NPY.ARRAY_F_CONTIGUOUS or
self.flags & NPY.ARRAY_C_CONTIGUOUS ))
def descr_get_num(self, space):
- return space.wrap(self.flags)
+ return space.newint(self.flags)
def descr_getitem(self, space, w_item):
key = space.str_w(w_item)
@@ -83,10 +83,10 @@
return self.flags == w_other.flags
def descr_eq(self, space, w_other):
- return space.wrap(self.eq(space, w_other))
+ return space.newbool(self.eq(space, w_other))
def descr_ne(self, space, w_other):
- return space.wrap(not self.eq(space, w_other))
+ return space.newbool(not self.eq(space, w_other))
def descr___str__(self, space):
s = StringBuilder()
@@ -102,7 +102,7 @@
s.append(get_tf_str(self.flags, NPY.ARRAY_ALIGNED))
s.append('\n UPDATEIFCOPY : ')
s.append(get_tf_str(self.flags, NPY.ARRAY_UPDATEIFCOPY))
- return space.wrap(s.build())
+ return space.newtext(s.build())
W_FlagsObject.typedef = TypeDef("numpy.flagsobj",
__new__ = interp2app(W_FlagsObject.descr__new__.im_func),
diff --git a/pypy/module/micronumpy/flatiter.py b/pypy/module/micronumpy/flatiter.py
--- a/pypy/module/micronumpy/flatiter.py
+++ b/pypy/module/micronumpy/flatiter.py
@@ -53,7 +53,7 @@
return self
def descr_len(self, space):
- return space.wrap(self.iter.size)
+ return space.newint(self.iter.size)
def descr_next(self, space):
if self.iter.done(self.state):
diff --git a/pypy/module/micronumpy/iterators.py b/pypy/module/micronumpy/iterators.py
--- a/pypy/module/micronumpy/iterators.py
+++ b/pypy/module/micronumpy/iterators.py
@@ -71,7 +71,7 @@
@jit.unroll_safe
def get_index(self, space, shapelen):
- return [space.wrap(self.indexes[i]) for i in range(shapelen)]
+ return [space.newint(self.indexes[i]) for i in range(shapelen)]
class IterState(object):
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
@@ -54,7 +54,7 @@
@jit.unroll_safe
def descr_get_shape(self, space):
shape = self.get_shape()
- return space.newtuple([space.wrap(i) for i in shape])
+ return space.newtuple([space.newint(i) for i in shape])
def descr_set_shape(self, space, w_new_shape):
shape = get_shape_from_iterable(space, self.get_size(), w_new_shape)
@@ -67,7 +67,7 @@
def descr_get_strides(self, space):
strides = self.implementation.get_strides()
- return space.newtuple([space.wrap(i) for i in strides])
+ return space.newtuple([space.newint(i) for i in strides])
def descr_get_dtype(self, space):
return self.implementation.dtype
@@ -85,13 +85,13 @@
raise oefmt(space.w_AttributeError, "Cannot delete array dtype")
def descr_get_ndim(self, space):
- return space.wrap(self.ndims())
+ return space.newint(self.ndims())
def descr_get_itemsize(self, space):
- return space.wrap(self.get_dtype().elsize)
+ return space.newint(self.get_dtype().elsize)
def descr_get_nbytes(self, space):
- return space.wrap(self.get_size() * self.get_dtype().elsize)
+ return space.newint(self.get_size() * self.get_dtype().elsize)
def descr_fill(self, space, w_value):
self.fill(space, self.get_dtype().coerce(space, w_value))
@@ -105,7 +105,7 @@
arr = self
if order != arr.get_order():
arr = W_NDimArray(self.implementation.transpose(self, None))
- return space.wrap(loop.tostring(space, arr))
+ return space.newtext(loop.tostring(space, arr))
def getitem_filter(self, space, arr, axis=0):
shape = self.get_shape()
@@ -122,7 +122,7 @@
" boolean dimension is %d" % (axis, shape[axis],
arr.get_shape()[0]))
#warning = space.gettypefor(support.W_VisibleDeprecationWarning)
- space.warn(space.wrap(msg), space.w_VisibleDeprecationWarning)
+ space.warn(space.newtext(msg), space.w_VisibleDeprecationWarning)
res_shape = shape[:axis] + [size] + shape[axis+1:]
else:
res_shape = [size]
@@ -207,7 +207,7 @@
copy = True
w_ret = new_view(space, self, chunks)
if copy:
- w_ret = w_ret.descr_copy(space, space.wrap(w_ret.get_order()))
+ w_ret = w_ret.descr_copy(space, space.newint(w_ret.get_order()))
return w_ret
shape = res_shape + self.get_shape()[len(indexes):]
w_res = W_NDimArray.from_shape(space, shape, self.get_dtype(),
@@ -231,7 +231,7 @@
dim = i
idx = c.w_idx
chunks.pop(i)
- chunks.insert(0, SliceChunk(space.newslice(space.wrap(0),
+ chunks.insert(0, SliceChunk(space.newslice(space.newint(0),
space.w_None, space.w_None)))
break
if dim > 0:
@@ -268,7 +268,7 @@
if isinstance(w_idx, boxes.W_IntegerBox):
# if w_idx is integer then getitem_array_int must contain a single value and we must return it.
# Get 0-th element of the w_ret.
- w_ret = w_ret.implementation.descr_getitem(space, self, space.wrap(0))
+ w_ret = w_ret.implementation.descr_getitem(space, self, space.newint(0))
else:
try:
w_ret = self.implementation.descr_getitem(space, self, w_idx)
@@ -350,19 +350,19 @@
def descr_len(self, space):
shape = self.get_shape()
if len(shape):
- return space.wrap(shape[0])
+ return space.newint(shape[0])
raise oefmt(space.w_TypeError, "len() of unsized object")
def descr_repr(self, space):
cache = get_appbridge_cache(space)
if cache.w_array_repr is None:
- return space.wrap(self.dump_data())
+ return space.newtext(self.dump_data())
return space.call_function(cache.w_array_repr, self)
def descr_str(self, space):
cache = get_appbridge_cache(space)
if cache.w_array_str is None:
- return space.wrap(self.dump_data(prefix='', separator='', suffix=''))
+ return space.newtext(self.dump_data(prefix='', separator='', suffix=''))
return space.call_function(cache.w_array_str, self)
def dump_data(self, prefix='array(', separator=',', suffix=')'):
@@ -404,7 +404,7 @@
self.implementation.fill(space, box)
def descr_get_size(self, space):
- return space.wrap(self.get_size())
+ return space.newint(self.get_size())
def get_size(self):
return self.implementation.get_size()
@@ -449,7 +449,7 @@
if new_impl is not None:
return wrap_impl(space, space.type(self), self, new_impl)
# Create copy with contiguous data
- arr = self.descr_copy(space, space.wrap(order))
+ arr = self.descr_copy(space, space.newint(order))
if arr.get_size() > 0:
new_implementation = arr.implementation.reshape(self, new_shape, order)
if new_implementation is None:
@@ -562,7 +562,7 @@
return self.get_scalar_value().item(space)
l_w = []
for i in range(self.get_shape()[0]):
- item_w = self.descr_getitem(space, space.wrap(i))
+ item_w = self.descr_getitem(space, space.newint(i))
if (isinstance(item_w, W_NDimArray) or
isinstance(item_w, boxes.W_GenericBox)):
l_w.append(space.call_method(item_w, "tolist"))
@@ -572,7 +572,7 @@
def descr_ravel(self, space, w_order=None):
order = order_converter(space, w_order, self.get_order())
- return self.reshape(space, space.wrap(-1), order)
+ return self.reshape(space, space.newint(-1), order)
@unwrap_spec(w_axis=WrappedDefault(None),
w_out=WrappedDefault(None),
@@ -586,7 +586,7 @@
"axis unsupported for compress")
arr = self
else:
- arr = self.reshape(space, space.wrap(-1), self.get_order())
+ arr = self.reshape(space, space.newint(-1), self.get_order())
index = convert_to_array(space, w_obj)
return arr.getitem_filter(space, index)
@@ -594,7 +594,7 @@
order = order_converter(space, w_order, self.get_order())
if self.is_scalar():
# scalars have no storage
- return self.reshape(space, space.wrap(1), order)
+ return self.reshape(space, space.newint(1), order)
w_res = self.descr_ravel(space, w_order)
if w_res.implementation.storage == self.implementation.storage:
return w_res.descr_copy(space)
@@ -614,7 +614,7 @@
def descr_get_flatiter(self, space):
from .flatiter import W_FlatIterator
- return space.wrap(W_FlatIterator(self))
+ return W_FlatIterator(self)
def descr_item(self, space, args_w):
if len(args_w) == 1 and space.isinstance_w(args_w[0], space.w_tuple):
@@ -674,7 +674,7 @@
# will explode if it can't
w_d = space.newdict()
space.setitem_str(w_d, 'data',
- space.newtuple([space.wrap(addr), space.w_False]))
+ space.newtuple([space.newint(addr), space.w_False]))
space.setitem_str(w_d, 'shape', self.descr_get_shape(space))
space.setitem_str(w_d, 'typestr', self.get_dtype().descr_get_str(space))
if self.implementation.order == NPY.CORDER:
@@ -683,7 +683,7 @@
else:
strides = self.descr_get_strides(space)
space.setitem_str(w_d, 'strides', strides)
- space.setitem_str(w_d, 'version', space.wrap(3))
+ space.setitem_str(w_d, 'version', space.newint(3))
return w_d
w_pypy_data = None
@@ -700,7 +700,7 @@
__array_priority__ = 0.0
def descr___array_priority__(self, space):
- return space.wrap(self.__array_priority__)
+ return space.newfloat(self.__array_priority__)
def descr_argsort(self, space, w_axis=None, w_kind=None, w_order=None):
# happily ignore the kind
@@ -709,7 +709,7 @@
# we would modify the array in-place. Use this to our advantage
# by converting nonnative byte order.
if self.is_scalar():
- return space.wrap(0)
+ return space.newint(0)
dtype = self.get_dtype().descr_newbyteorder(space, NPY.NATIVE)
contig = self.implementation.astype(space, dtype, self.get_order())
return contig.argsort(space, w_axis)
@@ -739,7 +739,7 @@
"according to the rule %s",
space.str_w(self.get_dtype().descr_repr(space)),
space.str_w(new_dtype.descr_repr(space)), casting)
- order = order_converter(space, space.wrap(order), self.get_order())
+ order = order_converter(space, space.newtext(order), self.get_order())
if (not copy and new_dtype == self.get_dtype()
and (order in (NPY.KEEPORDER, NPY.ANYORDER) or order == self.get_order())
and (subok or type(self) is W_NDimArray)):
@@ -838,7 +838,7 @@
def descr_trace(self, space, offset=0, axis1=0, axis2=1,
w_dtype=None, w_out=None):
diag = self.descr_diagonal(space, offset, axis1, axis2)
- return diag.descr_sum(space, w_axis=space.wrap(-1), w_dtype=w_dtype, w_out=w_out)
+ return diag.descr_sum(space, w_axis=space.newint(-1), w_dtype=w_dtype, w_out=w_out)
def descr_dump(self, space, w_file):
raise oefmt(space.w_NotImplementedError, "dump not implemented yet")
@@ -1071,7 +1071,7 @@
"The truth value of an array with more than one "
"element is ambiguous. Use a.any() or a.all()")
iter, state = self.create_iter()
- return space.wrap(space.is_true(iter.getitem(state)))
+ return space.newbool(space.is_true(iter.getitem(state)))
def _binop_impl(ufunc_name):
def impl(self, space, w_other, w_out=None):
@@ -1174,11 +1174,11 @@
elif self.ndims() < 2 and other.ndims() < 2:
w_res = self.descr_mul(space, other)
assert isinstance(w_res, W_NDimArray)
- return w_res.descr_sum(space, space.wrap(-1), out)
+ return w_res.descr_sum(space, space.newint(-1), out)
dtype = find_result_type(space, [self, other], [])
if self.get_size() < 1 and other.get_size() < 1:
# numpy compatability
- return W_NDimArray.new_scalar(space, dtype, space.wrap(0))
+ return W_NDimArray.new_scalar(space, dtype, space.newint(0))
# Do the dims match?
out_shape, other_critical_dim = _match_dot_shapes(space, self, other)
if out:
@@ -1243,8 +1243,8 @@
def method(self, space, w_axis=None, w_dtype=None, w_out=None):
out = out_converter(space, w_out)
if space.is_none(w_axis):
- w_axis = space.wrap(0)
- arr = self.reshape(space, space.wrap(-1), self.get_order())
+ w_axis = space.newint(0)
+ arr = self.reshape(space, space.newint(-1), self.get_order())
else:
arr = self
ufunc = getattr(ufuncs.get(space), ufunc_name)
@@ -1359,7 +1359,7 @@
assert isinstance(multiarray, MixedModule)
reconstruct = multiarray.get("_reconstruct")
parameters = space.newtuple([self.getclass(space), space.newtuple(
- [space.wrap(0)]), space.wrap("b")])
+ [space.newint(0)]), space.wrap("b")])
builder = StringBuilder()
if self.get_dtype().is_object():
@@ -1377,11 +1377,11 @@
self.implementation.get_storage_size())
state = space.newtuple([
- space.wrap(1), # version
+ space.newint(1), # version
self.descr_get_shape(space),
self.get_dtype(),
- space.wrap(False), # is_fortran
- space.wrap(builder.build()),
+ space.newbool(False), # is_fortran
+ space.newbytes(builder.build()),
])
return space.newtuple([reconstruct, parameters, state])
@@ -1397,17 +1397,17 @@
raise oefmt(space.w_ValueError,
"__setstate__ called with len(args[1])==%d, not 5 or 4",
lens)
- shape = space.getitem(w_state, space.wrap(base_index))
- dtype = space.getitem(w_state, space.wrap(base_index+1))
- #isfortran = space.getitem(w_state, space.wrap(base_index+2))
- storage = space.getitem(w_state, space.wrap(base_index+3))
+ shape = space.getitem(w_state, space.newint(base_index))
+ dtype = space.getitem(w_state, space.newint(base_index+1))
+ #isfortran = space.getitem(w_state, space.newint(base_index+2))
+ storage = space.getitem(w_state, space.newint(base_index+3))
if not isinstance(dtype, descriptor.W_Dtype):
raise oefmt(space.w_ValueError,
"__setstate__(self, (shape, dtype, .. called with "
"improper dtype '%R'", dtype)
self.implementation = W_NDimArray.from_shape_and_storage(
space, [space.int_w(i) for i in space.listview(shape)],
- rffi.str2charp(space.str_w(storage), track_allocation=False),
+ rffi.str2charp(space.bytes_w(storage), track_allocation=False),
dtype, storage_bytes=space.len_w(storage), owning=True).implementation
def descr___array_finalize__(self, space, w_obj):
@@ -1470,7 +1470,7 @@
w_ret = space.allocate_instance(W_NDimArray, w_subtype)
W_NDimArray.__init__(w_ret, impl)
space.call_function(space.getattr(w_ret,
- space.wrap('__array_finalize__')), w_subtype)
+ space.newtext('__array_finalize__')), w_subtype)
return w_ret
diff --git a/pypy/module/micronumpy/nditer.py b/pypy/module/micronumpy/nditer.py
--- a/pypy/module/micronumpy/nditer.py
+++ b/pypy/module/micronumpy/nditer.py
@@ -17,7 +17,7 @@
def parse_op_arg(space, name, w_op_flags, n, parse_one_arg):
if space.is_w(w_op_flags, space.w_None):
- w_op_flags = space.newtuple([space.wrap('readonly')])
+ w_op_flags = space.newtuple([space.newtext('readonly')])
if not space.isinstance_w(w_op_flags, space.w_tuple) and not \
space.isinstance_w(w_op_flags, space.w_list):
raise oefmt(space.w_ValueError,
@@ -510,7 +510,7 @@
for i in range(len(self.seq)):
if i not in outargs:
self.seq[i] = self.seq[i].descr_copy(space,
- w_order=space.wrap(self.order))
+ w_order=space.newint(self.order))
self.dtypes = [s.get_dtype() for s in self.seq]
else:
#copy them from seq
@@ -592,7 +592,7 @@
return oa_ndim
def descr_iter(self, space):
- return space.wrap(self)
+ return self
def getitem(self, it, st):
w_res = W_NDimArray(it.getoperand(st))
@@ -611,7 +611,7 @@
raise oefmt(space.w_NotImplementedError, "not implemented yet")
def descr_len(self, space):
- space.wrap(len(self.iters))
+ space.newint(len(self.iters))
@jit.unroll_safe
def descr_next(self, space):
@@ -648,7 +648,7 @@
return self.done
def descr_iternext(self, space):
- return space.wrap(self.iternext())
+ return space.newbool(self.iternext())
def descr_copy(self, space):
raise oefmt(space.w_NotImplementedError, "not implemented yet")
@@ -682,30 +682,30 @@
return space.newtuple(res)
def descr_get_finished(self, space):
- return space.wrap(self.done)
+ return space.newbool(self.done)
def descr_get_has_delayed_bufalloc(self, space):
raise oefmt(space.w_NotImplementedError, "not implemented yet")
def descr_get_has_index(self, space):
- return space.wrap(self.tracked_index in ["C", "F"])
+ return space.newbool(self.tracked_index in ["C", "F"])
def descr_get_index(self, space):
if not self.tracked_index in ["C", "F"]:
raise oefmt(space.w_ValueError, "Iterator does not have an index")
if self.done:
raise oefmt(space.w_ValueError, "Iterator is past the end")
- return space.wrap(self.index_iter.getvalue())
+ return space.newint(self.index_iter.getvalue())
def descr_get_has_multi_index(self, space):
- return space.wrap(self.tracked_index == "multi")
+ return space.newbool(self.tracked_index == "multi")
def descr_get_multi_index(self, space):
if not self.tracked_index == "multi":
raise oefmt(space.w_ValueError, "Iterator is not tracking a multi-index")
if self.done:
raise oefmt(space.w_ValueError, "Iterator is past the end")
- return space.newtuple([space.wrap(x) for x in self.index_iter.index])
+ return space.newtuple([space.newint(x) for x in self.index_iter.index])
def descr_get_iterationneedsapi(self, space):
raise oefmt(space.w_NotImplementedError, "not implemented yet")
@@ -714,13 +714,13 @@
raise oefmt(space.w_NotImplementedError, "not implemented yet")
def descr_get_itersize(self, space):
- return space.wrap(support.product(self.shape))
+ return space.newint(support.product(self.shape))
def descr_get_itviews(self, space):
raise oefmt(space.w_NotImplementedError, "not implemented yet")
def descr_get_ndim(self, space):
- return space.wrap(self.ndim)
+ return space.newint(self.ndim)
def descr_get_nop(self, space):
raise oefmt(space.w_NotImplementedError, "not implemented yet")
diff --git a/pypy/module/micronumpy/strides.py b/pypy/module/micronumpy/strides.py
--- a/pypy/module/micronumpy/strides.py
+++ b/pypy/module/micronumpy/strides.py
@@ -98,11 +98,11 @@
if dim >= 0:
# filter by axis dim
filtr = chunks[dim]
- assert isinstance(filtr, BooleanChunk)
+ assert isinstance(filtr, BooleanChunk)
# XXX this creates a new array, and fails in setitem
w_arr = w_arr.getitem_filter(space, filtr.w_idx, axis=dim)
arr = w_arr.implementation
- chunks[dim] = SliceChunk(space.newslice(space.wrap(0),
+ chunks[dim] = SliceChunk(space.newslice(space.newint(0),
space.w_None, space.w_None))
r = calculate_slice_strides(space, arr.shape, arr.start,
arr.get_strides(), arr.get_backstrides(), chunks)
diff --git a/pypy/module/micronumpy/support.py b/pypy/module/micronumpy/support.py
--- a/pypy/module/micronumpy/support.py
+++ b/pypy/module/micronumpy/support.py
@@ -181,9 +181,9 @@
return rffi.cast(lltype.Signed, storage) + start
def is_rhs_priority_higher(space, w_lhs, w_rhs):
- w_zero = space.wrap(0.0)
- w_priority_l = space.findattr(w_lhs, space.wrap('__array_priority__')) or w_zero
- w_priority_r = space.findattr(w_rhs, space.wrap('__array_priority__')) or w_zero
+ w_zero = space.newfloat(0.0)
+ w_priority_l = space.findattr(w_lhs, space.newtext('__array_priority__')) or w_zero
+ w_priority_r = space.findattr(w_rhs, space.newtext('__array_priority__')) or w_zero
# XXX what is better, unwrapping values or space.gt?
return space.is_true(space.gt(w_priority_r, w_priority_l))
diff --git a/pypy/module/micronumpy/types.py b/pypy/module/micronumpy/types.py
--- a/pypy/module/micronumpy/types.py
+++ b/pypy/module/micronumpy/types.py
@@ -196,7 +196,7 @@
return w_obj
def to_builtin_type(self, space, box):
- return space.wrap(self.for_computation(self.unbox(box)))
+ raise NotImplementedError("has to be provided by subclass")
def _coerce(self, space, w_item):
raise NotImplementedError
@@ -398,7 +398,7 @@
return self.box(space.is_true(w_item))
def to_builtin_type(self, space, w_item):
- return space.wrap(self.unbox(w_item))
+ return space.newbool(self.unbox(w_item))
def str_format(self, box, add_quotes=True):
return "True" if self.unbox(box) else "False"
@@ -461,6 +461,9 @@
_mixin_ = True
signed = True
+ def to_builtin_type(self, space, box):
+ return space.newint(self.for_computation(self.unbox(box)))
+
def _base_coerce(self, space, w_item):
if w_item is None:
return self.box(0)
@@ -736,6 +739,9 @@
_mixin_ = True
strlen = 32
+ def to_builtin_type(self, space, box):
+ return space.wrap(self.for_computation(self.unbox(box)))
+
def _coerce(self, space, w_item):
if w_item is None:
return self.box(0.0)
@@ -2015,17 +2021,17 @@
@simple_binary_op
def pow(self, v1, v2):
- return self.space.pow(v1, v2, self.space.wrap(1))
+ return self.space.pow(v1, v2, self.space.newint(1))
@simple_unary_op
def reciprocal(self, v1):
- return self.space.div(self.space.wrap(1.0), v1)
+ return self.space.div(self.space.newfloat(1.0), v1)
@simple_unary_op
def sign(self, v):
- zero = self.space.wrap(0)
- one = self.space.wrap(1)
- m_one = self.space.wrap(-1)
+ zero = self.space.newint(0)
+ one = self.space.newint(1)
+ m_one = self.space.newint(-1)
if self.space.is_true(self.space.gt(v, zero)):
return one
elif self.space.is_true(self.space.lt(v, zero)):
@@ -2158,7 +2164,7 @@
if isinstance(w_item, boxes.W_StringBox):
return w_item
if w_item is None:
- w_item = space.wrap('')
+ w_item = space.newbytes('')
arg = space.str_w(space.str(w_item))
arr = VoidBoxStorage(dtype.elsize, dtype)
with arr as storage:
@@ -2196,7 +2202,7 @@
# XXX move the rest of this to base class when UnicodeType is supported
def to_builtin_type(self, space, box):
- return space.wrap(self.to_str(box))
+ return space.newbytes(self.to_str(box))
@str_binary_op
def eq(self, v1, v2):
@@ -2317,7 +2323,7 @@
def to_builtin_type(self, space, box):
assert isinstance(box, boxes.W_UnicodeBox)
- return space.wrap(box._value)
+ return space.newunicode(box._value)
def eq(self, v1, v2):
assert isinstance(v1, boxes.W_UnicodeBox)
@@ -2469,7 +2475,7 @@
read_val = dtype.read(item.arr, ofs, 0)
if isinstance (read_val, boxes.W_StringBox):
# StringType returns a str
- read_val = space.wrap(dtype.itemtype.to_str(read_val))
+ read_val = space.newbytes(dtype.itemtype.to_str(read_val))
ret_unwrapped = ret_unwrapped + [read_val,]
if len(ret_unwrapped) == 0:
raise oefmt(space.w_NotImplementedError,
@@ -2490,7 +2496,7 @@
for i in range(len(dtype.names)):
name = dtype.names[i]
if name in w_item.dtype.names:
- items_w[i] = w_item.descr_getitem(space, space.wrap(name[0]))
+ items_w[i] = w_item.descr_getitem(space, space.newtext(name[0]))
elif w_item is not None:
if space.isinstance_w(w_item, space.w_tuple):
if len(dtype.names) != space.len_w(w_item):
diff --git a/pypy/module/micronumpy/ufuncs.py b/pypy/module/micronumpy/ufuncs.py
--- a/pypy/module/micronumpy/ufuncs.py
+++ b/pypy/module/micronumpy/ufuncs.py
@@ -105,10 +105,10 @@
self.complex_to_float = complex_to_float
def descr_get_name(self, space):
- return space.wrap(self.name)
+ return space.newtext(self.name)
def descr_repr(self, space):
- return space.wrap("<ufunc '%s'>" % self.name)
+ return space.newtext("<ufunc '%s'>" % self.name)
def get_doc(self, space):
# Note: allows any object to be set as docstring, because why not?
@@ -160,7 +160,7 @@
def descr_accumulate(self, space, w_obj, w_axis=None, w_dtype=None, w_out=None):
if w_axis is None:
- w_axis = space.wrap(0)
+ w_axis = space.newint(0)
out = out_converter(space, w_out)
return self.reduce(space, w_obj, w_axis, True, #keepdims must be true
out, w_dtype, variant=ACCUMULATE)
@@ -170,7 +170,7 @@
w_out=None, keepdims=False):
from pypy.module.micronumpy.ndarray import W_NDimArray
if w_axis is None:
- w_axis = space.wrap(0)
+ w_axis = space.newint(0)
out = out_converter(space, w_out)
return self.reduce(space, w_obj, w_axis, keepdims, out, w_dtype)
@@ -207,7 +207,7 @@
axes[i] = x
else:
if space.isinstance_w(w_axis, space.w_tuple) and space.len_w(w_axis) == 1:
- w_axis = space.getitem(w_axis, space.wrap(0))
+ w_axis = space.getitem(w_axis, space.newint(0))
axis = space.int_w(w_axis)
if axis < -shapelen or axis >= shapelen:
raise oefmt(space.w_ValueError, "'axis' entry is out of bounds")
@@ -373,7 +373,7 @@
raise oefmt(space.w_ValueError,
"exactly two arguments expected")
args = [convert_to_array(space, w_obj) for w_obj in args_w]
- w_outshape = [space.wrap(i) for i in args[0].get_shape() + [1]*args[1].ndims()]
+ w_outshape = [space.newint(i) for i in args[0].get_shape() + [1]*args[1].ndims()]
args0 = args[0].reshape(space, space.newtuple(w_outshape))
return self.descr_call(space, Arguments.frompacked(space,
space.newlist([args0, args[1]])))
@@ -391,7 +391,7 @@
return w_subok, w_out, sig, w_casting, extobj_w
def get_extobj(space):
- extobj_w = space.newlist([space.wrap(8192), space.wrap(0), space.w_None])
+ extobj_w = space.newlist([space.newint(8192), space.newint(0), space.w_None])
return extobj_w
@@ -426,7 +426,7 @@
def _has_reflected_op(space, w_obj, op):
if op not in _reflected_ops:
return False
- return space.getattr(w_obj, space.wrap(_reflected_ops[op])) is not None
+ return space.getattr(w_obj, space.newtext(_reflected_ops[op])) is not None
def safe_casting_mode(casting):
assert casting is not None
@@ -475,7 +475,7 @@
if out is None:
if w_res.is_scalar():
return w_res.get_scalar_value()
- ctxt = space.newtuple([self, space.newtuple([w_obj]), space.wrap(0)])
+ ctxt = space.newtuple([self, space.newtuple([w_obj]), space.newint(0)])
w_res = space.call_method(w_obj, '__array_wrap__', w_res, ctxt)
return w_res
@@ -578,9 +578,9 @@
elif ((w_ldtype.is_object() and w_ldtype.is_record()) or
(w_rdtype.is_object() and w_rdtype.is_record())):
if self.name == 'not_equal':
- return space.wrap(True)
+ return space.w_True
elif self.name == 'equal':
- return space.wrap(False)
+ return space.w_False
else:
msg = ("ufunc '%s' not supported for the input types, "
"and the inputs could not be safely coerced to "
@@ -595,19 +595,19 @@
elif (w_ldtype.is_str()) and \
self.bool_result and out is None:
if self.name in ('equal', 'less_equal', 'less'):
- return space.wrap(False)
- return space.wrap(True)
+ return space.w_False
+ return space.w_True
elif (w_rdtype.is_str()) and \
self.bool_result and out is None:
if self.name in ('not_equal','less', 'less_equal'):
- return space.wrap(True)
- return space.wrap(False)
+ return space.w_True
+ return space.w_False
elif w_ldtype.is_flexible() or w_rdtype.is_flexible():
if self.bool_result:
if self.name == 'equal' or self.name == 'not_equal':
res = w_ldtype.eq(space, w_rdtype)
if not res:
- return space.wrap(self.name == 'not_equal')
+ return space.newbool(self.name == 'not_equal')
else:
return space.w_NotImplemented
else:
@@ -641,7 +641,7 @@
if out is None:
if w_res.is_scalar():
return w_res.get_scalar_value()
- ctxt = space.newtuple([self, space.newtuple([w_lhs, w_rhs]), space.wrap(0)])
+ ctxt = space.newtuple([self, space.newtuple([w_lhs, w_rhs]), space.newint(0)])
w_res = space.call_method(w_highpriority, '__array_wrap__', w_res, ctxt)
return w_res
@@ -907,7 +907,7 @@
# from frompyfunc
pass
# mimic NpyIter_AdvancedNew with a nditer
- w_itershape = space.newlist([space.wrap(i) for i in iter_shape])
+ w_itershape = space.newlist([space.newint(i) for i in iter_shape])
nd_it = W_NDIter(space, space.newlist(inargs + outargs), w_flags,
w_op_flags, w_op_dtypes, w_casting, w_op_axes,
w_itershape, allow_backward=False)
@@ -956,7 +956,7 @@
outiters[0].descr_setitem(space, space.w_Ellipsis, outs)
else:
for i in range(self.nout):
- w_val = space.getitem(outs, space.wrap(i))
+ w_val = space.getitem(outs, space.newint(i))
outiters[i].descr_setitem(space, space.w_Ellipsis, w_val)
# XXX use _find_array_wrap and wrap outargs using __array_wrap__
if len(outargs) > 1:
@@ -1531,7 +1531,7 @@
if w_ret.external_loop:
_parse_signature(space, w_ret, w_ret.signature)
if doc:
- w_ret.set_doc(space, space.wrap(doc))
+ w_ret.set_doc(space, space.newtext(doc))
return w_ret
# Instantiated in cpyext/ndarrayobject. It is here since ufunc calls
@@ -1572,8 +1572,8 @@
arg_i = args_w[i]
if not isinstance(arg_i, W_NDimArray):
raise OperationError(space.w_NotImplementedError,
- space.wrap("cannot mix ndarray and %r (arg %d) in call to ufunc" % (
- arg_i, i)))
+ space.newtext("cannot mix ndarray and %r (arg %d) in call to ufunc" % (
+ arg_i, i)))
with arg_i.implementation as storage:
addr = get_storage_as_int(storage, arg_i.get_start())
raw_storage_setitem(dataps, CCHARP_SIZE * i, rffi.cast(rffi.CCHARP, addr))
More information about the pypy-commit
mailing list