class BaseLocalClient(object): def __init__(self, cache_max_items=1000, ttl=60): self._cache = LocalCache(cache_max_items) self.ttl = ttl self.verbose = False def fetch(self, url): if self.verbose: print 'fetching url: %s' % str(url) doc = self._cache.get(url, None) if doc is None: if self.verbose: print '\tNot cached' doc = self.urlget(url) self._cache.set(url, doc, self.ttl) return doc def urlget(self, url): res = urlopen(url, timeout=60) if res.code == 200: doc = res.read() doc = json.loads(doc) return doc['response'] return '' def status(self): st = {} st['cache_items'] = len(self._cache) st['cache_size'] = sys.getsizeof(self._cache) return st
def __init__(self, cache_max_items=1000, ttl=60): self._cache = LocalCache(cache_max_items) self.ttl = ttl self.verbose = False