summaryrefslogtreecommitdiff
path: root/test/ext/mypy/plugin_files/as_declarative.py
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2022-02-13 20:37:12 +0000
committerGerrit Code Review <gerrit@ci3.zzzcomputing.com>2022-02-13 20:37:12 +0000
commitd6b3c82b0c329730bcaff42b4bb39dba83acb536 (patch)
treed6b7f744a35c8d89615eeb0504ee7a4193f95642 /test/ext/mypy/plugin_files/as_declarative.py
parent260ade78a70d51378de9e7b9456bfe6218859b6c (diff)
parente545298e35ea9f126054b337e4b5ba01988b29f7 (diff)
downloadsqlalchemy-d6b3c82b0c329730bcaff42b4bb39dba83acb536.tar.gz
Merge "establish mypy / typing approach for v2.0" into main
Diffstat (limited to 'test/ext/mypy/plugin_files/as_declarative.py')
-rw-r--r--test/ext/mypy/plugin_files/as_declarative.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/ext/mypy/plugin_files/as_declarative.py b/test/ext/mypy/plugin_files/as_declarative.py
new file mode 100644
index 000000000..08f08f913
--- /dev/null
+++ b/test/ext/mypy/plugin_files/as_declarative.py
@@ -0,0 +1,42 @@
+from typing import List
+from typing import Optional
+
+from sqlalchemy import Column
+from sqlalchemy import Integer
+from sqlalchemy import String
+from sqlalchemy.ext.declarative import as_declarative
+from sqlalchemy.orm import Mapped
+from sqlalchemy.orm import relationship
+from sqlalchemy.sql.schema import ForeignKey
+
+
+@as_declarative()
+class Base:
+ updated_at = Column(Integer)
+
+
+class Foo(Base):
+ __tablename__ = "foo"
+ id: int = Column(Integer(), primary_key=True)
+ name: Mapped[str] = Column(String)
+
+ bar: List["Bar"] = relationship("Bar")
+
+
+class Bar(Base):
+ __tablename__ = "bar"
+ id: int = Column(Integer(), primary_key=True)
+ foo_id: int = Column(ForeignKey("foo.id"))
+
+ foo: Optional[Foo] = relationship(Foo)
+
+
+f1 = Foo()
+
+val: int = f1.id
+
+p: str = f1.name
+
+Foo.id.property
+
+f2 = Foo(name="some name", updated_at=5)