Mercurial > daily-edition
view whoisi_cache.py @ 4:78a2da337f9f
added to tests
author | Atul Varma <varmaa@toolness.com> |
---|---|
date | Thu, 31 Dec 2009 12:38:16 -0800 |
parents | 8c35fbdf5f43 |
children | 47990d4e6df7 |
line wrap: on
line source
MAX_PEOPLE_REQ_SIZE = 100 def split_seq(seq, size): """ Split up the given sequence into pieces of the given size. Taken from http://code.activestate.com/recipes/425044/. """ return [seq[i:i+size] for i in range(0, len(seq), size)] class WhoisiCache(object): APP_NAME = "whoisi-cache" def __init__(self, server, storage, batch_size=MAX_PEOPLE_REQ_SIZE): self.server = server self.batch_size = batch_size self.people = storage def update(self): pid = self.server.get_max_person_id(app=self.APP_NAME) interval = range(len(self.people) + 1, pid + 1) subintervals = split_seq(interval, self.batch_size) for subinterval in subintervals: people = self.server.get_people(app=self.APP_NAME, first=subinterval[0], last=subinterval[-1]) self.people.extend(people)