summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/src/multiarray/ctors.c2
-rw-r--r--numpy/core/tests/test_regression.py7
-rw-r--r--numpy/distutils/fcompiler/__init__.py9
-rw-r--r--numpy/distutils/system_info.py2
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: