Author: Brian Kearns <bdkea...@gmail.com> Branch: Changeset: r67941:8e73b35beb24 Date: 2013-11-10 21:42 -0500 http://bitbucket.org/pypy/pypy/changeset/8e73b35beb24/
Log: provide len for numpy dtypes diff --git a/pypy/module/micronumpy/interp_dtype.py b/pypy/module/micronumpy/interp_dtype.py --- a/pypy/module/micronumpy/interp_dtype.py +++ b/pypy/module/micronumpy/interp_dtype.py @@ -254,6 +254,11 @@ raise OperationError(space.w_KeyError, space.wrap( "Field named '%s' not found." % item)) + def descr_len(self, space): + if self.fields is None: + return space.wrap(0) + return space.wrap(len(self.fields)) + def descr_reduce(self, space): w_class = space.type(self) @@ -397,6 +402,7 @@ __eq__ = interp2app(W_Dtype.descr_eq), __ne__ = interp2app(W_Dtype.descr_ne), __getitem__ = interp2app(W_Dtype.descr_getitem), + __len__ = interp2app(W_Dtype.descr_len), __reduce__ = interp2app(W_Dtype.descr_reduce), __setstate__ = interp2app(W_Dtype.descr_setstate), diff --git a/pypy/module/micronumpy/test/test_dtypes.py b/pypy/module/micronumpy/test/test_dtypes.py --- a/pypy/module/micronumpy/test/test_dtypes.py +++ b/pypy/module/micronumpy/test/test_dtypes.py @@ -221,6 +221,13 @@ for i in range(5): assert b[i] == i * 2 + def test_len(self): + import numpy as np + d = np.dtype('int32') + assert len(d) == 0 + d = np.dtype([('x', 'i4'), ('y', 'i4')]) + assert len(d) == 2 + def test_shape(self): from numpypy import dtype assert dtype(long).shape == () _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit