1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
from sqlalchemy import Column
from sqlalchemy import Integer
from sqlalchemy import String
from sqlalchemy.orm import declared_attr
from sqlalchemy.orm import registry
from sqlalchemy.orm import relationship
from sqlalchemy.orm import RelationshipProperty
reg: registry = registry()
@reg.mapped
class Foo:
id: int = Column(Integer())
# EXPECTED: Can't infer type from @declared_attr on function 'name'; # noqa
@declared_attr
# EXPECTED: Column type should be a TypeEngine subclass not 'builtins.str'
def name(cls) -> Column[str]:
return Column(String)
# EXPECTED: Left hand assignment 'other_name: "Column[String]"' not compatible with ORM mapped expression of type "Mapped[str]" # noqa
other_name: Column[String] = Column(String)
# EXPECTED: Can't infer type from @declared_attr on function 'third_name';
@declared_attr
# EXPECTED_MYPY: Missing type parameters for generic type "Column"
def third_name(cls) -> Column:
return Column(String)
# EXPECTED: Can't infer type from @declared_attr on function 'some_relationship' # noqa
@declared_attr
# EXPECTED_MYPY: Missing type parameters for generic type "RelationshipProperty"
def some_relationship(cls) -> RelationshipProperty:
return relationship("Bar")
Foo(name="x")
|