def frozen(self) -> cirq.PauliString:
        """Returns a `cirq.PauliString` with the same contents.

        For example, this is useful because `cirq.PauliString` is an operation
        whereas `cirq.MutablePauliString` is not.
        """
        return PauliString(
            coefficient=self.coefficient,
            qubit_pauli_map={q: _INT_TO_PAULI[p - 1] for q, p in self.pauli_int_dict.items() if p},
        )
Returns a `cirq.PauliString` with the same contents.

        For example, this is useful because `cirq.PauliString` is an operation
        whereas `cirq.MutablePauliString` is not.
        
cirq-core/cirq/ops/pauli_string.py