def __init__(self, num_qubits: int, shift: int, swap_gate: cirq.Gate = ops.SWAP) -> None:
        """Construct a circular shift gate.

        Args:
            num_qubits: The number of qubits to shift.
            shift: The number of positions to circularly left shift the qubits.
            swap_gate: The gate to use when decomposing.
        """
        super(CircularShiftGate, self).__init__(num_qubits, swap_gate)
        self.shift = shift
Construct a circular shift gate.

        Args:
            num_qubits: The number of qubits to shift.
            shift: The number of positions to circularly left shift the qubits.
            swap_gate: The gate to use when decomposing.
        
cirq-core/cirq/contrib/acquaintance/shift.py