| # Copyright (c) Facebook, Inc. and its affiliates. | |
| # | |
| # This source code is licensed under the MIT license found in the | |
| # LICENSE file in the root directory of this source tree. | |
| import numpy as np | |
| from . import BaseWrapperDataset | |
| class SortDataset(BaseWrapperDataset): | |
| def __init__(self, dataset, sort_order): | |
| super().__init__(dataset) | |
| if not isinstance(sort_order, (list, tuple)): | |
| sort_order = [sort_order] | |
| self.sort_order = sort_order | |
| assert all(len(so) == len(dataset) for so in sort_order) | |
| def ordered_indices(self): | |
| return np.lexsort(self.sort_order) | |