in oss-torch-connector/osstorchconnector/oss_map_dataset.py [0:0]
def __getitems__(self, indices: List[int]) -> List[Any]:
log.debug("OssMapDataset get items %s", indices)
if not self._from_tar:
objects = [self._dataset_bucket_objects[i] for i in indices]
iter = self._get_client().list_objects_from_uris(objects, prefetch=True, include_errors=True)
# should return list, default collate needs batch be subscriptable
return [self._get_transformed_object_safe(object) for object in iter]
else:
if self.is_continuous(indices):
log.debug("OssMapDataset get items, start: %d, length: %d", indices[0], len(indices))
iter = self._get_client().list_objects_from_tar(self._tar_bucket, self._tar_key, self._tar_index_key,
[indices[0]], [len(indices)], prefetch=True, include_errors=True)
return [self._get_transformed_object_safe(object) for object in iter]
else:
iter = self._get_client().list_objects_from_tar(self._tar_bucket, self._tar_key, self._tar_index_key,
indices, [], prefetch=True, include_errors=True)
return [self._get_transformed_object_safe(object) for object in iter]