[Python] Fix TF1 Pythonization test for NumPy 2.4.0#20775
Merged
guitargeek merged 3 commits intoroot-project:masterfrom Dec 23, 2025
Merged
[Python] Fix TF1 Pythonization test for NumPy 2.4.0#20775guitargeek merged 3 commits intoroot-project:masterfrom
guitargeek merged 3 commits intoroot-project:masterfrom
Conversation
The Keras version check that was introduced in 2ddaee3 should only be done if Keras is found. Otherwise, we get wrong warnings about how the Keras version could not be determined
The new NumPy 2.4.0 is more strict when implicitly converting 1-element arrays to scalars. It doesn't do that anymore, causing the TF1 Pythonization tests to fail (see log below). This actually pointed to a real mistake in setting up the test, where a 2D array was used to define the TFormula parameters while it should be a 1D array. ```txt 962/3718 Test root-project#93: pyunittests-bindings-pyroot-pythonizations-pyroot-pyz-tf-pycallables ..............................***Failed 3.05 sec test_callable (tf_pycallables.TF1.test_callable) Test function provided as callable ... ok test_evalpar (tf_pycallables.TF1.test_evalpar) Test the 2D Numpy array pythonizations for TF1::EvalPar ... ERROR test_evalpar_dynamic (tf_pycallables.TF1.test_evalpar_dynamic) Test the 2D NumPy pythonizations with dynamic TF1 data dimensions ... ok test_fitgauss (tf_pycallables.TF1.test_fitgauss) Test fitting a histogram to a Python function ... ok test_identity (tf_pycallables.TF1.test_identity) Test simple function without parameters ... ok test_params (tf_pycallables.TF1.test_params) Test function with parameters ... ok test_params (tf_pycallables.TF2.test_params) Test function with parameters ... ok test_params (tf_pycallables.TF3.test_params) Test function with parameters ... ok ====================================================================== ERROR: test_evalpar (tf_pycallables.TF1.test_evalpar) Test the 2D Numpy array pythonizations for TF1::EvalPar ---------------------------------------------------------------------- Traceback (most recent call last): File "/github/home/ROOT-CI/src/bindings/pyroot/pythonizations/test/tf_pycallables.py", line 129, in test_evalpar expected_value = pyf_tf1_coulomb(x[i, ::2], params) File "/github/home/ROOT-CI/src/bindings/pyroot/pythonizations/test/tf_pycallables.py", line 33, in pyf_tf1_coulomb return p[1] * x[0] * x[1] / (p[0]**2) * math.exp(-p[2] / p[0]) ~~~~~~~~^^^^^^^^^^^^^^ TypeError: only 0-dimensional arrays can be converted to Python scalars ---------------------------------------------------------------------- Ran 8 tests in 1.469s FAILED (errors=1) CMake Error at /github/home/ROOT-CI/src/cmake/modules/RootTestDriver.cmake:232 (message): error code: 1 ```
Code-formatting with black to make the ruff linter happy.
7b4323e to
63a817f
Compare
Test Results 22 files 22 suites 3d 20h 46m 3s ⏱️ Results for commit 63a817f. |
dpiparo
approved these changes
Dec 23, 2025
This was referenced Dec 23, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The new NumPy 2.4.0 is more strict when implicitly converting 1-element arrays to scalars. It doesn't do that anymore, causing the TF1 Pythonization tests to fail (see log below).
This actually pointed to a real mistake in setting up the test, where a 2D array was used to define the TFormula parameters while it should be a 1D array.
One separate commit in this PR fixes an unnecessary warning when configuring ROOT in an environment without Keras installed.
Another separate commit is fixing up the code of the updated test to make the ruff linter happy.