[v636][Python] Fix TF1 Pythonization test for NumPy 2.4.0#20777
Merged
guitargeek merged 2 commits intoroot-project:v6-36-00-patchesfrom Dec 24, 2025
Merged
[v636][Python] Fix TF1 Pythonization test for NumPy 2.4.0#20777guitargeek merged 2 commits intoroot-project:v6-36-00-patchesfrom
guitargeek merged 2 commits intoroot-project:v6-36-00-patchesfrom
Conversation
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 ``` (cherry picked from commit d5135f7)
Code-formatting with black to make the ruff linter happy. (cherry picked from commit e95e721)
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.
Backport of #20775.