Author: Alex Gaynor <alex.gay...@gmail.com> Branch: Changeset: r44981:9eafb5ae7f72 Date: 2011-06-16 19:05 -0700 http://bitbucket.org/pypy/pypy/changeset/9eafb5ae7f72/
Log: Added the shape property to numpy arrays. 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 @@ -1,7 +1,7 @@ from pypy.interpreter.baseobjspace import ObjSpace, W_Root, Wrappable from pypy.interpreter.error import operationerrfmt from pypy.interpreter.gateway import interp2app, unwrap_spec -from pypy.interpreter.typedef import TypeDef +from pypy.interpreter.typedef import TypeDef, GetSetProperty from pypy.rlib import jit from pypy.rpython.lltypesystem import lltype from pypy.tool.sourcetools import func_with_new_name @@ -80,6 +80,9 @@ def get_concrete(self): raise NotImplementedError + def descr_get_shape(self, space): + return space.newtuple([self.descr_len(space)]) + def descr_len(self, space): return self.get_concrete().descr_len(space) @@ -325,6 +328,9 @@ BaseArray.typedef = TypeDef( 'numarray', __new__ = interp2app(descr_new_numarray), + + shape = GetSetProperty(BaseArray.descr_get_shape), + __len__ = interp2app(BaseArray.descr_len), __getitem__ = interp2app(BaseArray.descr_getitem), __setitem__ = interp2app(BaseArray.descr_setitem), 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 @@ -56,6 +56,15 @@ assert len(a) == 5 assert len(a + a) == 5 + def test_shape(self): + from numpy import array + a = array(range(5)) + assert a.shape == (5,) + b = a + a + assert b.shape == (5,) + c = a[:3] + assert c.shape == (3,) + def test_add(self): from numpy import array a = array(range(5)) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit