qiskit 1.1.2__cp38-abi3-macosx_10_9_universal2.whl → 1.2.0__cp38-abi3-macosx_10_9_universal2.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/__init__.py +27 -24
- qiskit/_accelerate.abi3.so +0 -0
- qiskit/_numpy_compat.py +1 -1
- qiskit/assembler/assemble_circuits.py +107 -64
- qiskit/assembler/assemble_schedules.py +5 -12
- qiskit/assembler/disassemble.py +10 -1
- qiskit/circuit/__init__.py +6 -3
- qiskit/circuit/_classical_resource_map.py +5 -5
- qiskit/circuit/_utils.py +0 -13
- qiskit/circuit/add_control.py +1 -1
- qiskit/circuit/annotated_operation.py +23 -1
- qiskit/circuit/classical/expr/expr.py +4 -4
- qiskit/circuit/classical/expr/visitors.py +1 -1
- qiskit/circuit/classical/types/__init__.py +1 -1
- qiskit/circuit/classical/types/types.py +2 -2
- qiskit/circuit/classicalfunction/boolean_expression.py +1 -1
- qiskit/circuit/classicalfunction/classical_function_visitor.py +5 -5
- qiskit/circuit/classicalfunction/utils.py +1 -1
- qiskit/circuit/classicalregister.py +1 -1
- qiskit/circuit/commutation_checker.py +83 -35
- qiskit/circuit/controlflow/_builder_utils.py +1 -1
- qiskit/circuit/controlflow/builder.py +10 -6
- qiskit/circuit/controlflow/if_else.py +2 -2
- qiskit/circuit/controlflow/switch_case.py +1 -1
- qiskit/circuit/delay.py +1 -1
- qiskit/circuit/duration.py +2 -2
- qiskit/circuit/equivalence.py +5 -7
- qiskit/circuit/gate.py +11 -8
- qiskit/circuit/instruction.py +31 -13
- qiskit/circuit/instructionset.py +2 -5
- qiskit/circuit/library/__init__.py +2 -1
- qiskit/circuit/library/arithmetic/linear_amplitude_function.py +1 -1
- qiskit/circuit/library/arithmetic/linear_pauli_rotations.py +1 -1
- qiskit/circuit/library/arithmetic/piecewise_chebyshev.py +1 -1
- qiskit/circuit/library/arithmetic/piecewise_linear_pauli_rotations.py +1 -1
- qiskit/circuit/library/arithmetic/piecewise_polynomial_pauli_rotations.py +3 -3
- qiskit/circuit/library/arithmetic/polynomial_pauli_rotations.py +1 -1
- qiskit/circuit/library/basis_change/__init__.py +1 -1
- qiskit/circuit/library/basis_change/qft.py +40 -6
- qiskit/circuit/library/blueprintcircuit.py +3 -5
- qiskit/circuit/library/data_preparation/__init__.py +9 -2
- qiskit/circuit/library/data_preparation/initializer.py +8 -0
- qiskit/circuit/library/data_preparation/state_preparation.py +98 -178
- qiskit/circuit/library/generalized_gates/isometry.py +8 -8
- qiskit/circuit/library/generalized_gates/linear_function.py +3 -2
- qiskit/circuit/library/generalized_gates/mcg_up_to_diagonal.py +4 -4
- qiskit/circuit/library/generalized_gates/permutation.py +8 -9
- qiskit/circuit/library/generalized_gates/uc.py +3 -3
- qiskit/circuit/library/generalized_gates/uc_pauli_rot.py +2 -2
- qiskit/circuit/library/generalized_gates/unitary.py +13 -11
- qiskit/circuit/library/graph_state.py +1 -1
- qiskit/circuit/library/hamiltonian_gate.py +1 -2
- qiskit/circuit/library/hidden_linear_function.py +1 -1
- qiskit/circuit/library/n_local/evolved_operator_ansatz.py +3 -2
- qiskit/circuit/library/n_local/n_local.py +4 -5
- qiskit/circuit/library/n_local/pauli_two_design.py +1 -1
- qiskit/circuit/library/n_local/qaoa_ansatz.py +6 -8
- qiskit/circuit/library/n_local/two_local.py +1 -1
- qiskit/circuit/library/overlap.py +11 -5
- qiskit/circuit/library/pauli_evolution.py +7 -3
- qiskit/circuit/library/standard_gates/dcx.py +3 -0
- qiskit/circuit/library/standard_gates/ecr.py +3 -0
- qiskit/circuit/library/standard_gates/global_phase.py +3 -0
- qiskit/circuit/library/standard_gates/h.py +13 -5
- qiskit/circuit/library/standard_gates/i.py +3 -0
- qiskit/circuit/library/standard_gates/iswap.py +3 -0
- qiskit/circuit/library/standard_gates/multi_control_rotation_gates.py +19 -10
- qiskit/circuit/library/standard_gates/p.py +14 -9
- qiskit/circuit/library/standard_gates/r.py +3 -0
- qiskit/circuit/library/standard_gates/rx.py +21 -6
- qiskit/circuit/library/standard_gates/rxx.py +40 -1
- qiskit/circuit/library/standard_gates/ry.py +21 -6
- qiskit/circuit/library/standard_gates/ryy.py +40 -1
- qiskit/circuit/library/standard_gates/rz.py +22 -6
- qiskit/circuit/library/standard_gates/rzx.py +40 -1
- qiskit/circuit/library/standard_gates/rzz.py +41 -2
- qiskit/circuit/library/standard_gates/s.py +77 -0
- qiskit/circuit/library/standard_gates/swap.py +12 -5
- qiskit/circuit/library/standard_gates/sx.py +14 -5
- qiskit/circuit/library/standard_gates/t.py +5 -0
- qiskit/circuit/library/standard_gates/u.py +22 -7
- qiskit/circuit/library/standard_gates/u1.py +8 -3
- qiskit/circuit/library/standard_gates/u2.py +3 -0
- qiskit/circuit/library/standard_gates/u3.py +22 -7
- qiskit/circuit/library/standard_gates/x.py +156 -92
- qiskit/circuit/library/standard_gates/xx_minus_yy.py +40 -1
- qiskit/circuit/library/standard_gates/xx_plus_yy.py +52 -11
- qiskit/circuit/library/standard_gates/y.py +6 -1
- qiskit/circuit/library/standard_gates/z.py +8 -1
- qiskit/circuit/operation.py +1 -1
- qiskit/circuit/parameter.py +9 -10
- qiskit/circuit/parameterexpression.py +16 -13
- qiskit/circuit/parametertable.py +1 -190
- qiskit/circuit/parametervector.py +1 -1
- qiskit/circuit/quantumcircuit.py +395 -387
- qiskit/circuit/quantumcircuitdata.py +3 -5
- qiskit/circuit/quantumregister.py +1 -1
- qiskit/circuit/random/__init__.py +1 -1
- qiskit/circuit/random/utils.py +175 -26
- qiskit/circuit/register.py +5 -7
- qiskit/circuit/singleton.py +3 -3
- qiskit/circuit/tools/pi_check.py +4 -4
- qiskit/compiler/assembler.py +95 -24
- qiskit/compiler/scheduler.py +2 -2
- qiskit/compiler/transpiler.py +42 -128
- qiskit/converters/circuit_to_dag.py +4 -6
- qiskit/converters/circuit_to_gate.py +4 -8
- qiskit/converters/circuit_to_instruction.py +5 -17
- qiskit/converters/dag_to_circuit.py +2 -6
- qiskit/dagcircuit/collect_blocks.py +2 -2
- qiskit/dagcircuit/dagcircuit.py +190 -187
- qiskit/dagcircuit/dagdependency.py +4 -4
- qiskit/dagcircuit/dagdependency_v2.py +4 -4
- qiskit/dagcircuit/dagdepnode.py +1 -1
- qiskit/dagcircuit/dagnode.py +66 -157
- qiskit/passmanager/flow_controllers.py +1 -1
- qiskit/passmanager/passmanager.py +3 -3
- qiskit/primitives/__init__.py +1 -5
- qiskit/primitives/backend_estimator.py +25 -15
- qiskit/primitives/backend_estimator_v2.py +31 -7
- qiskit/primitives/backend_sampler.py +21 -12
- qiskit/primitives/backend_sampler_v2.py +12 -3
- qiskit/primitives/base/base_estimator.py +31 -4
- qiskit/primitives/base/base_primitive.py +2 -2
- qiskit/primitives/base/base_result.py +2 -2
- qiskit/primitives/base/base_sampler.py +26 -2
- qiskit/primitives/base/estimator_result.py +2 -2
- qiskit/primitives/base/sampler_result.py +2 -2
- qiskit/primitives/containers/__init__.py +0 -1
- qiskit/primitives/containers/bindings_array.py +2 -2
- qiskit/primitives/containers/bit_array.py +108 -10
- qiskit/primitives/containers/shape.py +3 -3
- qiskit/primitives/estimator.py +9 -2
- qiskit/primitives/primitive_job.py +1 -1
- qiskit/primitives/sampler.py +10 -3
- qiskit/primitives/statevector_estimator.py +5 -3
- qiskit/primitives/statevector_sampler.py +11 -5
- qiskit/primitives/utils.py +16 -0
- qiskit/providers/backend.py +15 -6
- qiskit/providers/backend_compat.py +7 -4
- qiskit/providers/basic_provider/basic_provider_tools.py +1 -1
- qiskit/providers/basic_provider/basic_simulator.py +33 -25
- qiskit/providers/fake_provider/fake_backend.py +10 -3
- qiskit/providers/fake_provider/fake_openpulse_2q.py +157 -149
- qiskit/providers/fake_provider/fake_openpulse_3q.py +228 -220
- qiskit/providers/fake_provider/fake_pulse_backend.py +2 -1
- qiskit/providers/fake_provider/fake_qasm_backend.py +7 -2
- qiskit/providers/fake_provider/generic_backend_v2.py +514 -68
- qiskit/providers/models/__init__.py +48 -11
- qiskit/providers/models/backendconfiguration.py +50 -4
- qiskit/providers/models/backendproperties.py +13 -2
- qiskit/providers/models/pulsedefaults.py +10 -11
- qiskit/providers/options.py +13 -13
- qiskit/providers/providerutils.py +3 -1
- qiskit/pulse/configuration.py +8 -12
- qiskit/pulse/instruction_schedule_map.py +3 -5
- qiskit/pulse/instructions/acquire.py +7 -8
- qiskit/pulse/instructions/instruction.py +2 -3
- qiskit/pulse/library/samplers/decorators.py +5 -9
- qiskit/pulse/library/symbolic_pulses.py +4 -7
- qiskit/pulse/library/waveform.py +2 -5
- qiskit/pulse/macros.py +11 -6
- qiskit/pulse/parser.py +8 -10
- qiskit/pulse/schedule.py +9 -17
- qiskit/pulse/transforms/alignments.py +1 -3
- qiskit/pulse/utils.py +1 -2
- qiskit/qasm/libs/stdgates.inc +35 -28
- qiskit/qasm2/__init__.py +7 -7
- qiskit/qasm2/export.py +5 -9
- qiskit/qasm2/parse.py +1 -1
- qiskit/qasm3/ast.py +9 -25
- qiskit/qasm3/exporter.py +582 -479
- qiskit/qasm3/printer.py +7 -16
- qiskit/qobj/common.py +10 -0
- qiskit/qobj/converters/lo_config.py +9 -0
- qiskit/qobj/converters/pulse_instruction.py +13 -6
- qiskit/qobj/pulse_qobj.py +69 -15
- qiskit/qobj/qasm_qobj.py +72 -20
- qiskit/qobj/utils.py +9 -0
- qiskit/qpy/__init__.py +1 -1
- qiskit/qpy/binary_io/circuits.py +8 -5
- qiskit/qpy/binary_io/schedules.py +1 -1
- qiskit/qpy/binary_io/value.py +3 -3
- qiskit/qpy/interface.py +3 -2
- qiskit/qpy/type_keys.py +2 -2
- qiskit/quantum_info/operators/channel/quantum_channel.py +3 -6
- qiskit/quantum_info/operators/channel/superop.py +2 -2
- qiskit/quantum_info/operators/channel/transformations.py +1 -1
- qiskit/quantum_info/operators/dihedral/dihedral.py +3 -4
- qiskit/quantum_info/operators/dihedral/dihedral_circuits.py +1 -3
- qiskit/quantum_info/operators/dihedral/random.py +6 -3
- qiskit/quantum_info/operators/measures.py +2 -2
- qiskit/quantum_info/operators/op_shape.py +12 -20
- qiskit/quantum_info/operators/operator.py +14 -21
- qiskit/quantum_info/operators/predicates.py +1 -0
- qiskit/quantum_info/operators/symplectic/base_pauli.py +7 -11
- qiskit/quantum_info/operators/symplectic/clifford.py +1 -1
- qiskit/quantum_info/operators/symplectic/pauli.py +3 -3
- qiskit/quantum_info/operators/symplectic/pauli_list.py +9 -10
- qiskit/quantum_info/operators/symplectic/random.py +1 -1
- qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +15 -17
- qiskit/quantum_info/quaternion.py +1 -1
- qiskit/quantum_info/states/densitymatrix.py +5 -8
- qiskit/quantum_info/states/stabilizerstate.py +128 -37
- qiskit/quantum_info/states/statevector.py +4 -8
- qiskit/result/counts.py +2 -2
- qiskit/result/mitigation/correlated_readout_mitigator.py +2 -2
- qiskit/result/mitigation/local_readout_mitigator.py +2 -2
- qiskit/result/mitigation/utils.py +1 -3
- qiskit/result/models.py +17 -16
- qiskit/result/result.py +15 -20
- qiskit/scheduler/lowering.py +2 -2
- qiskit/synthesis/__init__.py +2 -1
- qiskit/synthesis/clifford/__init__.py +1 -1
- qiskit/synthesis/clifford/clifford_decompose_ag.py +2 -2
- qiskit/synthesis/clifford/clifford_decompose_bm.py +10 -240
- qiskit/synthesis/clifford/clifford_decompose_greedy.py +9 -303
- qiskit/synthesis/clifford/clifford_decompose_layers.py +25 -23
- qiskit/synthesis/cnotdihedral/cnotdihedral_decompose_full.py +1 -1
- qiskit/synthesis/cnotdihedral/cnotdihedral_decompose_general.py +1 -1
- qiskit/synthesis/discrete_basis/generate_basis_approximations.py +1 -1
- qiskit/synthesis/discrete_basis/solovay_kitaev.py +2 -2
- qiskit/synthesis/evolution/evolution_synthesis.py +4 -2
- qiskit/synthesis/evolution/lie_trotter.py +46 -19
- qiskit/synthesis/evolution/product_formula.py +111 -55
- qiskit/synthesis/evolution/qdrift.py +40 -10
- qiskit/synthesis/evolution/suzuki_trotter.py +43 -33
- qiskit/synthesis/linear/__init__.py +1 -0
- qiskit/synthesis/linear/cnot_synth.py +22 -96
- qiskit/synthesis/linear/linear_depth_lnn.py +8 -8
- qiskit/synthesis/linear/linear_matrix_utils.py +13 -161
- qiskit/synthesis/linear_phase/cnot_phase_synth.py +1 -1
- qiskit/synthesis/linear_phase/cx_cz_depth_lnn.py +3 -3
- qiskit/synthesis/linear_phase/cz_depth_lnn.py +1 -1
- qiskit/synthesis/one_qubit/one_qubit_decompose.py +29 -29
- qiskit/synthesis/permutation/permutation_full.py +5 -29
- qiskit/synthesis/permutation/permutation_lnn.py +2 -24
- qiskit/synthesis/permutation/permutation_utils.py +2 -59
- qiskit/synthesis/qft/__init__.py +1 -0
- qiskit/synthesis/qft/qft_decompose_full.py +79 -0
- qiskit/synthesis/qft/qft_decompose_lnn.py +17 -9
- qiskit/synthesis/stabilizer/stabilizer_circuit.py +6 -6
- qiskit/synthesis/stabilizer/stabilizer_decompose.py +2 -2
- qiskit/synthesis/two_qubit/local_invariance.py +8 -38
- qiskit/synthesis/two_qubit/two_qubit_decompose.py +48 -129
- qiskit/synthesis/unitary/aqc/cnot_structures.py +1 -1
- qiskit/synthesis/unitary/qsd.py +5 -3
- qiskit/transpiler/__init__.py +1 -0
- qiskit/transpiler/basepasses.py +1 -1
- qiskit/transpiler/coupling.py +3 -3
- qiskit/transpiler/instruction_durations.py +1 -2
- qiskit/transpiler/layout.py +3 -3
- qiskit/transpiler/passes/__init__.py +2 -0
- qiskit/transpiler/passes/basis/basis_translator.py +84 -64
- qiskit/transpiler/passes/basis/translate_parameterized.py +3 -5
- qiskit/transpiler/passes/basis/unroll_3q_or_more.py +1 -1
- qiskit/transpiler/passes/basis/unroll_custom_definitions.py +10 -10
- qiskit/transpiler/passes/calibration/rx_builder.py +3 -3
- qiskit/transpiler/passes/calibration/rzx_builder.py +3 -3
- qiskit/transpiler/passes/layout/apply_layout.py +13 -3
- qiskit/transpiler/passes/layout/sabre_layout.py +10 -8
- qiskit/transpiler/passes/layout/sabre_pre_layout.py +4 -1
- qiskit/transpiler/passes/layout/set_layout.py +2 -2
- qiskit/transpiler/passes/layout/vf2_layout.py +1 -1
- qiskit/transpiler/passes/layout/vf2_utils.py +3 -3
- qiskit/transpiler/passes/optimization/__init__.py +1 -0
- qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py +2 -2
- qiskit/transpiler/passes/optimization/commutation_analysis.py +7 -10
- qiskit/transpiler/passes/optimization/commutative_cancellation.py +35 -19
- qiskit/transpiler/passes/optimization/consolidate_blocks.py +17 -8
- qiskit/transpiler/passes/optimization/inverse_cancellation.py +6 -6
- qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +64 -41
- qiskit/transpiler/passes/optimization/optimize_1q_gates.py +1 -1
- qiskit/transpiler/passes/optimization/split_2q_unitaries.py +83 -0
- qiskit/transpiler/passes/optimization/template_matching/backward_match.py +1 -1
- qiskit/transpiler/passes/optimization/template_matching/forward_match.py +2 -2
- qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +1 -1
- qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +3 -2
- qiskit/transpiler/passes/routing/commuting_2q_gate_routing/swap_strategy.py +1 -1
- qiskit/transpiler/passes/routing/layout_transformation.py +2 -1
- qiskit/transpiler/passes/routing/sabre_swap.py +35 -26
- qiskit/transpiler/passes/routing/star_prerouting.py +80 -105
- qiskit/transpiler/passes/routing/stochastic_swap.py +1 -3
- qiskit/transpiler/passes/scheduling/alap.py +1 -2
- qiskit/transpiler/passes/scheduling/alignments/__init__.py +2 -2
- qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -1
- qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +2 -2
- qiskit/transpiler/passes/scheduling/alignments/reschedule.py +1 -1
- qiskit/transpiler/passes/scheduling/asap.py +1 -2
- qiskit/transpiler/passes/scheduling/base_scheduler.py +5 -5
- qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +3 -3
- qiskit/transpiler/passes/scheduling/padding/base_padding.py +1 -1
- qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +20 -14
- qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +7 -6
- qiskit/transpiler/passes/scheduling/time_unit_conversion.py +4 -3
- qiskit/transpiler/passes/synthesis/high_level_synthesis.py +211 -36
- qiskit/transpiler/passes/synthesis/plugin.py +2 -2
- qiskit/transpiler/passes/synthesis/unitary_synthesis.py +80 -40
- qiskit/transpiler/passes/utils/__init__.py +0 -1
- qiskit/transpiler/passes/utils/check_gate_direction.py +4 -4
- qiskit/transpiler/passes/utils/check_map.py +3 -6
- qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +3 -4
- qiskit/transpiler/passes/utils/error.py +2 -2
- qiskit/transpiler/passes/utils/fixed_point.py +3 -3
- qiskit/transpiler/passes/utils/gate_direction.py +1 -1
- qiskit/transpiler/passes/utils/gates_basis.py +1 -2
- qiskit/transpiler/passmanager.py +7 -6
- qiskit/transpiler/preset_passmanagers/__init__.py +4 -228
- qiskit/transpiler/preset_passmanagers/builtin_plugins.py +73 -18
- qiskit/transpiler/preset_passmanagers/common.py +3 -6
- qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +518 -0
- qiskit/transpiler/preset_passmanagers/level0.py +1 -1
- qiskit/transpiler/target.py +27 -8
- qiskit/user_config.py +29 -6
- qiskit/utils/classtools.py +3 -3
- qiskit/utils/deprecation.py +3 -2
- qiskit/utils/lazy_tester.py +2 -2
- qiskit/utils/optionals.py +8 -8
- qiskit/visualization/bloch.py +18 -23
- qiskit/visualization/circuit/_utils.py +34 -10
- qiskit/visualization/circuit/circuit_visualization.py +23 -16
- qiskit/visualization/circuit/latex.py +29 -27
- qiskit/visualization/circuit/matplotlib.py +4 -2
- qiskit/visualization/circuit/qcstyle.py +2 -2
- qiskit/visualization/circuit/text.py +9 -15
- qiskit/visualization/dag_visualization.py +2 -2
- qiskit/visualization/pulse_v2/core.py +1 -1
- qiskit/visualization/pulse_v2/events.py +1 -1
- qiskit/visualization/pulse_v2/generators/frame.py +3 -4
- qiskit/visualization/pulse_v2/generators/waveform.py +5 -9
- qiskit/visualization/pulse_v2/layouts.py +1 -5
- qiskit/visualization/pulse_v2/plotters/matplotlib.py +1 -2
- qiskit/visualization/state_visualization.py +5 -6
- qiskit/visualization/timeline/plotters/matplotlib.py +1 -2
- qiskit/visualization/transition_visualization.py +7 -2
- {qiskit-1.1.2.dist-info → qiskit-1.2.0.dist-info}/METADATA +12 -12
- {qiskit-1.1.2.dist-info → qiskit-1.2.0.dist-info}/RECORD +342 -340
- {qiskit-1.1.2.dist-info → qiskit-1.2.0.dist-info}/entry_points.txt +3 -0
- qiskit/transpiler/passes/utils/block_to_matrix.py +0 -47
- {qiskit-1.1.2.dist-info → qiskit-1.2.0.dist-info}/LICENSE.txt +0 -0
- {qiskit-1.1.2.dist-info → qiskit-1.2.0.dist-info}/WHEEL +0 -0
- {qiskit-1.1.2.dist-info → qiskit-1.2.0.dist-info}/top_level.txt +0 -0
@@ -13,14 +13,14 @@
|
|
13
13
|
"""
|
14
14
|
Fake backend supporting OpenPulse.
|
15
15
|
"""
|
16
|
+
import warnings
|
16
17
|
|
17
|
-
from qiskit.providers.models import (
|
18
|
+
from qiskit.providers.models.backendconfiguration import (
|
18
19
|
GateConfig,
|
19
20
|
PulseBackendConfiguration,
|
20
|
-
PulseDefaults,
|
21
|
-
Command,
|
22
21
|
UchannelLO,
|
23
22
|
)
|
23
|
+
from qiskit.providers.models.pulsedefaults import PulseDefaults, Command
|
24
24
|
from qiskit.qobj import PulseQobjInstruction
|
25
25
|
|
26
26
|
from .fake_backend import FakeBackend
|
@@ -109,223 +109,231 @@ class FakeOpenPulse3Q(FakeBackend):
|
|
109
109
|
},
|
110
110
|
},
|
111
111
|
)
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
name="
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
name="
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
name="
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
name="
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
name="
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
name="
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
name="
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
name="
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
name="
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
112
|
+
with warnings.catch_warnings():
|
113
|
+
# The class PulseQobjInstruction is deprecated
|
114
|
+
warnings.filterwarnings("ignore", category=DeprecationWarning, module="qiskit")
|
115
|
+
self._defaults = PulseDefaults.from_dict(
|
116
|
+
{
|
117
|
+
"qubit_freq_est": [4.9, 5.0, 4.8],
|
118
|
+
"meas_freq_est": [6.5, 6.6, 6.4],
|
119
|
+
"buffer": 10,
|
120
|
+
"pulse_library": [
|
121
|
+
{"name": "x90p_d0", "samples": 2 * [0.1 + 0j]},
|
122
|
+
{"name": "x90p_d1", "samples": 2 * [0.1 + 0j]},
|
123
|
+
{"name": "x90p_d2", "samples": 2 * [0.1 + 0j]},
|
124
|
+
{"name": "x90m_d0", "samples": 2 * [-0.1 + 0j]},
|
125
|
+
{"name": "x90m_d1", "samples": 2 * [-0.1 + 0j]},
|
126
|
+
{"name": "x90m_d2", "samples": 2 * [-0.1 + 0j]},
|
127
|
+
{"name": "y90p_d0", "samples": 2 * [0.1j]},
|
128
|
+
{"name": "y90p_d1", "samples": 2 * [0.1j]},
|
129
|
+
{"name": "y90p_d2", "samples": 2 * [0.1j]},
|
130
|
+
{"name": "xp_d0", "samples": 2 * [0.2 + 0j]},
|
131
|
+
{"name": "ym_d0", "samples": 2 * [-0.2j]},
|
132
|
+
{"name": "xp_d1", "samples": 2 * [0.2 + 0j]},
|
133
|
+
{"name": "ym_d1", "samples": 2 * [-0.2j]},
|
134
|
+
{"name": "cr90p_u0", "samples": 9 * [0.1 + 0j]},
|
135
|
+
{"name": "cr90m_u0", "samples": 9 * [-0.1 + 0j]},
|
136
|
+
{"name": "cr90p_u1", "samples": 9 * [0.1 + 0j]},
|
137
|
+
{"name": "cr90m_u1", "samples": 9 * [-0.1 + 0j]},
|
138
|
+
{"name": "measure_m0", "samples": 10 * [0.1 + 0j]},
|
139
|
+
{"name": "measure_m1", "samples": 10 * [0.1 + 0j]},
|
140
|
+
{"name": "measure_m2", "samples": 10 * [0.1 + 0j]},
|
141
|
+
],
|
142
|
+
"cmd_def": [
|
143
|
+
Command.from_dict(
|
144
|
+
{
|
145
|
+
"name": "u1",
|
146
|
+
"qubits": [0],
|
147
|
+
"sequence": [
|
148
|
+
PulseQobjInstruction(
|
149
|
+
name="fc", ch="d0", t0=0, phase="-P0"
|
150
|
+
).to_dict()
|
151
|
+
],
|
152
|
+
}
|
153
|
+
).to_dict(),
|
154
|
+
Command.from_dict(
|
155
|
+
{
|
156
|
+
"name": "u1",
|
157
|
+
"qubits": [1],
|
158
|
+
"sequence": [
|
159
|
+
PulseQobjInstruction(
|
160
|
+
name="fc", ch="d1", t0=0, phase="-P0"
|
161
|
+
).to_dict()
|
162
|
+
],
|
163
|
+
}
|
164
|
+
).to_dict(),
|
165
|
+
Command.from_dict(
|
166
|
+
{
|
167
|
+
"name": "u1",
|
168
|
+
"qubits": [2],
|
169
|
+
"sequence": [
|
170
|
+
PulseQobjInstruction(
|
171
|
+
name="fc", ch="d2", t0=0, phase="-P0"
|
172
|
+
).to_dict()
|
173
|
+
],
|
174
|
+
}
|
175
|
+
).to_dict(),
|
176
|
+
Command.from_dict(
|
177
|
+
{
|
178
|
+
"name": "u2",
|
179
|
+
"qubits": [0],
|
180
|
+
"sequence": [
|
181
|
+
PulseQobjInstruction(
|
182
|
+
name="fc", ch="d0", t0=0, phase="-P1"
|
183
|
+
).to_dict(),
|
184
|
+
PulseQobjInstruction(name="y90p_d0", ch="d0", t0=0).to_dict(),
|
185
|
+
PulseQobjInstruction(
|
186
|
+
name="fc", ch="d0", t0=2, phase="-P0"
|
187
|
+
).to_dict(),
|
188
|
+
],
|
189
|
+
}
|
190
|
+
).to_dict(),
|
191
|
+
Command.from_dict(
|
192
|
+
{
|
193
|
+
"name": "u2",
|
194
|
+
"qubits": [1],
|
195
|
+
"sequence": [
|
196
|
+
PulseQobjInstruction(
|
197
|
+
name="fc", ch="d1", t0=0, phase="-P1"
|
198
|
+
).to_dict(),
|
199
|
+
PulseQobjInstruction(name="y90p_d1", ch="d1", t0=0).to_dict(),
|
200
|
+
PulseQobjInstruction(
|
201
|
+
name="fc", ch="d1", t0=2, phase="-P0"
|
202
|
+
).to_dict(),
|
203
|
+
],
|
204
|
+
}
|
205
|
+
).to_dict(),
|
206
|
+
Command.from_dict(
|
207
|
+
{
|
208
|
+
"name": "u2",
|
209
|
+
"qubits": [2],
|
210
|
+
"sequence": [
|
211
|
+
PulseQobjInstruction(
|
212
|
+
name="fc", ch="d2", t0=0, phase="-P1"
|
213
|
+
).to_dict(),
|
214
|
+
PulseQobjInstruction(name="y90p_d2", ch="d2", t0=0).to_dict(),
|
215
|
+
PulseQobjInstruction(
|
216
|
+
name="fc", ch="d2", t0=2, phase="-P0"
|
217
|
+
).to_dict(),
|
218
|
+
],
|
219
|
+
}
|
220
|
+
).to_dict(),
|
221
|
+
Command.from_dict(
|
222
|
+
{
|
223
|
+
"name": "u3",
|
224
|
+
"qubits": [0],
|
225
|
+
"sequence": [
|
226
|
+
PulseQobjInstruction(
|
227
|
+
name="fc", ch="d0", t0=0, phase="-P2"
|
228
|
+
).to_dict(),
|
229
|
+
PulseQobjInstruction(name="x90p_d0", ch="d0", t0=0).to_dict(),
|
230
|
+
PulseQobjInstruction(
|
231
|
+
name="fc", ch="d0", t0=2, phase="-P0"
|
232
|
+
).to_dict(),
|
233
|
+
PulseQobjInstruction(name="x90m_d0", ch="d0", t0=2).to_dict(),
|
234
|
+
PulseQobjInstruction(
|
235
|
+
name="fc", ch="d0", t0=4, phase="-P1"
|
236
|
+
).to_dict(),
|
237
|
+
],
|
238
|
+
}
|
239
|
+
).to_dict(),
|
240
|
+
Command.from_dict(
|
241
|
+
{
|
242
|
+
"name": "u3",
|
243
|
+
"qubits": [1],
|
244
|
+
"sequence": [
|
245
|
+
PulseQobjInstruction(
|
246
|
+
name="fc", ch="d1", t0=0, phase="-P2"
|
247
|
+
).to_dict(),
|
248
|
+
PulseQobjInstruction(name="x90p_d1", ch="d1", t0=0).to_dict(),
|
249
|
+
PulseQobjInstruction(
|
250
|
+
name="fc", ch="d1", t0=2, phase="-P0"
|
251
|
+
).to_dict(),
|
252
|
+
PulseQobjInstruction(name="x90m_d1", ch="d1", t0=2).to_dict(),
|
253
|
+
PulseQobjInstruction(
|
254
|
+
name="fc", ch="d1", t0=4, phase="-P1"
|
255
|
+
).to_dict(),
|
256
|
+
],
|
257
|
+
}
|
258
|
+
).to_dict(),
|
259
|
+
Command.from_dict(
|
260
|
+
{
|
261
|
+
"name": "u3",
|
262
|
+
"qubits": [2],
|
263
|
+
"sequence": [
|
264
|
+
PulseQobjInstruction(
|
265
|
+
name="fc", ch="d2", t0=0, phase="-P2"
|
266
|
+
).to_dict(),
|
267
|
+
PulseQobjInstruction(name="x90p_d2", ch="d2", t0=0).to_dict(),
|
268
|
+
PulseQobjInstruction(
|
269
|
+
name="fc", ch="d2", t0=2, phase="-P0"
|
270
|
+
).to_dict(),
|
271
|
+
PulseQobjInstruction(name="x90m_d2", ch="d2", t0=2).to_dict(),
|
272
|
+
PulseQobjInstruction(
|
273
|
+
name="fc", ch="d2", t0=4, phase="-P1"
|
274
|
+
).to_dict(),
|
275
|
+
],
|
276
|
+
}
|
277
|
+
).to_dict(),
|
278
|
+
Command.from_dict(
|
279
|
+
{
|
280
|
+
"name": "cx",
|
281
|
+
"qubits": [0, 1],
|
282
|
+
"sequence": [
|
283
|
+
PulseQobjInstruction(
|
284
|
+
name="fc", ch="d0", t0=0, phase=1.57
|
285
|
+
).to_dict(),
|
286
|
+
PulseQobjInstruction(name="ym_d0", ch="d0", t0=0).to_dict(),
|
287
|
+
PulseQobjInstruction(name="xp_d0", ch="d0", t0=11).to_dict(),
|
288
|
+
PulseQobjInstruction(name="x90p_d1", ch="d1", t0=0).to_dict(),
|
289
|
+
PulseQobjInstruction(name="cr90p_u0", ch="u0", t0=2).to_dict(),
|
290
|
+
PulseQobjInstruction(name="cr90m_u0", ch="u0", t0=13).to_dict(),
|
291
|
+
],
|
292
|
+
}
|
293
|
+
).to_dict(),
|
294
|
+
Command.from_dict(
|
295
|
+
{
|
296
|
+
"name": "cx",
|
297
|
+
"qubits": [1, 2],
|
298
|
+
"sequence": [
|
299
|
+
PulseQobjInstruction(
|
300
|
+
name="fc", ch="d1", t0=0, phase=1.57
|
301
|
+
).to_dict(),
|
302
|
+
PulseQobjInstruction(name="ym_d1", ch="d1", t0=0).to_dict(),
|
303
|
+
PulseQobjInstruction(name="xp_d1", ch="d1", t0=11).to_dict(),
|
304
|
+
PulseQobjInstruction(name="x90p_d2", ch="d2", t0=0).to_dict(),
|
305
|
+
PulseQobjInstruction(name="cr90p_u1", ch="u1", t0=2).to_dict(),
|
306
|
+
PulseQobjInstruction(name="cr90m_u1", ch="u1", t0=13).to_dict(),
|
307
|
+
],
|
308
|
+
}
|
309
|
+
).to_dict(),
|
310
|
+
Command.from_dict(
|
311
|
+
{
|
312
|
+
"name": "measure",
|
313
|
+
"qubits": [0, 1, 2],
|
314
|
+
"sequence": [
|
315
|
+
PulseQobjInstruction(
|
316
|
+
name="measure_m0", ch="m0", t0=0
|
317
|
+
).to_dict(),
|
318
|
+
PulseQobjInstruction(
|
319
|
+
name="measure_m1", ch="m1", t0=0
|
320
|
+
).to_dict(),
|
321
|
+
PulseQobjInstruction(
|
322
|
+
name="measure_m2", ch="m2", t0=0
|
323
|
+
).to_dict(),
|
324
|
+
PulseQobjInstruction(
|
325
|
+
name="acquire",
|
326
|
+
duration=10,
|
327
|
+
t0=0,
|
328
|
+
qubits=[0, 1, 2],
|
329
|
+
memory_slot=[0, 1, 2],
|
330
|
+
).to_dict(),
|
331
|
+
],
|
332
|
+
}
|
333
|
+
).to_dict(),
|
334
|
+
],
|
335
|
+
}
|
336
|
+
)
|
329
337
|
super().__init__(configuration)
|
330
338
|
|
331
339
|
def defaults(self): # pylint: disable=missing-function-docstring
|
@@ -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
|
@@ -16,9 +16,11 @@ Fake backend abstract class for mock backends.
|
|
16
16
|
|
17
17
|
import json
|
18
18
|
import os
|
19
|
+
import warnings
|
19
20
|
|
20
21
|
from qiskit.exceptions import QiskitError
|
21
|
-
from qiskit.providers.models import BackendProperties
|
22
|
+
from qiskit.providers.models.backendproperties import BackendProperties
|
23
|
+
from qiskit.providers.models.backendconfiguration import QasmBackendConfiguration
|
22
24
|
|
23
25
|
from .utils.json_decoder import (
|
24
26
|
decode_backend_configuration,
|
@@ -61,7 +63,10 @@ class FakeQasmBackend(FakeBackend):
|
|
61
63
|
raise QiskitError("No properties file has been defined")
|
62
64
|
props = self._load_json(self.props_filename)
|
63
65
|
decode_backend_properties(props)
|
64
|
-
|
66
|
+
with warnings.catch_warnings():
|
67
|
+
# This raises the BackendProperties deprecation warning internally
|
68
|
+
warnings.filterwarnings("ignore", category=DeprecationWarning, module="qiskit")
|
69
|
+
self._properties = BackendProperties.from_dict(props)
|
65
70
|
|
66
71
|
def _load_json(self, filename):
|
67
72
|
with open(os.path.join(self.dirname, filename)) as f_json:
|