diff options
| author | Martin Häcker <mhaecker@mac.com> | 2021-03-23 11:46:18 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2021-03-23 13:56:36 -0400 |
| commit | ae867bf0cbdbb935742d8cb22e1b76136b77965c (patch) | |
| tree | 22101036009c0578e8c0fdf4c95db800654e0e9b | |
| parent | 8bf920d52ddd4ec5f62a00fb9db370a076aa375d (diff) | |
| download | sqlalchemy-ae867bf0cbdbb935742d8cb22e1b76136b77965c.tar.gz | |
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
| -rw-r--r-- | doc/build/changelog/unreleased_14/6069.rst | 8 | ||||
| -rw-r--r-- | lib/sqlalchemy/sql/lambdas.py | 3 |
2 files changed, 10 insertions, 1 deletions
diff --git a/doc/build/changelog/unreleased_14/6069.rst b/doc/build/changelog/unreleased_14/6069.rst new file mode 100644 index 000000000..6cebdf44a --- /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 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)( |
