def __init__(self, qubits: Sequence[cirq.LineQubit] | int, atol=1e-8):
        """Construct the device.

        Args:
            qubits: The qubits upon which this device acts or the number of qubits. If the number
                of qubits, then the qubits will be `cirq.LineQubit`s from 0 to this number minus
                one.
            atol: The absolute tolerance used for gate calculations and decompositions.
        """
        if isinstance(qubits, int):
            self.qubits = frozenset(cirq.LineQubit.range(qubits))
        else:
            self.qubits = frozenset(qubits)
        self.atol = atol
        self.gateset = ionq_gateset.IonQTargetGateset()
        self._metadata = cirq.DeviceMetadata(
            self.qubits, [(a, b) for a in self.qubits for b in self.qubits if a != b]
        )
Construct the device.

        Args:
            qubits: The qubits upon which this device acts or the number of qubits. If the number
                of qubits, then the qubits will be `cirq.LineQubit`s from 0 to this number minus
                one.
            atol: The absolute tolerance used for gate calculations and decompositions.
        
cirq-ionq/cirq_ionq/ionq_devices.py