From 575ab3e7df30fc8da03752d102c8eeb6cb3a3e3d Mon Sep 17 00:00:00 2001 From: Oliver Rice Date: Sat, 13 Feb 2021 13:03:15 -0600 Subject: [PATCH] allowlist select(.c) in legacy select() --- lib/sqlalchemy/sql/selectable.py | 5 ++--- test/sql/test_deprecations.py | 9 --------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/lib/sqlalchemy/sql/selectable.py b/lib/sqlalchemy/sql/selectable.py index ba3ccdec04..ad6b1cdcaf 100644 --- a/lib/sqlalchemy/sql/selectable.py +++ b/lib/sqlalchemy/sql/selectable.py @@ -39,6 +39,7 @@ from .base import Generative from .base import HasCompileState from .base import HasMemoized from .base import Immutable +from .base import ImmutableColumnCollection from .base import prefix_anon_map from .coercions import _document_text_coercion from .elements import _anonymous_label @@ -4871,9 +4872,7 @@ class Select( """ if ( - args - and hasattr(args[0], "__iter__") - and not hasattr(args[0], "strip") + args and isinstance(args[0], (list, ImmutableColumnCollection)) ) or kw: return cls.create_legacy_select(*args, **kw) else: diff --git a/test/sql/test_deprecations.py b/test/sql/test_deprecations.py index 3a6da1d13d..81ea684969 100644 --- a/test/sql/test_deprecations.py +++ b/test/sql/test_deprecations.py @@ -437,15 +437,6 @@ class SelectableTest(fixtures.TestBase, AssertsCompiledSQL): stmt = select([column("q")]) self.assert_compile(stmt, "SELECT q") - def test_select_iterable_argument(self): - - with testing.expect_deprecated_20( - r"The legacy calling style of select\(\) is deprecated " - "and will be removed in SQLAlchemy 2.0" - ): - stmt = select(iter([column("q")])) - self.assert_compile(stmt, "SELECT q") - def test_select_immutable_column_collection_argument(self): t1 = table("t1", column("q")) -- 2.47.2