From 457902ccc3a3aa2c435887ffd308b4d86b522df2 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 6 May 2022 10:13:03 -0400 Subject: accept for literal coercions this may be needed in many more places but cast() is a prominent one. Change-Id: I5331edd2d34c54910e4ca16b0553f64fc9167af7 --- lib/sqlalchemy/sql/_elements_constructors.py | 8 ++++---- lib/sqlalchemy/sql/_typing.py | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'lib/sqlalchemy/sql') diff --git a/lib/sqlalchemy/sql/_elements_constructors.py b/lib/sqlalchemy/sql/_elements_constructors.py index 605f75ec4..0eaeae66e 100644 --- a/lib/sqlalchemy/sql/_elements_constructors.py +++ b/lib/sqlalchemy/sql/_elements_constructors.py @@ -47,8 +47,8 @@ from .functions import FunctionElement from ..util.typing import Literal if typing.TYPE_CHECKING: - from . import sqltypes from ._typing import _ColumnExpressionArgument + from ._typing import _ColumnExpressionOrLiteralArgument from ._typing import _TypeEngineArgument from .elements import BinaryExpression from .functions import FunctionElement @@ -289,7 +289,7 @@ def collate( def between( - expr: _ColumnExpressionArgument[_T], + expr: _ColumnExpressionOrLiteralArgument[_T], lower_bound: Any, upper_bound: Any, symmetric: bool = False, @@ -782,7 +782,7 @@ def case( def cast( - expression: _ColumnExpressionArgument[Any], + expression: _ColumnExpressionOrLiteralArgument[Any], type_: _TypeEngineArgument[_T], ) -> Cast[_T]: r"""Produce a ``CAST`` expression. @@ -1544,7 +1544,7 @@ def tuple_( def type_coerce( - expression: _ColumnExpressionArgument[Any], + expression: _ColumnExpressionOrLiteralArgument[Any], type_: _TypeEngineArgument[_T], ) -> TypeCoerce[_T]: r"""Associate a SQL expression with a particular type, without rendering diff --git a/lib/sqlalchemy/sql/_typing.py b/lib/sqlalchemy/sql/_typing.py index 1df530dbd..f49a6d3ec 100644 --- a/lib/sqlalchemy/sql/_typing.py +++ b/lib/sqlalchemy/sql/_typing.py @@ -162,6 +162,9 @@ overall which brings in the TextClause object also. """ +_ColumnExpressionOrLiteralArgument = Union[Any, _ColumnExpressionArgument[_T]] + + _InfoType = Dict[Any, Any] """the .info dictionary accepted and used throughout Core /ORM""" -- cgit v1.2.1