* Adds support for array parameter declaration in fortran... * Added ``bitwise_count`` UFuncs * Add binding for random pyx files * Use AVX512-FP16 SVML content for float16 umath functions * allow int sequences as shape arguments in numpy.memmap * Add .mT attribute for arrays * Create complex scalars from real and imaginary parts * add copy parameter for api.reshape function * make use of locals() in a comprehension fully compatible... * Add array API standard v2022.12 support to numpy.array_api * Change string to bool conversions to be consistent with... * Allow np.info on non-hashable objects with a dtype * let zeros, empty, and empty_like accept dtype classes * Bump C-ABI to 2 but accept older NumPy if compiled against... * Use high accuracy SVML for double precision umath functions * expose PyUFunc_GiveFloatingpointErrors in the dtype API * PyObject_IsTrue and PyObject_Not error handling in setflags * array2string does not add signs for positive integers. * Vectorize np.partition and np.argpartition using AVX-512 * Create helper for conversion to arrays * Add size check for threaded array assignment * Finalize ``fastCopyAndTranpose`` and other old C-funcs/members... * assert_array_less should report max violations instead of... * Introduce tracer for enabled CPU targets on each optimized... * Extend np.add ufunc to work with unicode and byte dtypes * Add find/rfind ufuncs for unicode and byte dtypes * Make ``intp`` ``ssize_t`` and introduce characters nN * Add isdigit/isspace/isdecimal/isnumeric ufuncs for string... * DType API slot for descriptor finalization before array... OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-numpy?expand=0&rev=161
65 lines
2.5 KiB
Diff
65 lines
2.5 KiB
Diff
From bf50761dee8f0670542bcdc1fd9bff5cdb0448d4 Mon Sep 17 00:00:00 2001
|
|
From: Fabian Vogt <fvogt@suse.de>
|
|
Date: Thu, 28 Mar 2024 14:39:45 +0100
|
|
Subject: [PATCH] BUG: Fix test_impossible_feature_enable failing without
|
|
BASELINE_FEAT
|
|
|
|
If the build has no baseline features set, the test ended up setting
|
|
e.g. NPY_ENABLE_CPU_FEATURES="ASIMDHP, None". This actually made the
|
|
execution succeed, as the warning for decoding "None" overrode the
|
|
error for the real feature. Fix the error handling there by removing
|
|
the errorneous "return 0;", add a test for this, and avoid passing
|
|
"None" by accident.
|
|
---
|
|
numpy/core/src/common/npy_cpu_features.c | 1 -
|
|
numpy/core/tests/test_cpu_features.py | 14 ++++++++++++--
|
|
2 files changed, 12 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/numpy/core/src/common/npy_cpu_features.c b/numpy/core/src/common/npy_cpu_features.c
|
|
index bd149f8b4..f4d25cc50 100644
|
|
--- a/numpy/core/src/common/npy_cpu_features.c
|
|
+++ b/numpy/core/src/common/npy_cpu_features.c
|
|
@@ -324,7 +324,6 @@ npy__cpu_check_env(int disable, const char *env) {
|
|
) < 0) {
|
|
return -1;
|
|
}
|
|
- return 0;
|
|
}
|
|
|
|
#define NOTSUPP_BODY \
|
|
diff --git a/numpy/core/tests/test_cpu_features.py b/numpy/core/tests/test_cpu_features.py
|
|
index 48ab30a4a..88e4ad185 100644
|
|
--- a/numpy/core/tests/test_cpu_features.py
|
|
+++ b/numpy/core/tests/test_cpu_features.py
|
|
@@ -308,8 +308,8 @@ def test_impossible_feature_enable(self):
|
|
err_type = "RuntimeError"
|
|
self._expect_error(msg, err_type)
|
|
|
|
- # Ensure that only the bad feature gets reported
|
|
- feats = f"{bad_feature}, {self.BASELINE_FEAT}"
|
|
+ # Ensure that it fails even when providing garbage in addition
|
|
+ feats = f"{bad_feature}, Foobar"
|
|
self.env['NPY_ENABLE_CPU_FEATURES'] = feats
|
|
msg = (
|
|
f"You cannot enable CPU features \\({bad_feature}\\), since they "
|
|
@@ -317,6 +317,16 @@ def test_impossible_feature_enable(self):
|
|
)
|
|
self._expect_error(msg, err_type)
|
|
|
|
+ if self.BASELINE_FEAT is not None:
|
|
+ # Ensure that only the bad feature gets reported
|
|
+ feats = f"{bad_feature}, {self.BASELINE_FEAT}"
|
|
+ self.env['NPY_ENABLE_CPU_FEATURES'] = feats
|
|
+ msg = (
|
|
+ f"You cannot enable CPU features \\({bad_feature}\\), since "
|
|
+ "they are not supported by your machine."
|
|
+ )
|
|
+ self._expect_error(msg, err_type)
|
|
+
|
|
is_linux = sys.platform.startswith('linux')
|
|
is_cygwin = sys.platform.startswith('cygwin')
|
|
machine = platform.machine()
|
|
--
|
|
2.44.0
|
|
|