def indices_map(self, n: int) -> list[tuple[int, GroupRowInfo | None]]:
        """Return pairs of row index, group label for all rows in data.

        Note that when no groupings exist, n is used to return from range(n).
        In this case, None is used to indicate there is no grouping. This is
        distinct from MISSING_GROUP (which may currently be unused?).

        """

        if not len(self._d):
            return [(ii, None) for ii in range(n)]
        return [(ind, info) for info in self for ind in info.indices]
Return pairs of row index, group label for all rows in data.

        Note that when no groupings exist, n is used to return from range(n).
        In this case, None is used to indicate there is no grouping. This is
        distinct from MISSING_GROUP (which may currently be unused?).

        
great_tables/_gt_data.py