<!-- Provide a general summary of your proposed changes in the Title field above -->
Fixes: #9156
### Description
<!-- Describe your changes in detail -->
### Checklist
<!-- go over following points. check them with an `x` if they do apply, (they turn into clickable checkboxes once the PR is submitted, so no need to do everything at once)
-->
This pull request is:
- [ ] A documentation / typographical error fix
- Good to go, no issue or tests are needed
- [x] A short code fix
- please include the issue number, and create an issue if none exists, which
must include a complete example of the issue. one line code fixes without an
issue and demonstration will not be accepted.
- Please include: `Fixes: #<issue number>` in the commit message
- please include tests. one line code fixes without tests will not be accepted.
- [ ] A new feature implementation
- please include the issue number, and create an issue if none exists, which must
include a complete example of how the feature would look.
- Please include: `Fixes: #<issue number>` in the commit message
- please include tests.
**Have a nice day!**
Closes: #9157
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/9157
Pull-request-sha:
321dac184ee0d317296a689d7c8e47bf1464bcce
Change-Id: I99fe759a21de910f34bae3bb919e82cd08969e81
--- /dev/null
+.. change::
+ :tags: bug, typing
+ :tickets: 9156
+
+ The :meth:`_expression.ColumnElement.cast` is typed to accept
+ both ``Type[TypeEngine[T]]`` and ``TypeEngine[T]`` rather only
+ ``TypeEngine[T]``.
\ No newline at end of file
co._is_clone_of = selectable._is_clone_of.columns.get(key)
return key, co
- def cast(self, type_: TypeEngine[_T]) -> Cast[_T]:
+ def cast(self, type_: _TypeEngineArgument[_T]) -> Cast[_T]:
"""Produce a type cast, i.e. ``CAST(<expression> AS <type>)``.
This is a shortcut to the :func:`_expression.cast` function.
--- /dev/null
+from typing import Any, Type
+
+from sqlalchemy.sql.elements import ColumnElement
+from sqlalchemy.sql.type_api import TypeEngine
+
+col: ColumnElement[Any]
+type_: Type[TypeEngine[Any]]
+obj: TypeEngine[Any]
+
+col.cast(type_)
+col.cast(obj)