name = self.__name__
break
else:
- name = attributes._UNKNOWN_ATTR_KEY # type: ignore[assignment]
+ name = attributes._UNKNOWN_ATTR_KEY # type: ignore[assignment,unused-ignore] # noqa: E501
return cast(
"_HybridClassLevelAccessor[_T]",
self.symmetric_difference_update(other)
return self
- def __isub__(self, other: AbstractSet[object]) -> MutableSet[_T]: # type: ignore[misc] # noqa: E501
+ def __isub__(self, other: AbstractSet[object]) -> MutableSet[_T]: # type: ignore[misc,unused-ignore] # noqa: E501
self.difference_update(other)
return self
set.remove(self, elem)
self.changed()
- def discard(self, elem: _T) -> None:
+ def discard(self, elem: _T) -> None: # type: ignore[override,unused-ignore] # noqa: E501
set.discard(self, elem)
self.changed()
"_label_select_column is only relevant within "
"the columns clause of a SELECT or RETURNING"
)
+ result_expr: Union[elements.Label[Any], _CompileLabel]
+
if isinstance(column, elements.Label):
if col_expr is not column:
result_expr = _CompileLabel(
expected_msg,
)
- expected_msg = re.sub(
- "List", "builtins.list", expected_msg
- )
+ # as of mypy 1.20.0 it's not spitting out
+ # "builtins" anymore (using assert_type() would be
+ # better overall)
+ # expected_msg = re.sub(
+ # "List", "builtins.list", expected_msg
+ # )
- expected_msg = re.sub(
- r"\b(int|str|float|bool)\b",
- lambda m: rf"builtins.{m.group(0)}\*?",
- expected_msg,
- )
+ # expected_msg = re.sub(
+ # r"\b(int|str|float|bool)\b",
+ # lambda m: rf"builtins.{m.group(0)}\*?",
+ # expected_msg,
+ # )
# expected_msg = re.sub(
# r"(Sequence|Tuple|List|Union)",
# lambda m: fr"typing.{m.group(0)}\*?",
self, __value: Mapping[_KT, _VT]
) -> immutabledict[_KT, _VT]:
return immutabledict(
- super().__or__(__value), # type: ignore[call-overload]
+ super().__or__(__value), # type: ignore[call-overload,operator,unused-ignore] # noqa: E501
)
def __ror__( # type: ignore[override]
self, __value: Mapping[_KT, _VT]
) -> immutabledict[_KT, _VT]:
return immutabledict(
- super().__ror__(__value), # type: ignore[call-overload]
+ super().__ror__(__value), # type: ignore[call-overload,operator,unused-ignore] # noqa: E501
)
self._list.insert(pos, element)
super().add(element)
- def discard(self, element: _T) -> None:
+ def discard(self, element: _T) -> None: # type: ignore[override,unused-ignore] # noqa: E501
if element in self:
self._list.remove(element)
super().remove(element)
def __and__(self, other: AbstractSet[object]) -> OrderedSet[_T]:
return self.intersection(other)
- def symmetric_difference(self, other: Iterable[_T]) -> OrderedSet[_T]:
+ def symmetric_difference(self, other: Iterable[_T]) -> OrderedSet[_T]: # type: ignore[override,unused-ignore] # noqa: E501
collection: Collection[_T]
if isinstance(other, set):
collection = other_set = other
other_set = super().difference(*other)
return self.__class__(a for a in self._list if a in other_set)
- def __sub__(self, other: AbstractSet[Optional[_T]]) -> OrderedSet[_T]:
+ def __sub__(self, other: AbstractSet[Optional[_T]]) -> OrderedSet[_T]: # type: ignore[override,unused-ignore] # noqa: E501
return self.difference(other)
def intersection_update(self, *other: Iterable[Any]) -> None:
else:
typ.add(elem)
- typ.discard(None) # type: ignore
+ typ.discard(None) # type: ignore[arg-type,unused-ignore]
typ = {t for t in typ if t is not NoneType and not is_fwd_none(t)}
mypy = [
{include-group = "tests-greenlet"},
- "mypy>=1.19.0",
+ "mypy>=1.20.0",
"nox", # because we check noxfile.py
"pytest>8,<10", # alembic/testing imports pytest
"types-greenlet",
u1 = User()
if typing.TYPE_CHECKING:
- # EXPECTED_RE_TYPE: sqlalchemy.*.associationproxy.AssociationProxyInstance\[builtins.set\*?\[builtins.str\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.associationproxy.AssociationProxyInstance\[set\*?\[str\]\]
reveal_type(User.email_addresses)
- # EXPECTED_RE_TYPE: builtins.set\*?\[builtins.str\]
+ # EXPECTED_RE_TYPE: set\*?\[str\]
reveal_type(u1.email_addresses)
stmt2 = select(expr4)
if typing.TYPE_CHECKING:
- # EXPECTED_RE_TYPE: builtins.int\*?
+ # EXPECTED_RE_TYPE: int\*?
reveal_type(i1.length)
- # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[builtins.int\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[int\*?\]
reveal_type(Interval.length)
- # EXPECTED_RE_TYPE: sqlalchemy.*.BinaryExpression\[builtins.bool\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.BinaryExpression\[bool\*?\]
reveal_type(expr1)
- # EXPECTED_RE_TYPE: sqlalchemy.*.SQLCoreOperations\[builtins.int\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.SQLCoreOperations\[int\*?\]
reveal_type(expr2)
- # EXPECTED_RE_TYPE: sqlalchemy.*.SQLCoreOperations\[builtins.int\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.SQLCoreOperations\[int\*?\]
reveal_type(expr3)
# EXPECTED_TYPE: bool
# while we are here, check some Float[] / div type stuff
if typing.TYPE_CHECKING:
- # EXPECTED_RE_TYPE: sqlalchemy.*Function\[builtins.float\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*Function\[float\*?\]
reveal_type(f1)
- # EXPECTED_RE_TYPE: sqlalchemy.*ColumnElement\[builtins.float\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*ColumnElement\[float\*?\]
reveal_type(expr)
return expr
# while we are here, check some Float[] / div type stuff
if typing.TYPE_CHECKING:
- # EXPECTED_RE_TYPE: sqlalchemy.*Function\[builtins.float\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*Function\[float\*?\]
reveal_type(f1)
- # EXPECTED_RE_TYPE: sqlalchemy.*ColumnElement\[builtins.float\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*ColumnElement\[float\*?\]
reveal_type(expr)
return expr
if typing.TYPE_CHECKING:
- # EXPECTED_RE_TYPE: builtins.int\*?
+ # EXPECTED_RE_TYPE: int\*?
reveal_type(i1.length)
- # EXPECTED_RE_TYPE: builtins.float\*?
+ # EXPECTED_RE_TYPE: float\*?
reveal_type(i2.old_radius)
- # EXPECTED_RE_TYPE: builtins.float\*?
+ # EXPECTED_RE_TYPE: float\*?
reveal_type(i2.new_radius)
- # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[builtins.int\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[int\*?\]
reveal_type(Interval.length)
- # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[builtins.float\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[float\*?\]
reveal_type(Interval.old_radius)
- # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[builtins.float\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[float\*?\]
reveal_type(Interval.new_radius)
- # EXPECTED_RE_TYPE: sqlalchemy.*.BinaryExpression\[builtins.bool\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.BinaryExpression\[bool\*?\]
reveal_type(expr1)
- # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[builtins.float\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[float\*?\]
reveal_type(expr2o)
- # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[builtins.float\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[float\*?\]
reveal_type(expr2n)
- # EXPECTED_RE_TYPE: sqlalchemy.*.BinaryExpression\[builtins.bool\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.BinaryExpression\[bool\*?\]
reveal_type(expr3o)
- # EXPECTED_RE_TYPE: sqlalchemy.*.BinaryExpression\[builtins.bool\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.BinaryExpression\[bool\*?\]
reveal_type(expr3n)
# test #9268
# EXPECTED_TYPE: str
reveal_type(a.topic)
-# EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[builtins.str\*?\]
+# EXPECTED_RE_TYPE: sqlalchemy.*._HybridClassLevelAccessor\[str\*?\]
reveal_type(Article.topic)
# EXPECTED_TYPE: date
# EXPECTED_RE_TYPE: def \(\) -> sqlalchemy.*.orderinglist.OrderingList\[orderinglist_one.Bullet\]
reveal_type(pos_from_text)
- # EXPECTED_TYPE: builtins.list[orderinglist_one.Bullet]
+ # EXPECTED_TYPE: list[orderinglist_one.Bullet]
reveal_type(slide.bullets)
# EXPECTED_TYPE: str
reveal_type(tis.data)
-# EXPECTED_RE_TYPE: .*builtins.int \| None
+# EXPECTED_RE_TYPE: .*int \| None
reveal_type(tis.y)
tis.data = "some other data"
if typing.TYPE_CHECKING:
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.str \| None\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[str \| None\]
reveal_type(User.extra)
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.str \| None\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[str \| None\]
reveal_type(User.extra_name)
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[str\*?\]
reveal_type(Address.email)
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[str\*?\]
reveal_type(Address.email_name)
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.list\*?\[relationship.Address\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[list\*?\[relationship.Address\]\]
reveal_type(User.addresses_style_one)
- # EXPECTED_RE_TYPE: sqlalchemy.orm.attributes.InstrumentedAttribute\[builtins.set\*?\[relationship.Address\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.orm.attributes.InstrumentedAttribute\[set\*?\[relationship.Address\]\]
reveal_type(User.addresses_style_two)
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.list\*?\[relationship.User\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[list\*?\[relationship.User\]\]
reveal_type(Group.addresses_style_one_anno_only)
- # EXPECTED_RE_TYPE: sqlalchemy.orm.attributes.InstrumentedAttribute\[builtins.set\*?\[relationship.User\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.orm.attributes.InstrumentedAttribute\[set\*?\[relationship.User\]\]
reveal_type(Group.addresses_style_two_anno_only)
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.list\*?\[relationship.MoreMail\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[list\*?\[relationship.MoreMail\]\]
reveal_type(Address.rel_style_one)
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.set\*?\[relationship.MoreMail\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[set\*?\[relationship.MoreMail\]\]
reveal_type(Address.rel_style_one_anno_only)
# EXPECTED_RE_TYPE: sqlalchemy.*.QueryableAttribute\[relationship.Engineer\]
rows1 = q.all()
- # EXPECTED_RE_TYPE: builtins.[Ll]ist\[.*User\*?\]
+ # EXPECTED_RE_TYPE: [Ll]ist\[.*User\*?\]
reveal_type(rows1)
q2 = sess.query(User.id).filter_by(id=7)
if typing.TYPE_CHECKING:
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.list\*?\[trad_relationship_uselist.Address\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[list\*?\[trad_relationship_uselist.Address\]\]
reveal_type(User.addresses_style_one)
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.set\*?\[trad_relationship_uselist.Address\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[set\*?\[trad_relationship_uselist.Address\]\]
reveal_type(User.addresses_style_two)
# EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[Any\]
# EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[Any\]
reveal_type(Address.user_style_ten)
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.dict\*?\[builtins.str, trad_relationship_uselist.User\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[dict\*?\[str, trad_relationship_uselist.User\]\]
reveal_type(Address.user_style_ten_typed)
"""
import typing
+from typing import assert_type
from typing import List
from typing import Set
+from typing import TYPE_CHECKING
from sqlalchemy import ForeignKey
from sqlalchemy import Integer
from sqlalchemy.orm import relationship
+if TYPE_CHECKING:
+ from sqlalchemy.orm import InstrumentedAttribute
+
+
class Base(DeclarativeBase):
pass
if typing.TYPE_CHECKING:
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.list\*?\[traditional_relationship.Address\]\]
- reveal_type(User.addresses_style_one)
+ assert_type(User.addresses_style_one, InstrumentedAttribute[list[Address]])
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.set\*?\[traditional_relationship.Address\]\]
- reveal_type(User.addresses_style_two)
+ assert_type(User.addresses_style_two, InstrumentedAttribute[set[Address]])
# EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[Any\]
reveal_type(Address.user_style_one)
# EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[traditional_relationship.User\*?\]
reveal_type(Address.user_style_two_typed)
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.list\*?\[traditional_relationship.User\]\]
- reveal_type(Address.user_style_three)
+ assert_type(Address.user_style_three, InstrumentedAttribute[list[User]])
- # EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[builtins.list\*?\[traditional_relationship.User\]\]
- reveal_type(Address.user_style_four)
+ assert_type(Address.user_style_four, InstrumentedAttribute[list[User]])
# EXPECTED_RE_TYPE: sqlalchemy.*.InstrumentedAttribute\[Any\]
reveal_type(Address.user_style_five)
from typing import assert_type
from typing import Optional
from typing import Tuple
+from typing import TYPE_CHECKING
from sqlalchemy import Column
from sqlalchemy import column
from sqlalchemy.orm import Session
+if TYPE_CHECKING:
+ from sqlalchemy import Row
+ from sqlalchemy.orm.query import RowReturningQuery
+
+
class Base(DeclarativeBase):
pass
# EXPECTED_TYPE: List[User]
reveal_type(q1.all())
- # mypy switches to builtins.list for some reason here
- # EXPECTED_RE_TYPE: .*\.[Ll]ist\[.*Row\*?\[Tuple\[.*User\]\]\]
- reveal_type(q1.only_return_tuples(True).all())
+ assert_type(q1.only_return_tuples(True).all(), list[Row[tuple[User]]])
# EXPECTED_TYPE: List[Tuple[User]]
reveal_type(q1.tuples().all())
def t_legacy_query_cols_1() -> None:
q1 = session.query(User.id, User.name).filter(User.id == 5)
- # EXPECTED_TYPE: RowReturningQuery[Tuple[int, str]]
- reveal_type(q1)
+ assert_type(q1, RowReturningQuery[tuple[int, str]])
# EXPECTED_TYPE: Row[Tuple[int, str]]
reveal_type(q1.one())
# as far as if this is ColumnElement, BinaryElement, SQLCoreOperations,
# that might change. main thing is it's SomeSQLColThing[bool] and
# not 'bool' or 'Any'.
- # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[builtins.bool\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[bool\]
reveal_type(expr1)
- # EXPECTED_RE_TYPE: sqlalchemy..*ColumnClause\[builtins.str.?\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ColumnClause\[str.?\]
reveal_type(c1)
- # EXPECTED_RE_TYPE: sqlalchemy..*ColumnClause\[builtins.int.?\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ColumnClause\[int.?\]
reveal_type(c2)
- # EXPECTED_RE_TYPE: sqlalchemy..*BinaryExpression\[builtins.bool\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*BinaryExpression\[bool\]
reveal_type(expr2)
- # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[builtins.float | .*\.Decimal\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[float | .*\.Decimal\]
reveal_type(expr3)
- # EXPECTED_RE_TYPE: sqlalchemy..*UnaryExpression\[builtins.int.?\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*UnaryExpression\[int.?\]
reveal_type(expr4)
- # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[builtins.bool.?\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[bool.?\]
reveal_type(expr5)
- # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[builtins.bool.?\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[bool.?\]
reveal_type(expr6)
- # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[builtins.str\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[str\]
reveal_type(expr7)
- # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[builtins.int.?\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ColumnElement\[int.?\]
reveal_type(expr8)
# EXPECTED_TYPE: BinaryExpression[bool]
single_stmt = select(User.name).where(User.name == "foo")
-# EXPECTED_RE_TYPE: sqlalchemy..*Select\*?\[Tuple\[builtins.str\*?\]\]
+# EXPECTED_RE_TYPE: sqlalchemy..*Select\*?\[Tuple\[str\*?\]\]
reveal_type(single_stmt)
multi_stmt = select(User.id, User.name).where(User.name == "foo")
-# EXPECTED_RE_TYPE: sqlalchemy..*Select\*?\[Tuple\[builtins.int\*?, builtins.str\*?\]\]
+# EXPECTED_RE_TYPE: sqlalchemy..*Select\*?\[Tuple\[int\*?, str\*?\]\]
reveal_type(multi_stmt)
r1 = session.execute(s1)
- # EXPECTED_RE_TYPE: sqlalchemy..*.Result\[Tuple\[builtins.int\*?, typed_results.User\*?, builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*.Result\[Tuple\[int\*?, typed_results.User\*?, str\*?\]\]
reveal_type(r1)
s2 = select(User, a1).where(User.name == "foo")
# automatically typed since they are dynamically generated
a1_id = cast(Mapped[int], a1.id)
s3 = select(User.id, a1_id, a1, User).where(User.name == "foo")
- # EXPECTED_RE_TYPE: sqlalchemy.*Select\*?\[Tuple\[builtins.int\*?, builtins.int\*?, typed_results.User\*?, typed_results.User\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*Select\*?\[Tuple\[int\*?, int\*?, typed_results.User\*?, typed_results.User\*?\]\]
reveal_type(s3)
# testing Mapped[entity]
s5 = select(x, y, User.name + "hi")
- # EXPECTED_RE_TYPE: sqlalchemy..*Select\*?\[Tuple\[builtins.int\*?, builtins.int\*?\, builtins.str\*?]\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*Select\*?\[Tuple\[int\*?, int\*?\, str\*?]\]
reveal_type(s5)
r1 = result.scalar()
- # EXPECTED_RE_TYPE: builtins.str \| None
+ # EXPECTED_RE_TYPE: str \| None
reveal_type(r1)
r2 = result.scalar_one()
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(r2)
r3 = result.scalar_one_or_none()
- # EXPECTED_RE_TYPE: builtins.str \| None
+ # EXPECTED_RE_TYPE: str \| None
reveal_type(r3)
r4 = result.scalars()
- # EXPECTED_RE_TYPE: sqlalchemy..*ScalarResult\[builtins.str.*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ScalarResult\[str.*?\]
reveal_type(r4)
r5 = result.scalars(0)
- # EXPECTED_RE_TYPE: sqlalchemy..*ScalarResult\[builtins.str.*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ScalarResult\[str.*?\]
reveal_type(r5)
r1 = await result.scalar()
- # EXPECTED_RE_TYPE: builtins.str \| None
+ # EXPECTED_RE_TYPE: str \| None
reveal_type(r1)
r2 = await result.scalar_one()
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(r2)
r3 = await result.scalar_one_or_none()
- # EXPECTED_RE_TYPE: builtins.str \| None
+ # EXPECTED_RE_TYPE: str \| None
reveal_type(r3)
r4 = result.scalars()
- # EXPECTED_RE_TYPE: sqlalchemy..*ScalarResult\[builtins.str.*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ScalarResult\[str.*?\]
reveal_type(r4)
r5 = result.scalars(0)
- # EXPECTED_RE_TYPE: sqlalchemy..*ScalarResult\[builtins.str.*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy..*ScalarResult\[str.*?\]
reveal_type(r5)
def t_connection_execute_multi_row_t() -> None:
result = connection.execute(multi_stmt)
- # EXPECTED_RE_TYPE: sqlalchemy.*CursorResult\[Tuple\[builtins.int\*?, builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*CursorResult\[Tuple\[int\*?, str\*?\]\]
reveal_type(result)
row = result.one()
- # EXPECTED_RE_TYPE: sqlalchemy.*Row\[Tuple\[builtins.int\*?, builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*Row\[Tuple\[int\*?, str\*?\]\]
reveal_type(row)
x, y = row.t
- # EXPECTED_RE_TYPE: builtins.int\*?
+ # EXPECTED_RE_TYPE: int\*?
reveal_type(x)
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(y)
def t_connection_execute_multi() -> None:
result = connection.execute(multi_stmt).t
- # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[builtins.int\*?, builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[int\*?, str\*?\]\]
reveal_type(result)
row = result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.int\*?, builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[int\*?, str\*?\]
reveal_type(row)
x, y = row
- # EXPECTED_RE_TYPE: builtins.int\*?
+ # EXPECTED_RE_TYPE: int\*?
reveal_type(x)
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(y)
def t_connection_execute_single() -> None:
result = connection.execute(single_stmt).t
- # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[str\*?\]\]
reveal_type(result)
row = result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[str\*?\]
reveal_type(row)
(x,) = row
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(x)
def t_connection_execute_single_row_scalar() -> None:
result = connection.execute(single_stmt).t
- # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[str\*?\]\]
reveal_type(result)
x = result.scalar()
- # EXPECTED_RE_TYPE: builtins.str \| None
+ # EXPECTED_RE_TYPE: str \| None
reveal_type(x)
def t_connection_scalar() -> None:
obj = connection.scalar(single_stmt)
- # EXPECTED_RE_TYPE: builtins.str \| None
+ # EXPECTED_RE_TYPE: str \| None
reveal_type(obj)
def t_connection_scalars() -> None:
result = connection.scalars(single_stmt)
- # EXPECTED_RE_TYPE: sqlalchemy.*ScalarResult\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*ScalarResult\[str\*?\]
reveal_type(result)
data = result.all()
- # EXPECTED_RE_TYPE: typing.Sequence\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: typing.Sequence\[str\*?\]
reveal_type(data)
def t_session_execute_multi() -> None:
result = session.execute(multi_stmt).t
- # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[builtins.int\*?, builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[int\*?, str\*?\]\]
reveal_type(result)
row = result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.int\*?, builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[int\*?, str\*?\]
reveal_type(row)
x, y = row
- # EXPECTED_RE_TYPE: builtins.int\*?
+ # EXPECTED_RE_TYPE: int\*?
reveal_type(x)
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(y)
def t_session_execute_single() -> None:
result = session.execute(single_stmt).t
- # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[str\*?\]\]
reveal_type(result)
row = result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[str\*?\]
reveal_type(row)
(x,) = row
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(x)
def t_session_scalar() -> None:
obj = session.scalar(single_stmt)
- # EXPECTED_RE_TYPE: builtins.str \| None
+ # EXPECTED_RE_TYPE: str \| None
reveal_type(obj)
def t_session_scalars() -> None:
result = session.scalars(single_stmt)
- # EXPECTED_RE_TYPE: sqlalchemy.*ScalarResult\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*ScalarResult\[str\*?\]
reveal_type(result)
data = result.all()
- # EXPECTED_RE_TYPE: typing.Sequence\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: typing.Sequence\[str\*?\]
reveal_type(data)
async def t_async_connection_execute_multi() -> None:
result = (await async_connection.execute(multi_stmt)).t
- # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[builtins.int\*?, builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[int\*?, str\*?\]\]
reveal_type(result)
row = result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.int\*?, builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[int\*?, str\*?\]
reveal_type(row)
x, y = row
- # EXPECTED_RE_TYPE: builtins.int\*?
+ # EXPECTED_RE_TYPE: int\*?
reveal_type(x)
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(y)
async def t_async_connection_execute_single() -> None:
result = (await async_connection.execute(single_stmt)).t
- # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[str\*?\]\]
reveal_type(result)
row = result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[str\*?\]
reveal_type(row)
(x,) = row
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(x)
async def t_async_connection_scalar() -> None:
obj = await async_connection.scalar(single_stmt)
- # EXPECTED_RE_TYPE: builtins.str \| None
+ # EXPECTED_RE_TYPE: str \| None
reveal_type(obj)
async def t_async_connection_scalars() -> None:
result = await async_connection.scalars(single_stmt)
- # EXPECTED_RE_TYPE: sqlalchemy.*ScalarResult\*?\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*ScalarResult\*?\[str\*?\]
reveal_type(result)
data = result.all()
- # EXPECTED_RE_TYPE: typing.Sequence\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: typing.Sequence\[str\*?\]
reveal_type(data)
async def t_async_session_execute_multi() -> None:
result = (await async_session.execute(multi_stmt)).t
- # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[builtins.int\*?, builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[int\*?, str\*?\]\]
reveal_type(result)
row = result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.int\*?, builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[int\*?, str\*?\]
reveal_type(row)
x, y = row
- # EXPECTED_RE_TYPE: builtins.int\*?
+ # EXPECTED_RE_TYPE: int\*?
reveal_type(x)
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(y)
async def t_async_session_execute_single() -> None:
result = (await async_session.execute(single_stmt)).t
- # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[str\*?\]\]
reveal_type(result)
row = result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[str\*?\]
reveal_type(row)
(x,) = row
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(x)
async def t_async_session_scalar() -> None:
obj = await async_session.scalar(single_stmt)
- # EXPECTED_RE_TYPE: builtins.str \| None
+ # EXPECTED_RE_TYPE: str \| None
reveal_type(obj)
async def t_async_session_scalars() -> None:
result = await async_session.scalars(single_stmt)
- # EXPECTED_RE_TYPE: sqlalchemy.*ScalarResult\*?\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*ScalarResult\*?\[str\*?\]
reveal_type(result)
data = result.all()
- # EXPECTED_RE_TYPE: typing.Sequence\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: typing.Sequence\[str\*?\]
reveal_type(data)
async def t_async_connection_stream_multi() -> None:
result = (await async_connection.stream(multi_stmt)).t
- # EXPECTED_RE_TYPE: sqlalchemy.*AsyncTupleResult\[Tuple\[builtins.int\*?, builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*AsyncTupleResult\[Tuple\[int\*?, str\*?\]\]
reveal_type(result)
row = await result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.int\*?, builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[int\*?, str\*?\]
reveal_type(row)
x, y = row
- # EXPECTED_RE_TYPE: builtins.int\*?
+ # EXPECTED_RE_TYPE: int\*?
reveal_type(x)
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(y)
async def t_async_connection_stream_single() -> None:
result = (await async_connection.stream(single_stmt)).t
- # EXPECTED_RE_TYPE: sqlalchemy.*AsyncTupleResult\[Tuple\[builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*AsyncTupleResult\[Tuple\[str\*?\]\]
reveal_type(result)
row = await result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[str\*?\]
reveal_type(row)
(x,) = row
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(x)
async def t_async_connection_stream_scalars() -> None:
result = await async_connection.stream_scalars(single_stmt)
- # EXPECTED_RE_TYPE: sqlalchemy.*AsyncScalarResult\*?\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*AsyncScalarResult\*?\[str\*?\]
reveal_type(result)
data = await result.all()
- # EXPECTED_RE_TYPE: typing.Sequence\*?\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: typing.Sequence\*?\[str\*?\]
reveal_type(data)
async def t_async_session_stream_multi() -> None:
result = (await async_session.stream(multi_stmt)).t
- # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[builtins.int\*?, builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*TupleResult\[Tuple\[int\*?, str\*?\]\]
reveal_type(result)
row = await result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.int\*?, builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[int\*?, str\*?\]
reveal_type(row)
x, y = row
- # EXPECTED_RE_TYPE: builtins.int\*?
+ # EXPECTED_RE_TYPE: int\*?
reveal_type(x)
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(y)
async def t_async_session_stream_single() -> None:
result = (await async_session.stream(single_stmt)).t
- # EXPECTED_RE_TYPE: sqlalchemy.*AsyncTupleResult\[Tuple\[builtins.str\*?\]\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*AsyncTupleResult\[Tuple\[str\*?\]\]
reveal_type(result)
row = await result.one()
- # EXPECTED_RE_TYPE: Tuple\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: Tuple\[str\*?\]
reveal_type(row)
(x,) = row
- # EXPECTED_RE_TYPE: builtins.str\*?
+ # EXPECTED_RE_TYPE: str\*?
reveal_type(x)
async def t_async_session_stream_scalars() -> None:
result = await async_session.stream_scalars(single_stmt)
- # EXPECTED_RE_TYPE: sqlalchemy.*AsyncScalarResult\*?\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: sqlalchemy.*AsyncScalarResult\*?\[str\*?\]
reveal_type(result)
data = await result.all()
- # EXPECTED_RE_TYPE: typing.Sequence\*?\[builtins.str\*?\]
+ # EXPECTED_RE_TYPE: typing.Sequence\*?\[str\*?\]
reveal_type(data)