def update(self): model = self.model include_description = self.include_description started = time.time() while self.episodes: episode = self.episodes.pop(0) base_fields = ( (model.C_URL, episode.url), (model.C_TITLE, episode.title), (model.C_EPISODE, episode), (model.C_PUBLISHED_TEXT, episode.cute_pubdate()), (model.C_PUBLISHED, episode.published), ) update_fields = model.get_update_fields(episode, include_description) try: it = model.get_iter((self.index,)) # fix #727 the tree might be invalid when trying to update so discard the exception except ValueError: break model.set(it, *(x for fields in (base_fields, update_fields) for pair in fields for x in pair)) self.index += 1 # Check for the time limit of 20 ms after each 50 rows processed if self.index % 50 == 0 and (time.time() - started) > 0.02: break return bool(self.episodes)
def update(self): model = self.model include_description = self.include_description started = time.time() while self.episodes: episode = self.episodes.pop(0) base_fields = ( (model.C_URL, episode.url), (model.C_TITLE, episode.title), (model.C_EPISODE, episode), (model.C_PUBLISHED_TEXT, episode.cute_pubdate()), (model.C_PUBLISHED, episode.published), ) update_fields = model.get_update_fields(episode, include_description) model.set( model.get_iter((self.index, )), *(x for fields in (base_fields, update_fields) for pair in fields for x in pair)) self.index += 1 # Check for the time limit of 20 ms after each 50 rows processed if self.index % 50 == 0 and (time.time() - started) > 0.02: break return bool(self.episodes)
def update(self): model = self.model include_description = self.include_description started = time.time() while self.episodes: episode = self.episodes.pop(0) base_fields = ( (model.C_URL, episode.url), (model.C_TITLE, episode.title), (model.C_EPISODE, episode), (model.C_PUBLISHED_TEXT, episode.cute_pubdate()), (model.C_PUBLISHED, episode.published), ) update_fields = model.get_update_fields(episode, include_description) model.set(model.get_iter((self.index,)), *(x for fields in (base_fields, update_fields) for pair in fields for x in pair)) self.index += 1 # Check for the time limit of 20 ms after each 50 rows processed if self.index % 50 == 0 and (time.time() - started) > 0.02: break return bool(self.episodes)