[pypy-commit] pypy default: fixes for some numpy exceptions
bdkearns
noreply at buildbot.pypy.org
Tue Oct 29 20:33:08 CET 2013
Author: Brian Kearns <bdkearns at gmail.com>
Branch:
Changeset: r67696:8bbe7e215208
Date: 2013-10-29 13:00 -0400
http://bitbucket.org/pypy/pypy/changeset/8bbe7e215208/
Log: fixes for some numpy exceptions
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
@@ -203,7 +203,7 @@
dtype = self.dtype
if not dtype.is_record_type() or idx not in dtype.fields:
raise OperationError(space.w_ValueError, space.wrap(
- "field named %s not defined" % idx))
+ "field named %s not found" % idx))
return RecordChunk(idx)
if (space.isinstance_w(w_idx, space.w_int) or
space.isinstance_w(w_idx, space.w_slice)):
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
@@ -201,8 +201,6 @@
return self.implementation.descr_getitem(space, self, w_idx)
except ArrayArgumentException:
return self.getitem_array_int(space, w_idx)
- except OperationError:
- raise OperationError(space.w_IndexError, space.wrap("wrong index"))
def getitem(self, space, index_list):
return self.implementation.getitem_index(space, index_list)
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
@@ -5,7 +5,11 @@
try:
return space.int_w(space.index(w_obj))
except OperationError:
- return space.int_w(space.int(w_obj))
+ try:
+ return space.int_w(space.int(w_obj))
+ except OperationError:
+ raise OperationError(space.w_IndexError, space.wrap(
+ "cannot convert index to integer"))
@jit.unroll_safe
def product(s):
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
@@ -525,8 +525,10 @@
from numpypy import arange
a = arange(10)
- raises(IndexError, "a[ErrorIndex()] == 0")
- raises(IndexError, "a[ErrorInt()] == 0")
+ exc = raises(IndexError, "a[ErrorIndex()] == 0")
+ assert exc.value.message == 'cannot convert index to integer'
+ exc = raises(IndexError, "a[ErrorInt()] == 0")
+ assert exc.value.message == 'cannot convert index to integer'
def test_setslice_array(self):
from numpypy import array
@@ -2960,6 +2962,8 @@
a[0, 0] = 500
assert (a[0, 0, 0] == 500).all()
assert a[0, 0, 0].shape == (10,)
+ exc = raises(ValueError, "a[0, 0]['z']")
+ assert exc.value.message == 'field named z not found'
def test_subarray_multiple_rows(self):
import numpypy as np
More information about the pypy-commit
mailing list