def results(self): if not self._doneresults: self.clear() res = redis_connection().keys(self.query) if self._redis_ordering_key: ordered_results = redis_connection().zrangebyscore(self._redis_ordering_key, '-inf', '+inf') res.sort(key = lambda o: or_fn(ordered_results, self.asc, len(res), o)) self._doneresults = True self.setresults(res)
def cache(self): key = self.makekey() attrs = self.cached_attributes() r = redis_connection() r.set(key, dump(attrs)) expires = self.expires() if expires: r.expireat(key, expires) if self.redis_ordering_key: r.zadd(self.redis_ordering_key, key, self.redis_ordering_value())
def deleteall(self): r = redis_connection() r.delete(self.redis_ordering_key) for key in self.all(): r.delete(key) self.clear()
def _makeobj(self, key): obj = self._model() r = redis_connection() res = r.get(key) if res: obj.__dict__.update( load(res)) return obj
def before(self, val): keys = redis_connection().zrangebyscore(self._redis_ordering_key, '-inf', val) self.intersect(keys) return self
def after(self, val): keys = redis_connection().zrangebyscore(self._redis_ordering_key, val, '+inf') self.intersect(keys) return self