From f5583a9a378e4e415372428473bd11ea220cadb1 Mon Sep 17 00:00:00 2001 From: Luciano Bello Date: Wed, 20 Sep 2023 12:42:25 +0200 Subject: [PATCH 1/2] breaking change in Qiskit 0.45 --- .../transpiler/passes/scheduling/dynamical_decoupling.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/qiskit_ibm_provider/transpiler/passes/scheduling/dynamical_decoupling.py b/qiskit_ibm_provider/transpiler/passes/scheduling/dynamical_decoupling.py index 54845454c..a87bd8df8 100644 --- a/qiskit_ibm_provider/transpiler/passes/scheduling/dynamical_decoupling.py +++ b/qiskit_ibm_provider/transpiler/passes/scheduling/dynamical_decoupling.py @@ -328,7 +328,7 @@ def _pre_runhook(self, dag: DAGCircuit) -> None: if self._qubits and physical_index not in self._qubits: continue - for gate in seq: + for index, gate in enumerate(seq): try: # Check calibration. gate_length = dag.calibrations[gate.name][ @@ -352,6 +352,10 @@ def _pre_runhook(self, dag: DAGCircuit) -> None: seq_length_.append(gate_length) # Update gate duration. # This is necessary for current timeline drawer, i.e. scheduled. + + if hasattr(gate, 'to_mutable'): # TODO this check can be removed after Qiskit 1.0 + gate = gate.to_mutable() + seq[index] = gate gate.duration = gate_length self._dd_sequence_lengths[qubit].append(seq_length_) From 5a7b0a41411e7e759819058ffa42c0488ae191c7 Mon Sep 17 00:00:00 2001 From: Luciano Bello Date: Wed, 20 Sep 2023 12:53:10 +0200 Subject: [PATCH 2/2] black --- .../transpiler/passes/scheduling/dynamical_decoupling.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/qiskit_ibm_provider/transpiler/passes/scheduling/dynamical_decoupling.py b/qiskit_ibm_provider/transpiler/passes/scheduling/dynamical_decoupling.py index a87bd8df8..7e184c79a 100644 --- a/qiskit_ibm_provider/transpiler/passes/scheduling/dynamical_decoupling.py +++ b/qiskit_ibm_provider/transpiler/passes/scheduling/dynamical_decoupling.py @@ -353,7 +353,9 @@ def _pre_runhook(self, dag: DAGCircuit) -> None: # Update gate duration. # This is necessary for current timeline drawer, i.e. scheduled. - if hasattr(gate, 'to_mutable'): # TODO this check can be removed after Qiskit 1.0 + if hasattr( + gate, "to_mutable" + ): # TODO this check can be removed after Qiskit 1.0, as it is always True gate = gate.to_mutable() seq[index] = gate gate.duration = gate_length