diff options
Diffstat (limited to 'test/ext/mypy/plain_files/pep681.py')
| -rw-r--r-- | test/ext/mypy/plain_files/pep681.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/ext/mypy/plain_files/pep681.py b/test/ext/mypy/plain_files/pep681.py new file mode 100644 index 000000000..caa219d78 --- /dev/null +++ b/test/ext/mypy/plain_files/pep681.py @@ -0,0 +1,32 @@ +from __future__ import annotations + +from typing import Optional + +from sqlalchemy.orm import DeclarativeBase +from sqlalchemy.orm import Mapped +from sqlalchemy.orm import mapped_column +from sqlalchemy.orm import MappedAsDataclass + + +class Base(MappedAsDataclass, DeclarativeBase): + pass + + +class A(Base): + __tablename__ = "a" + + id: Mapped[int] = mapped_column(primary_key=True, init=False) + data: Mapped[str] + x: Mapped[Optional[int]] = mapped_column(default=None) + y: Mapped[Optional[int]] = mapped_column(kw_only=True) + + +a1 = A(data="some data", y=5) + +# EXPECTED_TYPE: str +reveal_type(a1.data) + +# EXPECTED_RE_TYPE: .*Union\[builtins.int, None\] +reveal_type(a1.y) + +a1.data = "some other data" |
