From ae867bf0cbdbb935742d8cb22e1b76136b77965c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ha=CC=88cker?= Date: Tue, 23 Mar 2021 11:46:18 -0400 Subject: Use compat.exec_() Fixed a bug where python 2.7.5 (default on CentOS 7) wasn't able to import sqlalchemy, because on this version of Python ``exec "statement"`` and ``exec("statement")`` do not behave the same way. The compatibility ``exec_()`` function was used instead. Fixes: #6069 Closes: #6112 Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/6112 Pull-request-sha: 4e951f9278eb462d1432a92b7bad93b973e4e2a5 Change-Id: I34e00250e874368e83c3e992be80e989a3c4f054 --- lib/sqlalchemy/sql/lambdas.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/sqlalchemy/sql/lambdas.py') diff --git a/lib/sqlalchemy/sql/lambdas.py b/lib/sqlalchemy/sql/lambdas.py index 2b77b8743..ebf576c8f 100644 --- a/lib/sqlalchemy/sql/lambdas.py +++ b/lib/sqlalchemy/sql/lambdas.py @@ -25,6 +25,7 @@ from .. import exc from .. import inspection from .. import util from ..util import collections_abc +from ..util import compat _closure_per_cache_key = util.LRUCache(1000) @@ -1064,7 +1065,7 @@ class AnalyzedFunction(object): code += " return %s\n" % ", ".join("i%d" % i for i in argrange) code += " return closure.__closure__" vars_ = {"o%d" % i: cell_values[i] for i in argrange} - exec(code, vars_, vars_) + compat.exec_(code, vars_, vars_) closure = vars_["make_cells"]() func = type(f)( -- cgit v1.2.1