'Iterate through saved progress information.
Yields:
KeyRangeItem instances corresponding to undownloaded key ranges.'

def Batches(self):

    if (self.progress_generator is not None):
        for (progress_key, state, kind, key_start, key_end) in self.progress_generator:
            if ((state is not None) and (state != STATE_GOT) and (key_start is not None)):
                key_start = ParseKey(key_start)
                key_end = ParseKey(key_end)
                key_range = KeyRange(key_start=key_start, key_end=key_end)
                result = self.key_range_item_factory(self.request_manager, self.progress_queue, kind, key_range, progress_key=progress_key, state=STATE_READ)
                (yield result)
    else:
        for kind in self.kinds:
            key_range = KeyRange()
            (yield self.key_range_item_factory(self.request_manager, self.progress_queue, kind, key_range))
