def noisy_moment(self, moment: 'cirq.Moment',
                     system_qubits: Sequence['cirq.Qid']) -> 'cirq.OP_TREE':
        """Adds noise to the operations from a moment.

        Args:
            moment: The moment to add noise to.
            system_qubits: A list of all qubits in the system.

        Returns:
            An OP_TREE corresponding to the noisy operations for the moment.
        """
        if not hasattr(self.noisy_moments, '_not_overridden'):
            return self.noisy_moments([moment], system_qubits)

        if not hasattr(self.noisy_operation, '_not_overridden'):
            return [self.noisy_operation(op) for op in moment]

        assert False, 'Should be unreachable.'