Module
data
Typed async database access for chirp.
SQL in, frozen dataclasses out. Not an ORM.
Basic usage::
from chirp.data import Database
db = Database("sqlite:///app.db")
@dataclass(frozen=True, slots=True)
class User:
id: int
name: str
email: str
users = await db.fetch(User, "SELECT * FROM users WHERE active = ?", True)
user = await db.fetch_one(User, "SELECT * FROM users WHERE id = ?", 42)
SQLite works out of the box. For PostgreSQL, install the driver::
pip install chirp[data-pg] # PostgreSQL