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")
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")
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)