summaryrefslogtreecommitdiff
path: root/test/ext/mypy/plugin_files/mixin_three.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/ext/mypy/plugin_files/mixin_three.py')
-rw-r--r--test/ext/mypy/plugin_files/mixin_three.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/ext/mypy/plugin_files/mixin_three.py b/test/ext/mypy/plugin_files/mixin_three.py
new file mode 100644
index 000000000..cb8e30df8
--- /dev/null
+++ b/test/ext/mypy/plugin_files/mixin_three.py
@@ -0,0 +1,33 @@
+from typing import Callable
+
+from sqlalchemy import Column
+from sqlalchemy import Integer
+from sqlalchemy import String
+from sqlalchemy.orm import deferred
+from sqlalchemy.orm import Mapped
+from sqlalchemy.orm.decl_api import declarative_mixin
+from sqlalchemy.orm.decl_api import declared_attr
+from sqlalchemy.orm.interfaces import MapperProperty
+
+
+def some_other_decorator(fn: Callable[..., None]) -> Callable[..., None]:
+ return fn
+
+
+@declarative_mixin
+class HasAMixin:
+ x: Mapped[int] = Column(Integer)
+
+ y = Column(String)
+
+ @declared_attr
+ def data(cls) -> Column[String]:
+ return Column(String)
+
+ @declared_attr
+ def data2(cls) -> MapperProperty[str]:
+ return deferred(Column(String))
+
+ @some_other_decorator
+ def q(cls) -> None:
+ return None