From: Martin Häcker Date: Tue, 23 Mar 2021 15:46:18 +0000 (-0400) Subject: Use compat.exec_() X-Git-Tag: rel_1_4_3~13^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ae867bf0cbdbb935742d8cb22e1b76136b77965c;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git 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 --- diff --git a/doc/build/changelog/unreleased_14/6069.rst b/doc/build/changelog/unreleased_14/6069.rst new file mode 100644 index 0000000000..6cebdf44a8 --- /dev/null +++ b/doc/build/changelog/unreleased_14/6069.rst @@ -0,0 +1,8 @@ +.. change:: + :tags: bug, orm + :tickets: 6069 + + 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. \ No newline at end of file diff --git a/lib/sqlalchemy/sql/lambdas.py b/lib/sqlalchemy/sql/lambdas.py index 2b77b8743f..ebf576c8f2 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)(