diff options
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/core/src/multiarray/ctors.c | 2 | ||||
-rw-r--r-- | numpy/core/tests/test_regression.py | 7 | ||||
-rw-r--r-- | numpy/distutils/fcompiler/__init__.py | 9 | ||||
-rw-r--r-- | numpy/distutils/system_info.py | 2 |
4 files changed, 14 insertions, 6 deletions
diff --git a/numpy/core/src/multiarray/ctors.c b/numpy/core/src/multiarray/ctors.c index a897169a3..a47b8625a 100644 --- a/numpy/core/src/multiarray/ctors.c +++ b/numpy/core/src/multiarray/ctors.c @@ -412,7 +412,7 @@ setArrayFromSequence(PyArrayObject *a, PyObject *s, int dim, PyArrayObject * dst) { Py_ssize_t i, slen; - int res = 0; + int res = -1; /* first recursion, view equal destination */ if (dst == NULL) diff --git a/numpy/core/tests/test_regression.py b/numpy/core/tests/test_regression.py index b98746e1b..23a71d2f1 100644 --- a/numpy/core/tests/test_regression.py +++ b/numpy/core/tests/test_regression.py @@ -1922,5 +1922,12 @@ class TestRegression(TestCase): [sixu('F'), sixu('o'), sixu('o'), sixu('b'), sixu('')]]]) assert_array_equal(arr, arr2) + def test_assign_from_sequence_error(self): + # Ticket #4024. + arr = np.array([1, 2, 3]) + assert_raises(ValueError, arr.__setitem__, slice(None), [9, 9]) + arr.__setitem__(slice(None), [9]) + assert_equal(arr, [9, 9, 9]) + if __name__ == "__main__": run_module_suite() diff --git a/numpy/distutils/fcompiler/__init__.py b/numpy/distutils/fcompiler/__init__.py index d00228dcd..fc39ee8c5 100644 --- a/numpy/distutils/fcompiler/__init__.py +++ b/numpy/distutils/fcompiler/__init__.py @@ -817,7 +817,7 @@ def get_default_fcompiler(osname=None, platform=None, requiref90=False, return compiler_type # Flag to avoid rechecking for Fortran compiler every time -failed_fcompiler = False +failed_fcompilers = set() def new_fcompiler(plat=None, compiler=None, @@ -829,8 +829,9 @@ def new_fcompiler(plat=None, """Generate an instance of some FCompiler subclass for the supplied platform/compiler combination. """ - global failed_fcompiler - if failed_fcompiler: + global failed_fcompilers + fcompiler_key = (plat, compiler) + if fcompiler_key in failed_fcompilers: return None load_all_fcompiler_classes() @@ -850,7 +851,7 @@ def new_fcompiler(plat=None, msg = msg + " Supported compilers are: %s)" \ % (','.join(fcompiler_class.keys())) log.warn(msg) - failed_fcompiler = True + failed_fcompilers.add(fcompiler_key) return None compiler = klass(verbose=verbose, dry_run=dry_run, force=force) diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py index 800415e46..5ed12db6e 100644 --- a/numpy/distutils/system_info.py +++ b/numpy/distutils/system_info.py @@ -271,7 +271,7 @@ def get_standard_file(fname): # Home directory # And look for the user config file try: - f = os.environ['HOME'] + f = os.path.expanduser('~') except KeyError: pass else: |