From afed7cbd94274101d6bcfc5bffa5b794160fac48 Mon Sep 17 00:00:00 2001 From: thle-odoo Date: Tue, 8 Jul 2025 14:12:55 +0200 Subject: [PATCH] [IMP] tools: separate compilation/assertion code object Adapt util. Community PR: https://github.com/odoo/odoo/pull/217284 --- src/util/misc.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/util/misc.py b/src/util/misc.py index f22a8e0d0..21cb6aa27 100644 --- a/src/util/misc.py +++ b/src/util/misc.py @@ -545,7 +545,12 @@ def safe_eval(expr, context=None): assert isinstance(expr, (str, bytes)) assert isinstance(context, SelfPrintEvalContext) - c = _safe_eval_mod.test_expr(expr, _safe_eval_mod._SAFE_OPCODES, mode="eval", filename=None) + if version_gte("saas~18.5"): + c = _safe_eval_mod.compile_codeobj(expr, filename=None, mode="eval") + _safe_eval_mod.assert_valid_codeobj(_safe_eval_mod._SAFE_OPCODES, c, expr) + else: + c = _safe_eval_mod.test_expr(expr, _safe_eval_mod._SAFE_OPCODES, mode="eval", filename=None) + context["__builtins__"] = dict(_safe_eval_mod._BUILTINS) try: return _safe_eval_mod.unsafe_eval(c, context, None)