def fill(): alldicts = {} from invenio.legacy.bibrank.tag_based_indexer import fromDB redis = get_redis() serialized_weights = redis.get('citations_weights') if serialized_weights: weights = deserialize_via_marshal(serialized_weights) else: weights = fromDB('citation') alldicts['citations_weights'] = weights # for cited:M->N queries, it is interesting to cache also # some preprocessed citationdict: alldicts['citations_keys'] = intbitset(weights.keys()) # Citation counts alldicts['citations_counts'] = [t for t in iteritems(weights)] alldicts['citations_counts'].sort(key=itemgetter(1), reverse=True) # Self-cites serialized_weights = redis.get('selfcites_weights') if serialized_weights: selfcites = deserialize_via_marshal(serialized_weights) else: selfcites = fromDB('selfcites') selfcites_weights = {} for recid, counts in alldicts['citations_counts']: selfcites_weights[recid] = counts - selfcites.get(recid, 0) alldicts['selfcites_weights'] = selfcites_weights alldicts['selfcites_counts'] = [(recid, selfcites_weights.get(recid, cites)) for recid, cites in alldicts['citations_counts']] alldicts['selfcites_counts'].sort(key=itemgetter(1), reverse=True) return alldicts
def fill(): alldicts = {} from invenio.legacy.bibrank.tag_based_indexer import fromDB redis = get_redis() serialized_weights = redis.get('citations_weights') if serialized_weights: weights = deserialize_via_marshal(serialized_weights) else: weights = fromDB('citation') alldicts['citations_weights'] = weights # for cited:M->N queries, it is interesting to cache also # some preprocessed citationdict: alldicts['citations_keys'] = intbitset(weights.keys()) # Citation counts alldicts['citations_counts'] = [t for t in iteritems(weights)] alldicts['citations_counts'].sort(key=itemgetter(1), reverse=True) # Self-cites serialized_weights = redis.get('selfcites_weights') if serialized_weights: selfcites = deserialize_via_marshal(serialized_weights) else: selfcites = fromDB('selfcites') selfcites_weights = {} for recid, counts in alldicts['citations_counts']: selfcites_weights[recid] = counts - selfcites.get(recid, 0) alldicts['selfcites_weights'] = selfcites_weights alldicts['selfcites_counts'] = [ (recid, selfcites_weights.get(recid, cites)) for recid, cites in alldicts['citations_counts'] ] alldicts['selfcites_counts'].sort(key=itemgetter(1), reverse=True) return alldicts
def setUp(self): from invenio.utils.redis import get_redis self.db = get_redis()
def store_weights_cache(weights): """Store into key/value store""" redis = get_redis() redis.set("citations_weights", serialize_via_marshal(weights))
def store_weights_cache(weights): """Store into key/value store""" redis = get_redis() redis.set('selfcites_weights', serialize_via_marshal(weights))
def store_weights_cache(weights): """Store into key/value store""" redis = get_redis() redis.set('citations_weights', serialize_via_marshal(weights))
def save_in_storage(self, sid, session_object, timeout, uid): # pylint: disable=W0613 return get_redis().setex(self.generate_key(sid), session_object, timeout)
def delete_from_storage(self, sid): return get_redis().delete(self.generate_key(sid))
def load_from_storage(self, sid): return get_redis().get(self.generate_key(sid))