From 756e3924d27c2fa7cd206ae268b019a59e446547 Mon Sep 17 00:00:00 2001 From: "Kevin J. Sung" Date: Thu, 9 May 2024 23:29:42 -0400 Subject: [PATCH] fix qiskit warnings related to .register, .index, and find_bit --- qiskit_research/utils/dynamical_decoupling.py | 2 +- qiskit_research/utils/gate_decompositions.py | 6 +++--- qiskit_research/utils/pauli_twirling.py | 2 +- qiskit_research/utils/pulse_scaling.py | 9 ++++++--- test/utils/test_pulse_scaling.py | 4 ++-- 5 files changed, 13 insertions(+), 10 deletions(-) diff --git a/qiskit_research/utils/dynamical_decoupling.py b/qiskit_research/utils/dynamical_decoupling.py index 547a5107..d8ad509e 100644 --- a/qiskit_research/utils/dynamical_decoupling.py +++ b/qiskit_research/utils/dynamical_decoupling.py @@ -238,7 +238,7 @@ def add_pulse_calibrations( dag = circuit_to_dag(circuit) for run in dag.collect_runs(["pi_phi"]): for node in run: - qubit = node.qargs[0].index + qubit, _ = dag.find_bit(node.qargs[0]) phi = node.op.params[0] x_sched = inst_sched_map.get("x", qubits=[qubit]) _, x_instruction = x_sched.instructions[0] diff --git a/qiskit_research/utils/gate_decompositions.py b/qiskit_research/utils/gate_decompositions.py index 1b7e2733..7f3d285f 100644 --- a/qiskit_research/utils/gate_decompositions.py +++ b/qiskit_research/utils/gate_decompositions.py @@ -102,8 +102,8 @@ def run( dag: DAGCircuit, ) -> DAGCircuit: for rzx_run in dag.collect_runs(["rzx"]): - control = rzx_run[0].qargs[0].index - target = rzx_run[0].qargs[1].index + control, _ = dag.find_bit(rzx_run[0].qargs[0]) + target, _ = dag.find_bit(rzx_run[0].qargs[1]) cr_forward_dir = cr_forward_direction( control, target, self._inst_map, self._ctrl_chans ) @@ -111,7 +111,7 @@ def run( for node in rzx_run: mini_dag = DAGCircuit() q0, q1 = QuantumRegister(2) - mini_dag.add_qreg(q0.register) + mini_dag.add_qubits([q0, q1]) rzx_angle = node.op.params[0] diff --git a/qiskit_research/utils/pauli_twirling.py b/qiskit_research/utils/pauli_twirling.py index 21e2d603..7126ff93 100644 --- a/qiskit_research/utils/pauli_twirling.py +++ b/qiskit_research/utils/pauli_twirling.py @@ -107,7 +107,7 @@ def run( if node.op.name in TWO_QUBIT_PAULI_GENERATORS: mini_dag = DAGCircuit() q0, q1 = node.qargs - mini_dag.add_qreg(q0.register) + mini_dag.add_qubits([q0, q1]) theta = node.op.params[0] this_pauli = Pauli( diff --git a/qiskit_research/utils/pulse_scaling.py b/qiskit_research/utils/pulse_scaling.py index 7d74627f..32530eca 100644 --- a/qiskit_research/utils/pulse_scaling.py +++ b/qiskit_research/utils/pulse_scaling.py @@ -253,9 +253,12 @@ def run(self, dag: DAGCircuit) -> DAGCircuit: gp1 = next(dag.bfs_successors(rz_node)) if cx2_node in gp1[1]: if ( - (cx1_node.qargs[0].index == cx2_node.qargs[0].index) - and (cx1_node.qargs[1].index == cx2_node.qargs[1].index) - and (cx2_node.qargs[1].index == rz_node.qargs[0].index) + dag.find_bit(cx1_node.qargs[0])[0] + == dag.find_bit(cx2_node.qargs[0])[0] + and dag.find_bit(cx1_node.qargs[1])[0] + == dag.find_bit(cx2_node.qargs[1])[0] + and dag.find_bit(cx2_node.qargs[1])[0] + == dag.find_bit(rz_node.qargs[0])[0] ): dag = self.sub_zz_in_dag( dag, cx1_node, rz_node, cx2_node diff --git a/test/utils/test_pulse_scaling.py b/test/utils/test_pulse_scaling.py index f1f85648..d3d82119 100644 --- a/test/utils/test_pulse_scaling.py +++ b/test/utils/test_pulse_scaling.py @@ -146,8 +146,8 @@ def test_forced_rzz_template_match(self, backend: Backend): theta_set = rng.uniform(-np.pi, np.pi) self.assertTrue( - Operator(qc.bind_parameters({theta: theta_set})).equiv( - Operator(scale_qc_match.bind_parameters({theta: theta_set})) + Operator(qc.assign_parameters({theta: theta_set})).equiv( + Operator(scale_qc_match.assign_parameters({theta: theta_set})) ) )