Author: mattip <[email protected]>
Branch: missing-ndarray-attributes
Changeset: r60164:334c093ab578
Date: 2013-01-18 02:41 +0200
http://bitbucket.org/pypy/pypy/changeset/334c093ab578/
Log: use orig_array properly in get_real, get_imag
diff --git a/pypy/module/micronumpy/arrayimpl/concrete.py
b/pypy/module/micronumpy/arrayimpl/concrete.py
--- a/pypy/module/micronumpy/arrayimpl/concrete.py
+++ b/pypy/module/micronumpy/arrayimpl/concrete.py
@@ -72,27 +72,27 @@
else:
return None
- def get_real(self):
+ def get_real(self, orig_array):
strides = self.get_strides()
backstrides = self.get_backstrides()
if self.dtype.is_complex_type():
dtype = self.dtype.float_type
return SliceArray(self.start, strides, backstrides,
- self.get_shape(), self, self, dtype=dtype)
+ self.get_shape(), self, orig_array, dtype=dtype)
return SliceArray(self.start, strides, backstrides,
- self.get_shape(), self, self)
+ self.get_shape(), self, orig_array)
- def get_imag(self):
+ def get_imag(self, orig_array):
strides = self.get_strides()
backstrides = self.get_backstrides()
if self.dtype.is_complex_type():
dtype = self.dtype.float_type
return SliceArray(self.start + dtype.get_size(), strides,
- backstrides, self.get_shape(), self, self, dtype=dtype)
+ backstrides, self.get_shape(), self, orig_array,
dtype=dtype)
if self.dtype.is_flexible_type():
# numpy returns self for self.imag
return SliceArray(self.start, strides, backstrides,
- self.get_shape(), self, self)
+ self.get_shape(), self, orig_array)
impl = NonWritableArray(self.get_shape(), self.dtype, self.order,
strides,
backstrides)
impl.fill(self.dtype.box(0))
@@ -344,7 +344,6 @@
self.strides = strides
self.backstrides = backstrides
self.shape = shape
- assert isinstance(parent, BaseConcreteArray)
if isinstance(parent, SliceArray):
parent = parent.parent # one level only
self.parent = parent
diff --git a/pypy/module/micronumpy/interp_numarray.py
b/pypy/module/micronumpy/interp_numarray.py
--- a/pypy/module/micronumpy/interp_numarray.py
+++ b/pypy/module/micronumpy/interp_numarray.py
@@ -240,10 +240,10 @@
return W_NDimArray(self.implementation.copy())
def descr_get_real(self, space):
- return W_NDimArray(self.implementation.get_real())
+ return W_NDimArray(self.implementation.get_real(self))
def descr_get_imag(self, space):
- ret = self.implementation.get_imag()
+ ret = self.implementation.get_imag(self)
if ret:
return W_NDimArray(ret)
raise OperationError(space.w_NotImplementedError,
@@ -251,7 +251,7 @@
def descr_set_real(self, space, w_value):
# copy (broadcast) values into self
- tmp = self.implementation.get_real()
+ tmp = self.implementation.get_real(self)
tmp.setslice(space, convert_to_array(space, w_value))
def descr_set_imag(self, space, w_value):
@@ -259,7 +259,7 @@
if not self.get_dtype().is_complex_type():
raise OperationError(space.w_TypeError,
space.wrap('array does not have imaginary part to set'))
- tmp = self.implementation.get_imag()
+ tmp = self.implementation.get_imag(self)
tmp.setslice(space, convert_to_array(space, w_value))
def descr_reshape(self, space, args_w):
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit