summaryrefslogtreecommitdiff
path: root/numpy/core
diff options
context:
space:
mode:
authorStephan Hoyer <shoyer@gmail.com>2016-01-15 13:25:43 -0800
committerStephan Hoyer <shoyer@gmail.com>2016-01-15 13:25:43 -0800
commit54224f4e88036a8cd02c1306f2c1a5f655e41e3a (patch)
treeb331b28110ddef0f897fa9b7c36ccd5433ac071a /numpy/core
parent4d87d909bab7a7dd4bb570444cf35d98d551668f (diff)
parent02bcbd7e99f7b73c2abcb2726f79ea01a6bba2da (diff)
downloadnumpy-54224f4e88036a8cd02c1306f2c1a5f655e41e3a.tar.gz
Merge pull request #7000 from gfyoung/ndarray_arg_enforce
DOC, MAINT: Enforce np.ndarray arg for np.put and np.place
Diffstat (limited to 'numpy/core')
-rw-r--r--numpy/core/fromnumeric.py8
-rw-r--r--numpy/core/tests/test_fromnumeric.py17
2 files changed, 24 insertions, 1 deletions
diff --git a/numpy/core/fromnumeric.py b/numpy/core/fromnumeric.py
index 5d74bbda0..4faeb557a 100644
--- a/numpy/core/fromnumeric.py
+++ b/numpy/core/fromnumeric.py
@@ -445,7 +445,13 @@ def put(a, ind, v, mode='raise'):
array([ 0, 1, 2, 3, -5])
"""
- return a.put(ind, v, mode)
+ try:
+ put = a.put
+ except AttributeError:
+ raise TypeError("argument 1 must be numpy.ndarray, "
+ "not {name}".format(name=type(a).__name__))
+
+ return put(ind, v, mode)
def swapaxes(a, axis1, axis2):
diff --git a/numpy/core/tests/test_fromnumeric.py b/numpy/core/tests/test_fromnumeric.py
new file mode 100644
index 000000000..0fba10b6e
--- /dev/null
+++ b/numpy/core/tests/test_fromnumeric.py
@@ -0,0 +1,17 @@
+from __future__ import division, absolute_import, print_function
+
+from numpy import put
+from numpy.testing import TestCase, assert_raises
+
+
+class TestPut(TestCase):
+
+ def test_bad_array(self):
+ # We want to raise a TypeError in the
+ # case that a non-ndarray object is passed
+ # in since `np.put` modifies in place and
+ # hence would do nothing to a non-ndarray
+ v = 5
+ indx = [0, 2]
+ bad_array = [1, 2, 3]
+ assert_raises(TypeError, put, bad_array, indx, v)