"""A toy data store. Pretend it is a real database.""" import sqlite3 class Store: def __init__(self, path: str = ":memory:"): self.conn = sqlite3.connect(path, check_same_thread=False) self.conn.execute( "CREATE TABLE IF NOT EXISTS notes (" " id INTEGER PRIMARY KEY," " owner TEXT NOT NULL," " title TEXT NOT NULL," " body TEXT NOT NULL)" ) def add_note(self, owner: str, title: str, body: str) -> int: cur = self.conn.execute( "INSERT INTO notes (owner, title, body) VALUES (?, ?, ?)", (owner, title, body), ) self.conn.commit() return cur.lastrowid def get_note(self, note_id: int) -> tuple | None: cur = self.conn.execute( "SELECT id, owner, title, body FROM notes WHERE id = ?", (note_id,) ) return cur.fetchone() def notes_for(self, owner: str) -> list[tuple]: cur = self.conn.execute( "SELECT id, owner, title, body FROM notes WHERE owner = ?", (owner,) ) return cur.fetchall()