summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/sql/selectable.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2022-02-27 23:05:46 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2022-03-01 21:05:14 -0500
commitafb9634fb28b00c7b0979660e3e0bfed6caafde5 (patch)
tree11afb462226f64d922f9d3c425a7d2c09c3d69d7 /lib/sqlalchemy/sql/selectable.py
parent7f1a3f22abffc1529100e14fcfd07a46a49fd44f (diff)
downloadsqlalchemy-afb9634fb28b00c7b0979660e3e0bfed6caafde5.tar.gz
pep484 + abc bases for assocaitionproxy
went to this one next as it was going to be hard, and also exercises the ORM expression hierarchy a bit. made some adjustments to SQLCoreOperations etc. Change-Id: Ie5dde9218dc1318252826b766d3e70b17dd24ea7 References: #6810 References: #7774
Diffstat (limited to 'lib/sqlalchemy/sql/selectable.py')
-rw-r--r--lib/sqlalchemy/sql/selectable.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/sqlalchemy/sql/selectable.py b/lib/sqlalchemy/sql/selectable.py
index 836c30af7..a5cbffb5e 100644
--- a/lib/sqlalchemy/sql/selectable.py
+++ b/lib/sqlalchemy/sql/selectable.py
@@ -19,9 +19,11 @@ import itertools
from operator import attrgetter
import typing
from typing import Any as TODO_Any
+from typing import Any
from typing import NamedTuple
from typing import Optional
from typing import Tuple
+from typing import TypeVar
from . import cache_key
from . import coercions
@@ -72,6 +74,8 @@ from .. import util
and_ = BooleanClauseList.and_
+_T = TypeVar("_T", bound=Any)
+
class _OffsetLimitParam(BindParameter):
inherit_cache = True
@@ -5528,7 +5532,7 @@ class ScalarSelect(roles.InElementRole, Generative, Grouping):
return self
-class Exists(UnaryExpression):
+class Exists(UnaryExpression[_T]):
"""Represent an ``EXISTS`` clause.
See :func:`_sql.exists` for a description of usage.