summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--numpy/compat/_inspect.py2
-rw-r--r--numpy/core/src/multiarray/nditer_pywrap.c2
-rw-r--r--numpy/core/tests/test_nditer.py2
-rw-r--r--numpy/distutils/mingw32ccompiler.py5
-rw-r--r--numpy/lib/utils.py6
-rw-r--r--numpy/testing/noseclasses.py4
6 files changed, 10 insertions, 11 deletions
diff --git a/numpy/compat/_inspect.py b/numpy/compat/_inspect.py
index 5827db2b1..cb9717ced 100644
--- a/numpy/compat/_inspect.py
+++ b/numpy/compat/_inspect.py
@@ -127,7 +127,7 @@ def getargspec(func):
"""
if ismethod(func):
- func = func.im_func
+ func = func.__func__
if not isfunction(func):
raise TypeError('arg is not a Python function')
args, varargs, varkw = getargs(func.__code__)
diff --git a/numpy/core/src/multiarray/nditer_pywrap.c b/numpy/core/src/multiarray/nditer_pywrap.c
index fd88cdbc7..4621491a3 100644
--- a/numpy/core/src/multiarray/nditer_pywrap.c
+++ b/numpy/core/src/multiarray/nditer_pywrap.c
@@ -786,7 +786,7 @@ npyiter_init(NewNpyArrayIterObject *self, PyObject *args, PyObject *kwds)
if (itershape.len > 0) {
if (oa_ndim == 0) {
oa_ndim = itershape.len;
- memset(op_axes, 0, sizeof(op_axes[0])*oa_ndim);
+ memset(op_axes, 0, sizeof(op_axes[0]) * nop);
}
else if (oa_ndim != itershape.len) {
PyErr_SetString(PyExc_ValueError,
diff --git a/numpy/core/tests/test_nditer.py b/numpy/core/tests/test_nditer.py
index 1e5620102..d537e4921 100644
--- a/numpy/core/tests/test_nditer.py
+++ b/numpy/core/tests/test_nditer.py
@@ -600,6 +600,8 @@ def test_iter_itershape():
[['readonly'], ['writeonly','allocate']],
op_axes=[[0,1,None], None],
itershape=(-1,1,4))
+ # Test bug that for no op_axes but itershape, they are NULLed correctly
+ i = np.nditer([np.ones(2), None, None], itershape=(2,))
def test_iter_broadcasting_errors():
# Check that errors are thrown for bad broadcasting shapes
diff --git a/numpy/distutils/mingw32ccompiler.py b/numpy/distutils/mingw32ccompiler.py
index c98d240b8..10e3608ef 100644
--- a/numpy/distutils/mingw32ccompiler.py
+++ b/numpy/distutils/mingw32ccompiler.py
@@ -200,10 +200,7 @@ class Mingw32CCompiler(distutils.cygwinccompiler.CygwinCCompiler):
func = distutils.cygwinccompiler.CygwinCCompiler.link
else:
func = UnixCCompiler.link
- if sys.version_info[0] >= 3:
- func(*args[:func.__code__.co_argcount])
- else:
- func(*args[:func.im_func.__code__.co_argcount])
+ func(*args[:func.__code__.co_argcount])
return
def object_filenames (self,
diff --git a/numpy/lib/utils.py b/numpy/lib/utils.py
index 0b8e3bfac..2e70bfd15 100644
--- a/numpy/lib/utils.py
+++ b/numpy/lib/utils.py
@@ -559,7 +559,7 @@ def info(object=None,maxwidth=76,output=sys.stdout,toplevel='numpy'):
arguments = "()"
try:
if hasattr(object, '__init__'):
- arguments = inspect.formatargspec(*inspect.getargspec(object.__init__.im_func))
+ arguments = inspect.formatargspec(*inspect.getargspec(object.__init__.__func__))
arglist = arguments.split(', ')
if len(arglist) > 1:
arglist[1] = "("+arglist[1]
@@ -595,7 +595,7 @@ def info(object=None,maxwidth=76,output=sys.stdout,toplevel='numpy'):
print >> output, "Instance of class: ", object.__class__.__name__
print >> output
if hasattr(object, '__call__'):
- arguments = inspect.formatargspec(*inspect.getargspec(object.__call__.im_func))
+ arguments = inspect.formatargspec(*inspect.getargspec(object.__call__.__func__))
arglist = arguments.split(', ')
if len(arglist) > 1:
arglist[1] = "("+arglist[1]
@@ -623,7 +623,7 @@ def info(object=None,maxwidth=76,output=sys.stdout,toplevel='numpy'):
elif inspect.ismethod(object):
name = object.__name__
- arguments = inspect.formatargspec(*inspect.getargspec(object.im_func))
+ arguments = inspect.formatargspec(*inspect.getargspec(object.__func__))
arglist = arguments.split(', ')
if len(arglist) > 1:
arglist[1] = "("+arglist[1]
diff --git a/numpy/testing/noseclasses.py b/numpy/testing/noseclasses.py
index 9a411c66d..96c779c2e 100644
--- a/numpy/testing/noseclasses.py
+++ b/numpy/testing/noseclasses.py
@@ -49,7 +49,7 @@ class NumpyDocTestFinder(doctest.DocTestFinder):
# to make by extension code writers, having this safety in place
# isn't such a bad idea
#print '_fm C3-1' # dbg
- return module.__name__ == object.im_class.__module__
+ return module.__name__ == object.__self__.__class__.__module__
elif inspect.getmodule(object) is not None:
#print '_fm C4' # dbg
#print 'C4 mod',module,'obj',object # dbg
@@ -101,7 +101,7 @@ class NumpyDocTestFinder(doctest.DocTestFinder):
if isinstance(val, staticmethod):
val = getattr(obj, valname)
if isinstance(val, classmethod):
- val = getattr(obj, valname).im_func
+ val = getattr(obj, valname).__func__
# Recurse to methods, properties, and nested classes.
if ((isfunction(val) or isclass(val) or