import sqlite3 conn = sqlite3.connect(":memory:") conn.execute("CREATE TABLE discount_codes (code TEXT, discount_pct REAL, active INTEGER)") conn.executemany("INSERT INTO discount_codes VALUES (?, ?, ?)", [ ("SAVE10", 10.0, 1), ("SAVE20", 20.0, 1), ("OLD5", 5.0, 0), ]) conn.commit() @cache_result def load_discount_codes(active_only: bool = True) -> dict: query = "SELECT code, discount_pct FROM discount_codes" if active_only: query += " WHERE active = 1" rows = conn.execute(query).fetchall() return {code: pct for code, pct in rows} # First call hits the database codes = load_discount_codes(active_only=True) # Second call is instant codes = load_discount_codes(active_only=True) print(codes) # Different argument = separate cache entry all_codes = load_discount_codes(active_only=False)