Open3
sqlalchemyをもう少し使ってみる

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

sqlalchemyのドキュメントに Integration with dataclasses and attrs
というのがあるので、これを見るとよさげ

↑にある通り、基本は全クラスに適用できると嬉しいので、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]