Author: mattip Branch: numppy-flatitter Changeset: r51769:dd14fbe5d0a4 Date: 2012-01-25 22:34 +0200 http://bitbucket.org/pypy/pypy/changeset/dd14fbe5d0a4/
Log: added signature, all tests now pass 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 @@ -898,7 +898,6 @@ self.size = 1 for s in self.shape: self.size *= s - xxx def _del_sources(self): self.left = None @@ -1514,6 +1513,9 @@ ai = (ai + 1) % arr.size basei = basei.next_skip_x(shapelen, step) + def create_sig(self): + return signature.FlatSignature(self.base.dtype) + def descr_base(self, space): return space.wrap(self.base) diff --git a/pypy/module/micronumpy/signature.py b/pypy/module/micronumpy/signature.py --- a/pypy/module/micronumpy/signature.py +++ b/pypy/module/micronumpy/signature.py @@ -224,6 +224,18 @@ return ViewIterator(arr.start, arr.strides, arr.backstrides, arr.shape).apply_transformations(arr, transforms) +class FlatSignature(ViewSignature): + def debug_repr(self): + return 'Flat' + + def allocate_iter(self, arr, transforms): + from pypy.module.micronumpy.interp_numarray import W_FlatIterator + assert isinstance(arr, W_FlatIterator) + return ViewIterator(arr.base.start, arr.base.strides, + arr.base.backstrides, + arr.base.shape).apply_transformations(arr.base, + transforms) + class VirtualSliceSignature(Signature): def __init__(self, child): self.child = child diff --git a/pypy/module/micronumpy/test/test_numarray.py b/pypy/module/micronumpy/test/test_numarray.py --- a/pypy/module/micronumpy/test/test_numarray.py +++ b/pypy/module/micronumpy/test/test_numarray.py @@ -962,7 +962,7 @@ assert debug_repr(a + a) == 'Call2(add, Array, Array)' assert debug_repr(a[::2]) == 'Slice' assert debug_repr(a + 2) == 'Call2(add, Array, Scalar)' - assert debug_repr(a + a.flat) == 'Call2(add, Array, Slice)' + assert debug_repr(a + a.flat) == 'Call2(add, Array, Flat)' assert debug_repr(sin(a)) == 'Call1(sin, Array)' b = a + a _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit