self.con.execute('CREATE TABLE IF NOT EXISTS data (ky UNICODE PRIMARY KEY, data BLOB, timestamp INT)')
self.con.execute('pragma journal_mode=WAL')
self.trim()
def__del__(self):
self.con.close()
deftrim(self):
withself.con:
self.con.execute('DELETE FROM data WHERE timestamp <= ( SELECT timestamp FROM ( SELECT timestamp FROM data ORDER BY timestamp DESC LIMIT 1 OFFSET ? ) foo )',(CACHE_SIZE,))
def__getitem__(self,key):
row=self.con.execute('SELECT * FROM data WHERE ky=?',(key,)).fetchone()
ifnotrow:
raiseKeyError
returnrow[1]
def__setitem__(self,key,data):
withself.con:
self.con.execute('INSERT INTO data VALUES (?,?,?) ON CONFLICT(ky) DO UPDATE SET data=?, timestamp=?',(key,data,time.time(),data,time.time()))
cursor.execute('DELETE FROM data WHERE timestamp <= ( SELECT timestamp FROM ( SELECT timestamp FROM data ORDER BY timestamp DESC LIMIT 1 OFFSET %s ) foo )',(CACHE_SIZE,))
def__getitem__(self,key):
cursor=self.cursor()
cursor.execute('SELECT * FROM data WHERE ky=%s',(key,))
row=cursor.fetchone()
ifnotrow:
raiseKeyError
returnrow[1]
def__setitem__(self,key,data):
withself.cursor()ascursor:
cursor.execute('INSERT INTO data VALUES (%s,%s,%s) ON DUPLICATE KEY UPDATE data=%s, timestamp=%s',