25 lines
633 B
Python
25 lines
633 B
Python
import time
|
|
|
|
class Cache(dict):
|
|
|
|
def __init__(self, ttl=60):
|
|
self._ttl = ttl
|
|
self._added = {}
|
|
|
|
def get(self, key):
|
|
if key in self._added:
|
|
if self._added[key] < time.time():
|
|
del self._added[key]
|
|
del self[key]
|
|
return
|
|
return dict.__getitem__(self, key)
|
|
|
|
def set(self, key, value, ttl=None):
|
|
ttl = ttl or self._ttl
|
|
self._added[key] = time.time() + ttl
|
|
dict.__setitem__(self, key, value)
|
|
|
|
def delete(self, key):
|
|
if key in self._added:
|
|
del self._added[key]
|
|
del self[key]
|