def random_single_qubit_unitary_moment(
        self, unitary_ensemble: str, qubits: Sequence[Any], rng: np.random.Generator
    ) -> cirq.Moment:
        """Outputs the cirq moment associated with the pre-measurement rotations.

        Args:
            unitary_ensemble: clifford, pauli, cue
            qubits: List of qubits
            rng: Random number generator to be used in sampling.

        Returns:
            The cirq moment associated with the pre-measurement rotations

        Raises:
            ValueError: When unitary_ensemble is not one of "cue", "pauli" or "clifford"
        """

        if unitary_ensemble.lower() == "pauli":
            unitaries = [_pauli_basis_rotation(rng) for _ in range(len(qubits))]

        elif unitary_ensemble.lower() == "clifford":
            unitaries = [_single_qubit_clifford(rng) for _ in range(len(qubits))]

        elif unitary_ensemble.lower() == "cue":
            unitaries = [_single_qubit_cue(rng) for _ in range(len(qubits))]

        else:
            raise ValueError("Only pauli, clifford and cue unitaries are available")

        op_list: list[cirq.Operation] = []

        for idx, unitary in enumerate(unitaries):
            op_list.append(unitary.on(qubits[idx]))

        return cirq.Moment.from_ops(*op_list)
Outputs the cirq moment associated with the pre-measurement rotations.

        Args:
            unitary_ensemble: clifford, pauli, cue
            qubits: List of qubits
            rng: Random number generator to be used in sampling.

        Returns:
            The cirq moment associated with the pre-measurement rotations

        Raises:
            ValueError: When unitary_ensemble is not one of "cue", "pauli" or "clifford"
        
cirq-core/cirq/transformers/randomized_measurements.py