SickGear/lib/cachecontrol/cache.py
echel0n 9ac649444d Added cache_auto, cache_urls, and cache_max_age features to our cache handler.
Added session handler to our cache handler so that we can pass in paramaters at the request level and use them for our cache handler to process features.
2014-03-28 21:23:55 -07:00

37 lines
No EOL
794 B
Python

"""
The cache object API for implementing caches. The default is just a
dictionary, which in turns means it is not threadsafe for writing.
"""
from threading import Lock
class BaseCache(object):
def get(self, key):
raise NotImplemented()
def set(self, key, value):
raise NotImplemented()
def delete(self, key):
raise NotImplemented()
class DictCache(BaseCache):
def __init__(self, init_dict=None):
self.lock = Lock()
self.data = init_dict or {}
def get(self, key):
return self.data.get(key, None)
def set(self, key, value):
with self.lock:
self.data.update({key: value})
def delete(self, key):
with self.lock:
if key in self.data:
self.data.pop(key)
0