def __init__(
        self,
        # target can be either a specific gate, gatefamily or gateset
        # which allows matching parametric gates.
        target: ops.Gate | ops.Gateset | ops.GateFamily,
        gauge_selector: Callable[[np.random.Generator], Gauge],
        two_qubit_gate_symbolizer: TwoQubitGateSymbolizer | None = None,
    ) -> None:
        """Constructs a GaugeTransformer.

        Args:
            target: Target two-qubit gate, a gate-family or a gate-set of two-qubit gates.
            gauge_selector: A callable that takes a numpy random number generator
                as an argument and returns a Gauge.
            two_qubit_gate_symbolizer: A symbolizer to symbolize 2 qubit gates.
        """
        self.target = ops.GateFamily(target) if isinstance(target, ops.Gate) else target
        self.gauge_selector = gauge_selector
        self.two_qubit_gate_symbolizer = two_qubit_gate_symbolizer
Constructs a GaugeTransformer.

        Args:
            target: Target two-qubit gate, a gate-family or a gate-set of two-qubit gates.
            gauge_selector: A callable that takes a numpy random number generator
                as an argument and returns a Gauge.
            two_qubit_gate_symbolizer: A symbolizer to symbolize 2 qubit gates.
        
cirq-core/cirq/transformers/gauge_compiling/gauge_compiling.py