pgtemp 0.7.1

Start local postgres servers for testing without Docker
Documentation
from sqlalchemy import select, insert, update
from sqlalchemy.orm import DeclarativeBase, Mapped, Session, mapped_column


class Base(DeclarativeBase):
    pass


class Task(Base):
    __tablename__ = "tasks"

    id: Mapped[int] = mapped_column(primary_key=True)
    task: Mapped[str]
    completed: Mapped[bool]


def list_tasks(session: Session) -> list[Task]:
    return list(session.scalars(select(Task)).all())


def insert_task(session: Session, task: str):
    session.execute(insert(Task).values(task=task))


def complete_task(session: Session, id: int):
    session.execute(update(Task).where(Task.id == id).values(completed=True))