class A(decl_base): __tablename__ = "a" id: Mapped[int] = mapped_column(primary_key=True) data: Mapped[str] = mapped_column() bs: Mapped[List["B"]] = relationship( # noqa F821 back_populates="a")
class Manager(Person): __tablename__ = "manager" person_id: Mapped[int] = mapped_column( ForeignKey("person.person_id"), primary_key=True) status: Mapped[str] = mapped_column(String(30)) manager_name: Mapped[str50]
class Person(decl_base): __tablename__ = "person" person_id: Mapped[int] = mapped_column(primary_key=True) name: Mapped[str] type: Mapped[str] = mapped_column() __mapper_args__ = {"polymorphic_on": type}
class User(decl_base): __tablename__ = "user" id: Mapped[int] = mapped_column(primary_key=True) name: Mapped[str] = mapped_column() address: Mapped[Address] = composite(Address, mapped_column())
class Address(decl_base): __tablename__ = "addresses" id: Mapped[int] = mapped_column(primary_key=True) user_id: Mapped[int] = mapped_column(ForeignKey("users.id")) user = relationship(User, primaryjoin=user_id == User.id)
class B: __tablename__ = "b" id: Mapped[int] = mapped_column(primary_key=True, init=False) a_id = mapped_column(ForeignKey("a.id"), init=False) data: Mapped[str] x: Mapped[Optional[int]] = mapped_column(default=None)
class A(dc_decl_base): __tablename__ = "a" id: Mapped[int] = mapped_column(primary_key=True, init=False) data: Mapped[str] = mapped_column( default="d1", default_factory=lambda: "d2" )
class User(decl_base): __tablename__ = "users" id: Mapped[int] = mapped_column(primary_key=True) type: Mapped[str] = mapped_column() __mapper_args__ = {"polymorphic_on": type}
class B(decl_base): __tablename__ = "b" id: Mapped[int] = mapped_column(Integer, primary_key=True) a_id: Mapped[int] = mapped_column(ForeignKey("a.id")) a: Mapped["A"] = relationship(viewonly=True) a_warg: Mapped["A"] = relationship("A", viewonly=True)
class User(decl_base): __tablename__ = "users" id: Mapped[int] = mapped_column(primary_key=True) version_id: Mapped[int] = mapped_column() __mapper_args__ = {"version_id_col": version_id}
class MyClass(Base): __tablename__ = "mytable" id: Mapped[int] = mapped_column(primary_key=True) data: Mapped[str] = mapped_column(default="some default") status: int
class A(decl_base): __tablename__ = "a" id: Mapped[int] = mapped_column(primary_key=True) if not use_add_property: data: Mapped[str] = mapped_column(**args)
class Address(Base): __tablename__ = "address" id = mapped_column(Integer, primary_key=True) user_id = mapped_column(ForeignKey("user.id")) email = mapped_column(String, nullable=False) user_style_one = relationship(User) user_style_one_typed: Mapped[User] = relationship(User) user_style_two = relationship("User") user_style_two_typed: Mapped["User"] = relationship("User") # this is obviously not correct relationally but want to see the typing # work out user_style_three: Mapped[List[User]] = relationship(User) user_style_four: Mapped[List[User]] = relationship("User") user_style_five = relationship(User, collection_class=set) user_fk_style_one: Mapped[List[User]] = relationship( foreign_keys="Address.user_id") user_fk_style_two: Mapped[List[User]] = relationship( foreign_keys=lambda: Address.user_id) user_fk_style_three: Mapped[List[User]] = relationship( foreign_keys=[user_id]) user_pj_style_one: Mapped[List[User]] = relationship( primaryjoin=user_id == User.id) user_pj_style_two: Mapped[List[User]] = relationship( primaryjoin=lambda: Address.user_id == User.id) user_pj_style_three: Mapped[List[User]] = relationship( primaryjoin="Address.user_id == User.id")
class B(decl_base): __tablename__ = "b" id: Mapped[int] = mapped_column(Integer, primary_key=True) a_id: Mapped[int] = mapped_column(ForeignKey("a.id")) a: Mapped[A] = relationship(back_populates="bs", primaryjoin=a_id == A.id)
class User(decl_base): __tablename__ = "user" id: Mapped[int] = mapped_column(primary_key=True) name: Mapped[str] = mapped_column() address: "Address" = composite( # type: ignore mapped_column(), mapped_column(), mapped_column("zip"))
class Address(Base): __tablename__ = "address" id: Mapped[int] = mapped_column(primary_key=True) user_id = mapped_column(ForeignKey("user.id")) email: Mapped[str] user: Mapped[User] = relationship(back_populates="addresses")
class MyClass(decl_base): __tablename__ = "mytable" __allow_unmapped__ = True id: Mapped[int] = mapped_column(primary_key=True) data: Mapped[str] = mapped_column(default="some default") status: int
class A: __tablename__ = "a" id: Mapped[int] = mapped_column(primary_key=True, init=False) data: Mapped[str] = mapped_column(init=False) def __post_init__(self): self.data = "some data"
class A(decl_base): __tablename__ = "a" id: Mapped[int] = mapped_column(primary_key=True) data: Mapped[str] = mapped_column() bs: Mapped[MappedCollection[str, "B"]] = relationship( # noqa F821 collection_class=attribute_mapped_collection("name"))
class MyClass(decl_base): __tablename__ = "mytable" id: Mapped[int] = mapped_column(primary_key=True) data: Mapped[str] = mapped_column(default="some default") # we assume this is not intentional. because I made the # same mistake myself :) status: int
class Person(decl_base): __tablename__ = "person" person_id: Mapped[int] = mapped_column(primary_key=True) company_id: Mapped[int] = mapped_column( ForeignKey("company.company_id")) name: Mapped[str50] type: Mapped[str30] = mapped_column() __mapper_args__ = {"polymorphic_on": type}
class Address(dc_decl_base): __tablename__: ClassVar[Optional[str]] = "address" id: Mapped[int] = mapped_column(primary_key=True, init=False) # should not be in the dataclass constructor user_id = mapped_column(ForeignKey(User.id)) email_address: Mapped[str]
class A(decl_base): __tablename__ = "a" id: Mapped[int] = mapped_column(primary_key=True) data: Mapped[str] = mapped_column() bs_list: Mapped[List["B"]] = relationship(viewonly=True) bs_set: Mapped[Set["B"]] = relationship(viewonly=True) bs_list_warg: Mapped[List["B"]] = relationship("B", viewonly=True) bs_set_warg: Mapped[Set["B"]] = relationship("B", viewonly=True)
class Engineer(Person): __tablename__ = "engineer" person_id: Mapped[int] = mapped_column( ForeignKey("person.person_id"), primary_key=True) status: Mapped[str] = mapped_column(String(30)) engineer_name: Mapped[opt_str50] primary_language: Mapped[opt_str50]
class Address(MappedAsDataclass, decl_base): __tablename__ = "address" id: Mapped[intpk] = mapped_column(init=False) email_address: Mapped[str] user_id: Mapped[user_fk] = mapped_column(init=False) user: Mapped["User"] = relationship( back_populates="addresses", default=None )
class A: __tablename__ = "a" id: Mapped[int] = mapped_column(primary_key=True, init=False) data: Mapped[str] some_int: Mapped[int] = mapped_column(init=False, repr=False) x: Mapped[Optional[int]] = mapped_expr_constructor
class Test(Base): __tablename__ = "test_table_json" id = mapped_column(Integer, primary_key=True) data: Mapped[Dict[str, Any]] = mapped_column(JSONB) ident: Mapped[_py_uuid] = mapped_column(UUID()) ident_str: Mapped[str] = mapped_column(UUID(as_uuid=False))
class A(Base, init=True, repr=False): __tablename__ = "a" id: Mapped[int] = mapped_column(primary_key=True, init=False) data: Mapped[str] some_int: Mapped[int] = mapped_column(init=False, repr=False) x: Mapped[Optional[int]] = mapped_column(default=7)
class A(MappedAsDataclass, decl_base, **dc_argument_fixture[0]): __tablename__ = "a" id: Mapped[int] = mapped_column(primary_key=True, init=False) data: Mapped[str] some_int: Mapped[int] = mapped_column(init=False, repr=False) x: Mapped[Optional[int]] = mapped_expr_constructor
class User(Base): __tablename__ = "user" id = mapped_column(Integer, primary_key=True) name = mapped_column(String, nullable=False) addresses: Mapped[Set["Address"]] = relationship() email_addresses: AssociationProxy[Set[str]] = association_proxy( "addresses", "email")