code: def pauli_string_half(circuit: circuits.Circuit) -> circuits.Circuit:
      
      return circuits.Circuit.from_ops(
              _pull_non_clifford_before(circuit),
              strategy=circuits.InsertStrategy.EARLIEST)
docs: Return only the non-Clifford part of a circuit.  See
      convert_and_separate_circuit().
  
      Args:
          circuit: A Circuit with the gate set {SingleQubitCliffordGate,
              PauliInteractionGate, PauliStringPhasor}.
  
      Returns:
          A Circuit with only PauliStringPhasor operations.