Esempio n. 1
0
    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)
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)