qiskit 1.2.0rc1__cp38-abi3-win32.whl → 1.2.2__cp38-abi3-win32.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qiskit/VERSION.txt +1 -1
- qiskit/_accelerate.pyd +0 -0
- qiskit/circuit/__init__.py +15 -2
- qiskit/circuit/library/basis_change/qft.py +3 -1
- qiskit/circuit/library/data_preparation/initializer.py +5 -2
- qiskit/circuit/library/data_preparation/state_preparation.py +2 -2
- qiskit/circuit/library/pauli_evolution.py +1 -0
- qiskit/circuit/library/standard_gates/__init__.py +32 -25
- qiskit/circuit/quantumcircuit.py +43 -18
- qiskit/compiler/transpiler.py +1 -1
- qiskit/dagcircuit/dagcircuit.py +1 -1
- qiskit/primitives/base/base_estimator.py +2 -2
- qiskit/primitives/containers/data_bin.py +9 -1
- qiskit/providers/basic_provider/basic_simulator.py +1 -1
- qiskit/providers/fake_provider/fake_openpulse_2q.py +3 -3
- qiskit/providers/fake_provider/fake_openpulse_3q.py +2 -3
- qiskit/providers/fake_provider/fake_pulse_backend.py +2 -1
- qiskit/providers/fake_provider/fake_qasm_backend.py +2 -1
- qiskit/providers/fake_provider/generic_backend_v2.py +434 -18
- qiskit/providers/models/__init__.py +47 -21
- qiskit/pulse/builder.py +16 -7
- qiskit/pulse/instructions/directives.py +5 -0
- qiskit/pulse/library/symbolic_pulses.py +4 -3
- qiskit/pulse/schedule.py +5 -9
- qiskit/pulse/transforms/alignments.py +3 -1
- qiskit/pulse/transforms/dag.py +7 -0
- qiskit/qasm2/parse.py +29 -0
- qiskit/qasm3/exporter.py +20 -7
- qiskit/qpy/__init__.py +1 -1
- qiskit/quantum_info/operators/operator.py +24 -0
- qiskit/quantum_info/operators/symplectic/pauli.py +2 -0
- qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +6 -1
- qiskit/synthesis/clifford/clifford_decompose_bm.py +1 -1
- qiskit/synthesis/clifford/clifford_decompose_greedy.py +1 -1
- qiskit/synthesis/linear/cnot_synth.py +1 -1
- qiskit/synthesis/one_qubit/one_qubit_decompose.py +2 -1
- qiskit/synthesis/permutation/permutation_full.py +2 -2
- qiskit/synthesis/permutation/permutation_lnn.py +3 -1
- qiskit/synthesis/two_qubit/two_qubit_decompose.py +2 -2
- qiskit/transpiler/__init__.py +6 -1
- qiskit/transpiler/instruction_durations.py +4 -0
- qiskit/transpiler/passes/__init__.py +2 -0
- qiskit/transpiler/passes/basis/basis_translator.py +2 -1
- qiskit/transpiler/passes/calibration/rx_builder.py +1 -1
- qiskit/transpiler/passes/optimization/__init__.py +1 -0
- qiskit/transpiler/passes/optimization/consolidate_blocks.py +7 -1
- qiskit/transpiler/passes/optimization/elide_permutations.py +2 -2
- qiskit/transpiler/passes/optimization/hoare_opt.py +12 -8
- qiskit/transpiler/passes/optimization/split_2q_unitaries.py +16 -20
- qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +1 -1
- qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +9 -3
- qiskit/transpiler/passes/scheduling/padding/pad_delay.py +3 -0
- qiskit/transpiler/passes/synthesis/high_level_synthesis.py +16 -6
- qiskit/transpiler/passes/synthesis/unitary_synthesis.py +1 -1
- qiskit/transpiler/preset_passmanagers/builtin_plugins.py +12 -55
- qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +9 -0
- qiskit/utils/optionals.py +173 -150
- qiskit/visualization/bloch.py +44 -1
- qiskit/visualization/dag_visualization.py +10 -3
- qiskit/visualization/gate_map.py +28 -6
- qiskit/visualization/pass_manager_visualization.py +3 -14
- {qiskit-1.2.0rc1.dist-info → qiskit-1.2.2.dist-info}/METADATA +20 -20
- {qiskit-1.2.0rc1.dist-info → qiskit-1.2.2.dist-info}/RECORD +67 -67
- {qiskit-1.2.0rc1.dist-info → qiskit-1.2.2.dist-info}/WHEEL +1 -1
- {qiskit-1.2.0rc1.dist-info → qiskit-1.2.2.dist-info}/LICENSE.txt +0 -0
- {qiskit-1.2.0rc1.dist-info → qiskit-1.2.2.dist-info}/entry_points.txt +0 -0
- {qiskit-1.2.0rc1.dist-info → qiskit-1.2.2.dist-info}/top_level.txt +0 -0
qiskit/VERSION.txt
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.2.
|
1
|
+
1.2.2
|
qiskit/_accelerate.pyd
CHANGED
Binary file
|
qiskit/circuit/__init__.py
CHANGED
@@ -301,9 +301,10 @@ assist compilation workflows. These include:
|
|
301
301
|
* :data:`SessionEquivalenceLibrary`, a mutable instance of :class:`EquivalenceLibrary` which is used
|
302
302
|
by default by the compiler's :class:`.BasisTranslator`.
|
303
303
|
|
304
|
-
There
|
304
|
+
There are also utilities for generating random circuits:
|
305
305
|
|
306
|
-
* :func
|
306
|
+
* :func:`.random_circuit`
|
307
|
+
* :func:`.random_clifford_circuit`
|
307
308
|
|
308
309
|
Finally, the circuit module has its own exception class, to indicate when things went wrong in
|
309
310
|
circuit-specific manners:
|
@@ -579,6 +580,16 @@ The :class:`Store` instruction is particularly special, in that it allows writin
|
|
579
580
|
:class:`Qubit` nor :class:`Clbit` operands, but has an explicit :attr:`~Store.lvalue` and
|
580
581
|
:attr:`~Store.rvalue`.
|
581
582
|
|
583
|
+
For example, to determine the parity of a bitstring ``cr`` and store it in another register ``creg``,
|
584
|
+
the :class:`Store` instruction can be used in the following way::
|
585
|
+
|
586
|
+
parity = expr.lift(cr[0])
|
587
|
+
for i in range(1,n):
|
588
|
+
parity = expr.bit_xor(cr[i], parity)
|
589
|
+
qc.store(creg[0], parity)
|
590
|
+
|
591
|
+
|
592
|
+
|
582
593
|
.. autoclass:: Store
|
583
594
|
:show-inheritance:
|
584
595
|
:members:
|
@@ -1004,6 +1015,7 @@ Generating random circuits
|
|
1004
1015
|
|
1005
1016
|
.. currentmodule:: qiskit.circuit.random
|
1006
1017
|
.. autofunction:: random_circuit
|
1018
|
+
.. autofunction:: random_clifford_circuit
|
1007
1019
|
.. currentmodule:: qiskit.circuit
|
1008
1020
|
|
1009
1021
|
|
@@ -1250,3 +1262,4 @@ from .controlflow import (
|
|
1250
1262
|
)
|
1251
1263
|
|
1252
1264
|
from .annotated_operation import AnnotatedOperation, InverseModifier, ControlModifier, PowerModifier
|
1265
|
+
from .random import random_circuit, random_clifford_circuit
|
@@ -315,8 +315,10 @@ class QFTGate(Gate):
|
|
315
315
|
"""
|
316
316
|
super().__init__(name="qft", num_qubits=num_qubits, params=[])
|
317
317
|
|
318
|
-
def __array__(self, dtype=complex):
|
318
|
+
def __array__(self, dtype=complex, copy=None):
|
319
319
|
"""Return a numpy array for the QFTGate."""
|
320
|
+
if copy is False:
|
321
|
+
raise ValueError("unable to avoid copy while creating an array as requested")
|
320
322
|
n = self.num_qubits
|
321
323
|
nums = np.arange(2**n)
|
322
324
|
outer = np.outer(nums, nums)
|
@@ -21,6 +21,7 @@ import typing
|
|
21
21
|
from qiskit.circuit.quantumcircuit import QuantumCircuit
|
22
22
|
from qiskit.circuit.quantumregister import QuantumRegister
|
23
23
|
from qiskit.circuit.instruction import Instruction
|
24
|
+
from qiskit.circuit.library.generalized_gates import Isometry
|
24
25
|
from .state_preparation import StatePreparation
|
25
26
|
|
26
27
|
if typing.TYPE_CHECKING:
|
@@ -86,9 +87,11 @@ class Initialize(Instruction):
|
|
86
87
|
"""Call to create a circuit with gates that take the desired vector to zero.
|
87
88
|
|
88
89
|
Returns:
|
89
|
-
|
90
|
+
QuantumCircuit: circuit to take ``self.params`` vector to :math:`|{00\\ldots0}\\rangle`
|
90
91
|
"""
|
91
|
-
|
92
|
+
|
93
|
+
isom = Isometry(self.params, 0, 0)
|
94
|
+
return isom._gates_to_uncompute()
|
92
95
|
|
93
96
|
@property
|
94
97
|
def params(self):
|
@@ -173,8 +173,8 @@ class StatePreparation(Gate):
|
|
173
173
|
q = QuantumRegister(self.num_qubits, "q")
|
174
174
|
initialize_circuit = QuantumCircuit(q, name="init_def")
|
175
175
|
|
176
|
-
isom = Isometry(self.
|
177
|
-
initialize_circuit.
|
176
|
+
isom = Isometry(self.params, 0, 0)
|
177
|
+
initialize_circuit.compose(isom.definition, copy=False, inplace=True)
|
178
178
|
|
179
179
|
# invert the circuit to create the desired vector from zero (assuming
|
180
180
|
# the qubits are in the zero state)
|
@@ -54,6 +54,13 @@ def get_standard_gate_name_mapping():
|
|
54
54
|
from qiskit.circuit.delay import Delay
|
55
55
|
from qiskit.circuit.reset import Reset
|
56
56
|
|
57
|
+
lambda_ = Parameter("λ")
|
58
|
+
theta = Parameter("ϴ")
|
59
|
+
phi = Parameter("φ")
|
60
|
+
gamma = Parameter("γ")
|
61
|
+
beta = Parameter("β")
|
62
|
+
time = Parameter("t")
|
63
|
+
|
57
64
|
# Standard gates library mapping, multicontrolled gates not included since they're
|
58
65
|
# variable width
|
59
66
|
gates = [
|
@@ -61,38 +68,37 @@ def get_standard_gate_name_mapping():
|
|
61
68
|
SXGate(),
|
62
69
|
XGate(),
|
63
70
|
CXGate(),
|
64
|
-
RZGate(
|
65
|
-
RGate(
|
66
|
-
Reset(),
|
71
|
+
RZGate(lambda_),
|
72
|
+
RGate(theta, phi),
|
67
73
|
C3SXGate(),
|
68
74
|
CCXGate(),
|
69
75
|
DCXGate(),
|
70
76
|
CHGate(),
|
71
|
-
CPhaseGate(
|
72
|
-
CRXGate(
|
73
|
-
CRYGate(
|
74
|
-
CRZGate(
|
77
|
+
CPhaseGate(theta),
|
78
|
+
CRXGate(theta),
|
79
|
+
CRYGate(theta),
|
80
|
+
CRZGate(theta),
|
75
81
|
CSwapGate(),
|
76
82
|
CSXGate(),
|
77
|
-
CUGate(
|
78
|
-
CU1Gate(
|
79
|
-
CU3Gate(
|
83
|
+
CUGate(theta, phi, lambda_, gamma),
|
84
|
+
CU1Gate(lambda_),
|
85
|
+
CU3Gate(theta, phi, lambda_),
|
80
86
|
CYGate(),
|
81
87
|
CZGate(),
|
82
88
|
CCZGate(),
|
83
|
-
GlobalPhaseGate(
|
89
|
+
GlobalPhaseGate(theta),
|
84
90
|
HGate(),
|
85
|
-
PhaseGate(
|
91
|
+
PhaseGate(theta),
|
86
92
|
RCCXGate(),
|
87
93
|
RC3XGate(),
|
88
|
-
RXGate(
|
89
|
-
RXXGate(
|
90
|
-
RYGate(
|
91
|
-
RYYGate(
|
92
|
-
RZZGate(
|
93
|
-
RZXGate(
|
94
|
-
XXMinusYYGate(
|
95
|
-
XXPlusYYGate(
|
94
|
+
RXGate(theta),
|
95
|
+
RXXGate(theta),
|
96
|
+
RYGate(theta),
|
97
|
+
RYYGate(theta),
|
98
|
+
RZZGate(theta),
|
99
|
+
RZXGate(theta),
|
100
|
+
XXMinusYYGate(theta, beta),
|
101
|
+
XXPlusYYGate(theta, beta),
|
96
102
|
ECRGate(),
|
97
103
|
SGate(),
|
98
104
|
SdgGate(),
|
@@ -103,13 +109,14 @@ def get_standard_gate_name_mapping():
|
|
103
109
|
SXdgGate(),
|
104
110
|
TGate(),
|
105
111
|
TdgGate(),
|
106
|
-
UGate(
|
107
|
-
U1Gate(
|
108
|
-
U2Gate(
|
109
|
-
U3Gate(
|
112
|
+
UGate(theta, phi, lambda_),
|
113
|
+
U1Gate(lambda_),
|
114
|
+
U2Gate(phi, lambda_),
|
115
|
+
U3Gate(theta, phi, lambda_),
|
110
116
|
YGate(),
|
111
117
|
ZGate(),
|
112
|
-
Delay(
|
118
|
+
Delay(time),
|
119
|
+
Reset(),
|
113
120
|
Measure(),
|
114
121
|
]
|
115
122
|
name_mapping = {gate.name: gate for gate in gates}
|
qiskit/circuit/quantumcircuit.py
CHANGED
@@ -1152,17 +1152,41 @@ class QuantumCircuit:
|
|
1152
1152
|
"""The unit that :attr:`duration` is specified in."""
|
1153
1153
|
self.metadata = {} if metadata is None else metadata
|
1154
1154
|
"""Arbitrary user-defined metadata for the circuit.
|
1155
|
-
|
1155
|
+
|
1156
1156
|
Qiskit will not examine the content of this mapping, but it will pass it through the
|
1157
1157
|
transpiler and reattach it to the output, so you can track your own metadata."""
|
1158
1158
|
|
1159
1159
|
@classmethod
|
1160
|
-
def _from_circuit_data(cls, data: CircuitData) -> typing.Self:
|
1160
|
+
def _from_circuit_data(cls, data: CircuitData, add_regs: bool = False) -> typing.Self:
|
1161
1161
|
"""A private constructor from rust space circuit data."""
|
1162
1162
|
out = QuantumCircuit()
|
1163
|
+
|
1164
|
+
if data.num_qubits > 0:
|
1165
|
+
if add_regs:
|
1166
|
+
qr = QuantumRegister(name="q", bits=data.qubits)
|
1167
|
+
out.qregs = [qr]
|
1168
|
+
out._qubit_indices = {
|
1169
|
+
bit: BitLocations(index, [(qr, index)]) for index, bit in enumerate(data.qubits)
|
1170
|
+
}
|
1171
|
+
else:
|
1172
|
+
out._qubit_indices = {
|
1173
|
+
bit: BitLocations(index, []) for index, bit in enumerate(data.qubits)
|
1174
|
+
}
|
1175
|
+
|
1176
|
+
if data.num_clbits > 0:
|
1177
|
+
if add_regs:
|
1178
|
+
cr = ClassicalRegister(name="c", bits=data.clbits)
|
1179
|
+
out.cregs = [cr]
|
1180
|
+
out._clbit_indices = {
|
1181
|
+
bit: BitLocations(index, [(cr, index)]) for index, bit in enumerate(data.clbits)
|
1182
|
+
}
|
1183
|
+
else:
|
1184
|
+
out._clbit_indices = {
|
1185
|
+
bit: BitLocations(index, []) for index, bit in enumerate(data.clbits)
|
1186
|
+
}
|
1187
|
+
|
1163
1188
|
out._data = data
|
1164
|
-
|
1165
|
-
out._clbit_indices = {bit: BitLocations(index, []) for index, bit in enumerate(data.clbits)}
|
1189
|
+
|
1166
1190
|
return out
|
1167
1191
|
|
1168
1192
|
@staticmethod
|
@@ -3013,16 +3037,7 @@ class QuantumCircuit:
|
|
3013
3037
|
self._ancillas.append(bit)
|
3014
3038
|
|
3015
3039
|
if isinstance(register, QuantumRegister):
|
3016
|
-
self.
|
3017
|
-
|
3018
|
-
for idx, bit in enumerate(register):
|
3019
|
-
if bit in self._qubit_indices:
|
3020
|
-
self._qubit_indices[bit].registers.append((register, idx))
|
3021
|
-
else:
|
3022
|
-
self._data.add_qubit(bit)
|
3023
|
-
self._qubit_indices[bit] = BitLocations(
|
3024
|
-
self._data.num_qubits - 1, [(register, idx)]
|
3025
|
-
)
|
3040
|
+
self._add_qreg(register)
|
3026
3041
|
|
3027
3042
|
elif isinstance(register, ClassicalRegister):
|
3028
3043
|
self.cregs.append(register)
|
@@ -3041,6 +3056,16 @@ class QuantumCircuit:
|
|
3041
3056
|
else:
|
3042
3057
|
raise CircuitError("expected a register")
|
3043
3058
|
|
3059
|
+
def _add_qreg(self, qreg: QuantumRegister) -> None:
|
3060
|
+
self.qregs.append(qreg)
|
3061
|
+
|
3062
|
+
for idx, bit in enumerate(qreg):
|
3063
|
+
if bit in self._qubit_indices:
|
3064
|
+
self._qubit_indices[bit].registers.append((qreg, idx))
|
3065
|
+
else:
|
3066
|
+
self._data.add_qubit(bit)
|
3067
|
+
self._qubit_indices[bit] = BitLocations(self._data.num_qubits - 1, [(qreg, idx)])
|
3068
|
+
|
3044
3069
|
def add_bits(self, bits: Iterable[Bit]) -> None:
|
3045
3070
|
"""Add Bits to the circuit."""
|
3046
3071
|
duplicate_bits = {
|
@@ -4188,7 +4213,7 @@ class QuantumCircuit:
|
|
4188
4213
|
@overload
|
4189
4214
|
def assign_parameters(
|
4190
4215
|
self,
|
4191
|
-
parameters: Union[Mapping[Parameter, ParameterValueType],
|
4216
|
+
parameters: Union[Mapping[Parameter, ParameterValueType], Iterable[ParameterValueType]],
|
4192
4217
|
inplace: Literal[False] = ...,
|
4193
4218
|
*,
|
4194
4219
|
flat_input: bool = ...,
|
@@ -4198,7 +4223,7 @@ class QuantumCircuit:
|
|
4198
4223
|
@overload
|
4199
4224
|
def assign_parameters(
|
4200
4225
|
self,
|
4201
|
-
parameters: Union[Mapping[Parameter, ParameterValueType],
|
4226
|
+
parameters: Union[Mapping[Parameter, ParameterValueType], Iterable[ParameterValueType]],
|
4202
4227
|
inplace: Literal[True] = ...,
|
4203
4228
|
*,
|
4204
4229
|
flat_input: bool = ...,
|
@@ -4207,7 +4232,7 @@ class QuantumCircuit:
|
|
4207
4232
|
|
4208
4233
|
def assign_parameters( # pylint: disable=missing-raises-doc
|
4209
4234
|
self,
|
4210
|
-
parameters: Union[Mapping[Parameter, ParameterValueType],
|
4235
|
+
parameters: Union[Mapping[Parameter, ParameterValueType], Iterable[ParameterValueType]],
|
4211
4236
|
inplace: bool = False,
|
4212
4237
|
*,
|
4213
4238
|
flat_input: bool = False,
|
@@ -4317,7 +4342,7 @@ class QuantumCircuit:
|
|
4317
4342
|
target._data.assign_parameters_mapping(parameter_binds)
|
4318
4343
|
else:
|
4319
4344
|
parameter_binds = _ParameterBindsSequence(target._data.parameters, parameters)
|
4320
|
-
target._data.
|
4345
|
+
target._data.assign_parameters_iterable(parameters)
|
4321
4346
|
|
4322
4347
|
# Finally, assign the parameters inside any of the calibrations. We don't track these in
|
4323
4348
|
# the `ParameterTable`, so we manually reconstruct things.
|
qiskit/compiler/transpiler.py
CHANGED
@@ -23,7 +23,7 @@ from qiskit.circuit.quantumcircuit import QuantumCircuit
|
|
23
23
|
from qiskit.dagcircuit import DAGCircuit
|
24
24
|
from qiskit.providers.backend import Backend
|
25
25
|
from qiskit.providers.backend_compat import BackendV2Converter
|
26
|
-
from qiskit.providers.models import BackendProperties
|
26
|
+
from qiskit.providers.models.backendproperties import BackendProperties
|
27
27
|
from qiskit.pulse import Schedule, InstructionScheduleMap
|
28
28
|
from qiskit.transpiler import Layout, CouplingMap, PropertySet
|
29
29
|
from qiskit.transpiler.basepasses import BasePass
|
qiskit/dagcircuit/dagcircuit.py
CHANGED
@@ -2090,7 +2090,7 @@ class DAGCircuit:
|
|
2090
2090
|
new_layer = self.copy_empty_like(vars_mode=vars_mode)
|
2091
2091
|
|
2092
2092
|
for node in op_nodes:
|
2093
|
-
new_layer._apply_op_node_back(node, check=False)
|
2093
|
+
new_layer._apply_op_node_back(copy.copy(node), check=False)
|
2094
2094
|
|
2095
2095
|
# The quantum registers that have an operation in this layer.
|
2096
2096
|
support_list = [
|
@@ -92,7 +92,7 @@ class BaseEstimatorV1(BasePrimitive, Generic[T]):
|
|
92
92
|
# calculate [ <psi1(theta1)|H1|psi1(theta1)> ]
|
93
93
|
job = estimator.run([psi1], [H1], [theta1])
|
94
94
|
job_result = job.result() # It will block until the job finishes.
|
95
|
-
print(f"The primitive-job finished with result {job_result}")
|
95
|
+
print(f"The primitive-job finished with result {job_result}")
|
96
96
|
|
97
97
|
# calculate [ <psi1(theta1)|H1|psi1(theta1)>,
|
98
98
|
# <psi2(theta2)|H2|psi2(theta2)>,
|
@@ -144,7 +144,7 @@ class BaseEstimatorV1(BasePrimitive, Generic[T]):
|
|
144
144
|
|
145
145
|
.. code-block:: python
|
146
146
|
|
147
|
-
values = parameter_values[i]
|
147
|
+
values = parameter_values[i]
|
148
148
|
|
149
149
|
Args:
|
150
150
|
circuits: one or more circuit objects.
|
@@ -34,14 +34,22 @@ class DataBin(ShapedMixin):
|
|
34
34
|
|
35
35
|
.. code-block:: python
|
36
36
|
|
37
|
+
import numpy as np
|
38
|
+
from qiskit.primitives import DataBin, BitArray
|
39
|
+
|
37
40
|
data = DataBin(
|
38
|
-
alpha=BitArray.
|
41
|
+
alpha=BitArray.from_samples(["0010"]),
|
39
42
|
beta=np.array([1.2])
|
40
43
|
)
|
41
44
|
|
42
45
|
print("alpha data:", data.alpha)
|
43
46
|
print("beta data:", data.beta)
|
44
47
|
|
48
|
+
.. code-block::
|
49
|
+
|
50
|
+
alpha data: BitArray(<shape=(), num_shots=1, num_bits=2>)
|
51
|
+
beta data: [1.2]
|
52
|
+
|
45
53
|
"""
|
46
54
|
|
47
55
|
__slots__ = ("_data", "_shape")
|
@@ -43,7 +43,7 @@ from qiskit.circuit.library import UnitaryGate
|
|
43
43
|
from qiskit.circuit.library.standard_gates import get_standard_gate_name_mapping, GlobalPhaseGate
|
44
44
|
from qiskit.providers import Provider
|
45
45
|
from qiskit.providers.backend import BackendV2
|
46
|
-
from qiskit.providers.models import BackendConfiguration
|
46
|
+
from qiskit.providers.models.backendconfiguration import BackendConfiguration
|
47
47
|
from qiskit.providers.options import Options
|
48
48
|
from qiskit.qobj import QasmQobj, QasmQobjConfig, QasmQobjExperiment
|
49
49
|
from qiskit.result import Result
|
@@ -16,14 +16,14 @@ Fake backend supporting OpenPulse.
|
|
16
16
|
import datetime
|
17
17
|
import warnings
|
18
18
|
|
19
|
-
from qiskit.providers.models import (
|
19
|
+
from qiskit.providers.models.backendconfiguration import (
|
20
20
|
GateConfig,
|
21
21
|
PulseBackendConfiguration,
|
22
|
-
PulseDefaults,
|
23
|
-
Command,
|
24
22
|
UchannelLO,
|
25
23
|
)
|
24
|
+
|
26
25
|
from qiskit.providers.models.backendproperties import Nduv, Gate, BackendProperties
|
26
|
+
from qiskit.providers.models.pulsedefaults import PulseDefaults, Command
|
27
27
|
from qiskit.qobj import PulseQobjInstruction
|
28
28
|
|
29
29
|
from .fake_backend import FakeBackend
|
@@ -15,13 +15,12 @@ Fake backend supporting OpenPulse.
|
|
15
15
|
"""
|
16
16
|
import warnings
|
17
17
|
|
18
|
-
from qiskit.providers.models import (
|
18
|
+
from qiskit.providers.models.backendconfiguration import (
|
19
19
|
GateConfig,
|
20
20
|
PulseBackendConfiguration,
|
21
|
-
PulseDefaults,
|
22
|
-
Command,
|
23
21
|
UchannelLO,
|
24
22
|
)
|
23
|
+
from qiskit.providers.models.pulsedefaults import PulseDefaults, Command
|
25
24
|
from qiskit.qobj import PulseQobjInstruction
|
26
25
|
|
27
26
|
from .fake_backend import FakeBackend
|
@@ -15,7 +15,8 @@ Fake backend abstract class for mock backends supporting OpenPulse.
|
|
15
15
|
"""
|
16
16
|
|
17
17
|
from qiskit.exceptions import QiskitError
|
18
|
-
from qiskit.providers.models import PulseBackendConfiguration
|
18
|
+
from qiskit.providers.models.backendconfiguration import PulseBackendConfiguration
|
19
|
+
from qiskit.providers.models.pulsedefaults import PulseDefaults
|
19
20
|
|
20
21
|
from .fake_qasm_backend import FakeQasmBackend
|
21
22
|
from .utils.json_decoder import decode_pulse_defaults
|
@@ -19,7 +19,8 @@ import os
|
|
19
19
|
import warnings
|
20
20
|
|
21
21
|
from qiskit.exceptions import QiskitError
|
22
|
-
from qiskit.providers.models import BackendProperties
|
22
|
+
from qiskit.providers.models.backendproperties import BackendProperties
|
23
|
+
from qiskit.providers.models.backendconfiguration import QasmBackendConfiguration
|
23
24
|
|
24
25
|
from .utils.json_decoder import (
|
25
26
|
decode_backend_configuration,
|