45b86af572
Variables can now be computed by an embedded Python3 interpreter in addition to the Boost.Spirit X3 expression engine. A <python> ... </python> block receives all collection parameters as per-run lists (bare names, plus par[]/parErr[] dictionaries as a fallback for names that are not valid Python identifiers such as 'lambda') and must assign <name> and <name>Err; errors are user supplied. Works both in the GUI variable dialog and in scripts. The feature is optional and only enabled when ROOT is built with TPython (CMake target ROOT::ROOTTPython); otherwise it compiles out. See MUPP_PY.README for ROOT configure requirements and usage. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>