I keep writing the same Pydantic-asyncpg wrapper. So I published it.
I've built this thin Pydantic-over-asyncpg layer too many times now. Every project ends up with the same shape: a Row class for typed tables, raw SQL for the joins that don't fit into typed CRUD, transactions, no ORM magic. The fourth time I caught myself starting over, I published it. It's called etchdb. Alpha on PyPI, v0.5 as of this post. This isn't a "we built our own ORM" story. It's the opposite -- it's about the smallest layer that closes the gap between raw asyncpg and the Pydantic mod...
Original Source
Read the full article at Dev →KhanList aggregates and links to publicly available news content. We do not host full articles from third-party sources. Always verify important information with original sources.