def METHOD_NAME(self, key: int, index: int):
    """
    Different underlying datasets have different lengths. In order to ensure
    we are not accessing an index outside the range of the current dataset
    size, we wrap around. This function should be called after we have
    created an ordering for this and all underlying datasets.
    """
    assert (
        self._ordered_indices is not None
    ), "Must call MultiCorpusSampledDataset.ordered_indices() first"
    mapped_index = index % len(self.datasets[key])
    return self._ordered_indices[key][mapped_index]