예제 #1
0
 def make_count_reader(self, nocache=False):
     stream = []
     n = 0
     blocks = {}
     for d in ['01234', '34567', '67890']:
         loc = '{}+{}'.format(hashlib.md5(d).hexdigest(), len(d))
         blocks[loc] = d
         stream.append(Range(loc, n, len(d)))
         n += len(d)
     af = ArvadosFile(ArvadosFileReaderTestCase.MockParent(blocks, nocache), stream=stream, segments=[Range(1, 0, 3), Range(6, 3, 3), Range(11, 6, 3)])
     return ArvadosFileReader(af, "count.txt")
예제 #2
0
 def make_count_reader(self, nocache=False):
     stream = []
     n = 0
     blocks = {}
     for d in [b'01234', b'34567', b'67890']:
         loc = tutil.str_keep_locator(d)
         blocks[loc] = d
         stream.append(Range(loc, n, len(d)))
         n += len(d)
     af = ArvadosFile(ArvadosFileReaderTestCase.MockParent(blocks, nocache), "count.txt", stream=stream, segments=[Range(1, 0, 3), Range(6, 3, 3), Range(11, 6, 3)])
     return ArvadosFileReader(af, mode="rb")
예제 #3
0
    def reader_for(self, coll_name, **kwargs):
        stream = []
        segments = []
        n = 0
        for d in self.manifest_for(coll_name).split():
            try:
                k = KeepLocator(d)
                segments.append(Range(n, n, k.size))
                stream.append(Range(d, n, k.size))
                n += k.size
            except ValueError:
                pass

        blockmanager = arvados.arvfile._BlockManager(self.keep_client())
        blockmanager.prefetch_enabled = False
        col = Collection(keep_client=self.keep_client(),
                         block_manager=blockmanager)
        af = ArvadosFile(col, "test", stream=stream, segments=segments)
        return ArvadosFileReader(af, **kwargs)