diff options
-rw-r--r-- | numpy/compat/_inspect.py | 2 | ||||
-rw-r--r-- | numpy/core/src/multiarray/nditer_pywrap.c | 2 | ||||
-rw-r--r-- | numpy/core/tests/test_nditer.py | 2 | ||||
-rw-r--r-- | numpy/distutils/mingw32ccompiler.py | 5 | ||||
-rw-r--r-- | numpy/lib/utils.py | 6 | ||||
-rw-r--r-- | numpy/testing/noseclasses.py | 4 |
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 |