Beispiel #1
0
 def _read_range(self, start, end):
     # TODO: make this method thread safe
     assert start <= end, "start should less than end"
     try:
         logger.info('trigger read_func(%d, %d)', start, end)
         objs = self._read_func(start, end)
     except:  # noqa: E722
         raise ReadFailed('read_func raise error')
     else:
         expected = end - start
         actual = len(objs)
         if expected != actual:
             raise ReadFailed(
                 'read_func returns unexpected number of objects: '
                 'expected={}, actual={}'.format(expected, actual))
         self._objects[start:end] = objs
         self._refresh_ranges()
Beispiel #2
0
 def readall(self):
     if self.count is None:
         raise ReadFailed("can't readall when count is unknown")
     list(self)
     return self._objects