Open3

sqlalchemyをもう少し使ってみる

masaobluemasaoblue

__repr__ を毎回定義するのが面倒なのでどうにかしたい。

同じことをやっている人がいたけど、2015年の記事だった。
今なら何かしらのライブラリでできたりしないのだろうか?

https://gene.hatenablog.com/entry/20151011/1444546659

masaobluemasaoblue

↑にある通り、基本は全クラスに適用できると嬉しいので、MappedAsDataclassを継承したBaseを定義して使うのが良さげ

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):
    """subclasses will be converted to dataclasses"""


class User(Base):
    __tablename__ = "user_account"

    id: Mapped[int] = mapped_column(init=False, primary_key=True)
    name: Mapped[str]