qiskit 1.4.1__cp39-abi3-macosx_11_0_arm64.whl → 2.0.0rc1__cp39-abi3-macosx_11_0_arm64.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.
Files changed (456) hide show
  1. qiskit/VERSION.txt +1 -1
  2. qiskit/__init__.py +2 -5
  3. qiskit/_accelerate.abi3.so +0 -0
  4. qiskit/circuit/__init__.py +24 -5
  5. qiskit/circuit/{add_control.py → _add_control.py} +32 -12
  6. qiskit/circuit/_classical_resource_map.py +5 -3
  7. qiskit/circuit/barrier.py +3 -7
  8. qiskit/circuit/classical/expr/__init__.py +31 -3
  9. qiskit/circuit/classical/expr/constructors.py +248 -28
  10. qiskit/circuit/classical/expr/expr.py +104 -3
  11. qiskit/circuit/classical/expr/visitors.py +75 -0
  12. qiskit/circuit/classical/types/__init__.py +12 -8
  13. qiskit/circuit/classical/types/ordering.py +14 -7
  14. qiskit/circuit/classical/types/types.py +36 -0
  15. qiskit/circuit/commutation_checker.py +34 -7
  16. qiskit/circuit/controlflow/__init__.py +32 -1
  17. qiskit/circuit/controlflow/_builder_utils.py +9 -5
  18. qiskit/circuit/controlflow/box.py +163 -0
  19. qiskit/circuit/controlflow/break_loop.py +1 -1
  20. qiskit/circuit/controlflow/builder.py +139 -39
  21. qiskit/circuit/controlflow/continue_loop.py +1 -3
  22. qiskit/circuit/controlflow/control_flow.py +10 -0
  23. qiskit/circuit/controlflow/for_loop.py +2 -1
  24. qiskit/circuit/controlflow/if_else.py +3 -16
  25. qiskit/circuit/controlflow/switch_case.py +2 -8
  26. qiskit/circuit/controlflow/while_loop.py +2 -7
  27. qiskit/circuit/controlledgate.py +2 -4
  28. qiskit/circuit/delay.py +40 -11
  29. qiskit/circuit/duration.py +0 -15
  30. qiskit/circuit/gate.py +2 -4
  31. qiskit/circuit/instruction.py +2 -141
  32. qiskit/circuit/instructionset.py +7 -54
  33. qiskit/circuit/library/__init__.py +34 -5
  34. qiskit/circuit/library/arithmetic/__init__.py +16 -10
  35. qiskit/circuit/library/arithmetic/adders/cdkm_ripple_carry_adder.py +1 -1
  36. qiskit/circuit/library/arithmetic/adders/draper_qft_adder.py +2 -2
  37. qiskit/circuit/library/arithmetic/adders/vbe_ripple_carry_adder.py +1 -1
  38. qiskit/circuit/library/arithmetic/exact_reciprocal.py +64 -21
  39. qiskit/circuit/library/arithmetic/integer_comparator.py +37 -80
  40. qiskit/circuit/library/arithmetic/linear_amplitude_function.py +169 -2
  41. qiskit/circuit/library/arithmetic/linear_pauli_rotations.py +59 -5
  42. qiskit/circuit/library/arithmetic/piecewise_chebyshev.py +154 -6
  43. qiskit/circuit/library/arithmetic/piecewise_linear_pauli_rotations.py +114 -4
  44. qiskit/circuit/library/arithmetic/piecewise_polynomial_pauli_rotations.py +191 -15
  45. qiskit/circuit/library/arithmetic/polynomial_pauli_rotations.py +93 -39
  46. qiskit/circuit/library/arithmetic/quadratic_form.py +168 -2
  47. qiskit/circuit/library/arithmetic/weighted_adder.py +73 -1
  48. qiskit/circuit/library/bit_flip_oracle.py +130 -0
  49. qiskit/circuit/library/blueprintcircuit.py +52 -16
  50. qiskit/circuit/library/data_preparation/initializer.py +1 -1
  51. qiskit/circuit/library/data_preparation/pauli_feature_map.py +4 -4
  52. qiskit/circuit/library/data_preparation/state_preparation.py +1 -1
  53. qiskit/circuit/library/generalized_gates/gms.py +1 -1
  54. qiskit/circuit/library/generalized_gates/isometry.py +1 -1
  55. qiskit/circuit/library/generalized_gates/pauli.py +1 -2
  56. qiskit/circuit/library/generalized_gates/uc.py +97 -7
  57. qiskit/circuit/library/generalized_gates/uc_pauli_rot.py +1 -1
  58. qiskit/circuit/library/generalized_gates/unitary.py +4 -2
  59. qiskit/circuit/library/hamiltonian_gate.py +1 -1
  60. qiskit/circuit/library/n_local/evolved_operator_ansatz.py +1 -1
  61. qiskit/circuit/library/n_local/n_local.py +1 -1
  62. qiskit/circuit/library/n_local/qaoa_ansatz.py +1 -1
  63. qiskit/circuit/library/overlap.py +2 -2
  64. qiskit/circuit/library/pauli_evolution.py +39 -24
  65. qiskit/circuit/library/phase_oracle.py +130 -51
  66. qiskit/circuit/library/standard_gates/__init__.py +0 -1
  67. qiskit/circuit/library/standard_gates/dcx.py +3 -4
  68. qiskit/circuit/library/standard_gates/ecr.py +3 -4
  69. qiskit/circuit/library/standard_gates/global_phase.py +5 -6
  70. qiskit/circuit/library/standard_gates/h.py +4 -9
  71. qiskit/circuit/library/standard_gates/i.py +2 -2
  72. qiskit/circuit/library/standard_gates/iswap.py +3 -4
  73. qiskit/circuit/library/standard_gates/p.py +15 -34
  74. qiskit/circuit/library/standard_gates/r.py +2 -6
  75. qiskit/circuit/library/standard_gates/rx.py +5 -15
  76. qiskit/circuit/library/standard_gates/rxx.py +3 -6
  77. qiskit/circuit/library/standard_gates/ry.py +5 -17
  78. qiskit/circuit/library/standard_gates/ryy.py +3 -6
  79. qiskit/circuit/library/standard_gates/rz.py +5 -17
  80. qiskit/circuit/library/standard_gates/rzx.py +3 -6
  81. qiskit/circuit/library/standard_gates/rzz.py +3 -6
  82. qiskit/circuit/library/standard_gates/s.py +6 -15
  83. qiskit/circuit/library/standard_gates/swap.py +4 -11
  84. qiskit/circuit/library/standard_gates/sx.py +7 -12
  85. qiskit/circuit/library/standard_gates/t.py +6 -7
  86. qiskit/circuit/library/standard_gates/u.py +2 -10
  87. qiskit/circuit/library/standard_gates/u1.py +5 -16
  88. qiskit/circuit/library/standard_gates/u2.py +2 -6
  89. qiskit/circuit/library/standard_gates/u3.py +3 -11
  90. qiskit/circuit/library/standard_gates/x.py +13 -60
  91. qiskit/circuit/library/standard_gates/xx_minus_yy.py +2 -5
  92. qiskit/circuit/library/standard_gates/xx_plus_yy.py +2 -5
  93. qiskit/circuit/library/standard_gates/y.py +4 -9
  94. qiskit/circuit/library/standard_gates/z.py +5 -15
  95. qiskit/circuit/measure.py +11 -2
  96. qiskit/circuit/parameterexpression.py +4 -0
  97. qiskit/circuit/quantumcircuit.py +881 -555
  98. qiskit/circuit/random/utils.py +12 -6
  99. qiskit/circuit/reset.py +5 -2
  100. qiskit/circuit/singleton.py +5 -11
  101. qiskit/circuit/store.py +0 -8
  102. qiskit/compiler/__init__.py +1 -7
  103. qiskit/compiler/transpiler.py +38 -196
  104. qiskit/converters/circuit_to_dag.py +4 -2
  105. qiskit/converters/circuit_to_dagdependency.py +0 -2
  106. qiskit/converters/circuit_to_dagdependency_v2.py +0 -1
  107. qiskit/converters/circuit_to_gate.py +1 -1
  108. qiskit/converters/circuit_to_instruction.py +16 -29
  109. qiskit/converters/dag_to_circuit.py +5 -5
  110. qiskit/converters/dag_to_dagdependency.py +0 -1
  111. qiskit/converters/dag_to_dagdependency_v2.py +0 -1
  112. qiskit/converters/dagdependency_to_circuit.py +0 -6
  113. qiskit/converters/dagdependency_to_dag.py +0 -6
  114. qiskit/dagcircuit/collect_blocks.py +32 -20
  115. qiskit/dagcircuit/dagdependency.py +3 -37
  116. qiskit/dagcircuit/dagdependency_v2.py +2 -80
  117. qiskit/dagcircuit/dagnode.py +14 -2
  118. qiskit/passmanager/__init__.py +24 -6
  119. qiskit/passmanager/passmanager.py +26 -24
  120. qiskit/primitives/__init__.py +44 -35
  121. qiskit/primitives/backend_estimator_v2.py +102 -23
  122. qiskit/primitives/backend_sampler_v2.py +5 -20
  123. qiskit/primitives/base/__init__.py +4 -4
  124. qiskit/primitives/base/base_estimator.py +77 -82
  125. qiskit/primitives/base/base_primitive_job.py +2 -2
  126. qiskit/primitives/base/{base_primitive.py → base_primitive_v1.py} +1 -1
  127. qiskit/primitives/base/{base_result.py → base_result_v1.py} +1 -1
  128. qiskit/primitives/base/base_sampler.py +52 -60
  129. qiskit/primitives/base/{estimator_result.py → estimator_result_v1.py} +2 -2
  130. qiskit/primitives/base/{sampler_result.py → sampler_result_v1.py} +2 -2
  131. qiskit/primitives/base/{validation.py → validation_v1.py} +34 -15
  132. qiskit/primitives/containers/bindings_array.py +3 -1
  133. qiskit/primitives/containers/bit_array.py +23 -0
  134. qiskit/primitives/containers/data_bin.py +3 -1
  135. qiskit/primitives/containers/observables_array.py +19 -2
  136. qiskit/primitives/statevector_sampler.py +6 -8
  137. qiskit/primitives/utils.py +14 -189
  138. qiskit/providers/__init__.py +4 -130
  139. qiskit/providers/backend.py +11 -314
  140. qiskit/providers/basic_provider/__init__.py +3 -1
  141. qiskit/providers/basic_provider/basic_provider.py +29 -9
  142. qiskit/providers/basic_provider/basic_simulator.py +158 -298
  143. qiskit/providers/exceptions.py +0 -33
  144. qiskit/providers/fake_provider/__init__.py +0 -37
  145. qiskit/providers/fake_provider/generic_backend_v2.py +32 -693
  146. qiskit/qasm2/__init__.py +21 -6
  147. qiskit/qasm2/export.py +2 -10
  148. qiskit/qasm2/parse.py +11 -25
  149. qiskit/qasm3/__init__.py +5 -1
  150. qiskit/qasm3/ast.py +44 -0
  151. qiskit/qasm3/exporter.py +65 -27
  152. qiskit/qasm3/printer.py +35 -4
  153. qiskit/qpy/__init__.py +141 -19
  154. qiskit/qpy/binary_io/__init__.py +0 -1
  155. qiskit/qpy/binary_io/circuits.py +91 -116
  156. qiskit/qpy/binary_io/schedules.py +61 -388
  157. qiskit/qpy/binary_io/value.py +154 -28
  158. qiskit/qpy/common.py +10 -7
  159. qiskit/qpy/formats.py +41 -0
  160. qiskit/qpy/interface.py +29 -62
  161. qiskit/qpy/type_keys.py +58 -221
  162. qiskit/quantum_info/analysis/distance.py +3 -1
  163. qiskit/quantum_info/operators/dihedral/dihedral.py +3 -1
  164. qiskit/quantum_info/operators/operator.py +6 -2
  165. qiskit/quantum_info/operators/symplectic/clifford.py +3 -1
  166. qiskit/quantum_info/operators/symplectic/pauli.py +4 -2
  167. qiskit/quantum_info/operators/symplectic/pauli_list.py +17 -5
  168. qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +40 -6
  169. qiskit/quantum_info/states/densitymatrix.py +16 -6
  170. qiskit/quantum_info/states/stabilizerstate.py +35 -4
  171. qiskit/quantum_info/states/statevector.py +16 -6
  172. qiskit/result/__init__.py +5 -17
  173. qiskit/result/models.py +18 -10
  174. qiskit/result/result.py +28 -126
  175. qiskit/result/sampled_expval.py +1 -2
  176. qiskit/result/utils.py +3 -4
  177. qiskit/synthesis/__init__.py +21 -1
  178. qiskit/synthesis/arithmetic/__init__.py +3 -1
  179. qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +1 -1
  180. qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +1 -1
  181. qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +2 -2
  182. qiskit/{providers/fake_provider/backends_v1/fake_20q → synthesis/arithmetic/comparators}/__init__.py +4 -6
  183. qiskit/synthesis/arithmetic/comparators/compare_2s.py +112 -0
  184. qiskit/synthesis/arithmetic/comparators/compare_greedy.py +66 -0
  185. qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +1 -1
  186. qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +1 -1
  187. qiskit/synthesis/arithmetic/weighted_sum.py +155 -0
  188. qiskit/{result/mitigation → synthesis/boolean}/__init__.py +2 -2
  189. qiskit/synthesis/boolean/boolean_expression.py +231 -0
  190. qiskit/synthesis/boolean/boolean_expression_synth.py +124 -0
  191. qiskit/synthesis/boolean/boolean_expression_visitor.py +96 -0
  192. qiskit/synthesis/discrete_basis/generate_basis_approximations.py +2 -0
  193. qiskit/synthesis/evolution/lie_trotter.py +10 -7
  194. qiskit/synthesis/evolution/product_formula.py +44 -35
  195. qiskit/synthesis/evolution/qdrift.py +17 -24
  196. qiskit/synthesis/evolution/suzuki_trotter.py +20 -27
  197. qiskit/synthesis/linear/linear_depth_lnn.py +6 -221
  198. qiskit/synthesis/linear_phase/cx_cz_depth_lnn.py +4 -205
  199. qiskit/synthesis/multi_controlled/__init__.py +1 -0
  200. qiskit/synthesis/multi_controlled/mcx_synthesis.py +5 -2
  201. qiskit/synthesis/multi_controlled/multi_control_rotation_gates.py +206 -0
  202. qiskit/synthesis/one_qubit/one_qubit_decompose.py +1 -1
  203. qiskit/synthesis/two_qubit/__init__.py +1 -0
  204. qiskit/synthesis/two_qubit/two_qubit_decompose.py +28 -145
  205. qiskit/transpiler/__init__.py +32 -232
  206. qiskit/transpiler/basepasses.py +20 -51
  207. qiskit/transpiler/layout.py +1 -1
  208. qiskit/transpiler/passes/__init__.py +2 -40
  209. qiskit/transpiler/passes/basis/basis_translator.py +4 -3
  210. qiskit/transpiler/passes/basis/decompose.py +1 -15
  211. qiskit/transpiler/passes/basis/unroll_3q_or_more.py +1 -5
  212. qiskit/transpiler/passes/basis/unroll_custom_definitions.py +3 -2
  213. qiskit/transpiler/passes/layout/apply_layout.py +4 -0
  214. qiskit/transpiler/passes/layout/dense_layout.py +2 -39
  215. qiskit/transpiler/passes/layout/full_ancilla_allocation.py +4 -4
  216. qiskit/transpiler/passes/layout/sabre_layout.py +7 -3
  217. qiskit/transpiler/passes/layout/vf2_layout.py +2 -20
  218. qiskit/transpiler/passes/layout/vf2_post_layout.py +60 -125
  219. qiskit/transpiler/passes/layout/vf2_utils.py +2 -26
  220. qiskit/transpiler/passes/optimization/__init__.py +1 -3
  221. qiskit/transpiler/passes/optimization/collect_and_collapse.py +2 -0
  222. qiskit/transpiler/passes/optimization/collect_cliffords.py +5 -0
  223. qiskit/transpiler/passes/optimization/collect_linear_functions.py +5 -0
  224. qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py +16 -1
  225. qiskit/transpiler/passes/optimization/commutation_analysis.py +3 -3
  226. qiskit/transpiler/passes/optimization/consolidate_blocks.py +41 -19
  227. qiskit/transpiler/passes/optimization/contract_idle_wires_in_control_flow.py +104 -0
  228. qiskit/transpiler/passes/optimization/light_cone.py +135 -0
  229. qiskit/transpiler/passes/optimization/optimize_1q_commutation.py +0 -1
  230. qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +18 -22
  231. qiskit/transpiler/passes/optimization/optimize_annotated.py +3 -2
  232. qiskit/transpiler/passes/optimization/remove_identity_equiv.py +6 -4
  233. qiskit/transpiler/passes/optimization/reset_after_measure_simplification.py +5 -2
  234. qiskit/transpiler/passes/optimization/split_2q_unitaries.py +26 -3
  235. qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +1 -0
  236. qiskit/transpiler/passes/routing/__init__.py +0 -1
  237. qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +3 -1
  238. qiskit/transpiler/passes/routing/sabre_swap.py +14 -6
  239. qiskit/transpiler/passes/routing/star_prerouting.py +1 -1
  240. qiskit/transpiler/passes/scheduling/__init__.py +1 -7
  241. qiskit/transpiler/passes/scheduling/alignments/__init__.py +2 -4
  242. qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -9
  243. qiskit/transpiler/passes/scheduling/alignments/reschedule.py +17 -16
  244. qiskit/transpiler/passes/scheduling/padding/base_padding.py +30 -2
  245. qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +20 -58
  246. qiskit/transpiler/passes/scheduling/padding/pad_delay.py +11 -3
  247. qiskit/transpiler/passes/scheduling/scheduling/alap.py +5 -39
  248. qiskit/transpiler/passes/scheduling/scheduling/asap.py +4 -35
  249. qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +10 -16
  250. qiskit/transpiler/passes/scheduling/time_unit_conversion.py +127 -59
  251. qiskit/transpiler/passes/synthesis/default_unitary_synth_plugin.py +653 -0
  252. qiskit/transpiler/passes/synthesis/high_level_synthesis.py +176 -601
  253. qiskit/transpiler/passes/synthesis/hls_plugins.py +294 -1
  254. qiskit/transpiler/passes/synthesis/plugin.py +4 -0
  255. qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +16 -10
  256. qiskit/transpiler/passes/synthesis/unitary_synthesis.py +34 -697
  257. qiskit/transpiler/passes/utils/__init__.py +0 -1
  258. qiskit/transpiler/passes/utils/check_gate_direction.py +13 -5
  259. qiskit/transpiler/passes/utils/control_flow.py +2 -6
  260. qiskit/transpiler/passes/utils/gate_direction.py +7 -0
  261. qiskit/transpiler/passes/utils/remove_final_measurements.py +40 -33
  262. qiskit/transpiler/passmanager.py +13 -0
  263. qiskit/transpiler/passmanager_config.py +5 -81
  264. qiskit/transpiler/preset_passmanagers/builtin_plugins.py +225 -344
  265. qiskit/transpiler/preset_passmanagers/common.py +140 -167
  266. qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +101 -322
  267. qiskit/transpiler/preset_passmanagers/level0.py +2 -11
  268. qiskit/transpiler/preset_passmanagers/level1.py +2 -14
  269. qiskit/transpiler/preset_passmanagers/level2.py +2 -12
  270. qiskit/transpiler/preset_passmanagers/level3.py +2 -11
  271. qiskit/transpiler/preset_passmanagers/plugin.py +5 -3
  272. qiskit/transpiler/target.py +67 -524
  273. qiskit/user_config.py +8 -4
  274. qiskit/utils/__init__.py +13 -12
  275. qiskit/utils/deprecation.py +4 -112
  276. qiskit/utils/optionals.py +11 -4
  277. qiskit/utils/parallel.py +214 -87
  278. qiskit/utils/units.py +4 -1
  279. qiskit/visualization/__init__.py +3 -7
  280. qiskit/visualization/array.py +4 -1
  281. qiskit/visualization/bloch.py +1 -1
  282. qiskit/visualization/circuit/_utils.py +19 -19
  283. qiskit/visualization/circuit/circuit_visualization.py +11 -4
  284. qiskit/visualization/circuit/matplotlib.py +13 -23
  285. qiskit/visualization/circuit/text.py +7 -3
  286. qiskit/visualization/dag_visualization.py +2 -1
  287. qiskit/visualization/gate_map.py +39 -154
  288. qiskit/visualization/pass_manager_visualization.py +6 -2
  289. qiskit/visualization/state_visualization.py +6 -0
  290. qiskit/visualization/timeline/core.py +18 -12
  291. qiskit/visualization/timeline/interface.py +19 -18
  292. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/METADATA +2 -2
  293. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/RECORD +297 -444
  294. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/WHEEL +2 -1
  295. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/entry_points.txt +8 -2
  296. qiskit/assembler/__init__.py +0 -42
  297. qiskit/assembler/assemble_circuits.py +0 -451
  298. qiskit/assembler/assemble_schedules.py +0 -367
  299. qiskit/assembler/disassemble.py +0 -310
  300. qiskit/assembler/run_config.py +0 -77
  301. qiskit/circuit/bit.py +0 -106
  302. qiskit/circuit/classicalfunction/__init__.py +0 -152
  303. qiskit/circuit/classicalfunction/boolean_expression.py +0 -138
  304. qiskit/circuit/classicalfunction/classical_element.py +0 -54
  305. qiskit/circuit/classicalfunction/classical_function_visitor.py +0 -155
  306. qiskit/circuit/classicalfunction/classicalfunction.py +0 -182
  307. qiskit/circuit/classicalfunction/exceptions.py +0 -41
  308. qiskit/circuit/classicalfunction/types.py +0 -18
  309. qiskit/circuit/classicalfunction/utils.py +0 -91
  310. qiskit/circuit/classicalregister.py +0 -57
  311. qiskit/circuit/library/standard_gates/multi_control_rotation_gates.py +0 -405
  312. qiskit/circuit/quantumregister.py +0 -75
  313. qiskit/circuit/register.py +0 -246
  314. qiskit/compiler/assembler.py +0 -689
  315. qiskit/compiler/scheduler.py +0 -109
  316. qiskit/compiler/sequencer.py +0 -71
  317. qiskit/primitives/backend_estimator.py +0 -486
  318. qiskit/primitives/backend_sampler.py +0 -222
  319. qiskit/primitives/estimator.py +0 -172
  320. qiskit/primitives/sampler.py +0 -162
  321. qiskit/providers/backend_compat.py +0 -507
  322. qiskit/providers/fake_provider/backends_v1/__init__.py +0 -22
  323. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/__init__.py +0 -18
  324. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/conf_washington.json +0 -1
  325. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/defs_washington.json +0 -1
  326. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/fake_127q_pulse_v1.py +0 -37
  327. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/props_washington.json +0 -1
  328. qiskit/providers/fake_provider/backends_v1/fake_20q/conf_singapore.json +0 -1
  329. qiskit/providers/fake_provider/backends_v1/fake_20q/fake_20q.py +0 -43
  330. qiskit/providers/fake_provider/backends_v1/fake_20q/props_singapore.json +0 -1
  331. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/__init__.py +0 -18
  332. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/conf_hanoi.json +0 -1
  333. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/defs_hanoi.json +0 -1
  334. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/fake_27q_pulse_v1.py +0 -50
  335. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/props_hanoi.json +0 -1
  336. qiskit/providers/fake_provider/backends_v1/fake_5q/__init__.py +0 -18
  337. qiskit/providers/fake_provider/backends_v1/fake_5q/conf_yorktown.json +0 -1
  338. qiskit/providers/fake_provider/backends_v1/fake_5q/fake_5q_v1.py +0 -41
  339. qiskit/providers/fake_provider/backends_v1/fake_5q/props_yorktown.json +0 -1
  340. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/__init__.py +0 -18
  341. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/conf_nairobi.json +0 -1
  342. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/defs_nairobi.json +0 -1
  343. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/fake_7q_pulse_v1.py +0 -44
  344. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/props_nairobi.json +0 -1
  345. qiskit/providers/fake_provider/fake_1q.py +0 -91
  346. qiskit/providers/fake_provider/fake_backend.py +0 -165
  347. qiskit/providers/fake_provider/fake_openpulse_2q.py +0 -391
  348. qiskit/providers/fake_provider/fake_openpulse_3q.py +0 -340
  349. qiskit/providers/fake_provider/fake_pulse_backend.py +0 -49
  350. qiskit/providers/fake_provider/fake_qasm_backend.py +0 -77
  351. qiskit/providers/fake_provider/utils/backend_converter.py +0 -150
  352. qiskit/providers/fake_provider/utils/json_decoder.py +0 -109
  353. qiskit/providers/models/__init__.py +0 -89
  354. qiskit/providers/models/backendconfiguration.py +0 -1040
  355. qiskit/providers/models/backendproperties.py +0 -535
  356. qiskit/providers/models/backendstatus.py +0 -104
  357. qiskit/providers/models/jobstatus.py +0 -77
  358. qiskit/providers/models/pulsedefaults.py +0 -305
  359. qiskit/providers/provider.py +0 -95
  360. qiskit/pulse/__init__.py +0 -158
  361. qiskit/pulse/builder.py +0 -2262
  362. qiskit/pulse/calibration_entries.py +0 -381
  363. qiskit/pulse/channels.py +0 -227
  364. qiskit/pulse/configuration.py +0 -245
  365. qiskit/pulse/exceptions.py +0 -45
  366. qiskit/pulse/filters.py +0 -309
  367. qiskit/pulse/instruction_schedule_map.py +0 -424
  368. qiskit/pulse/instructions/__init__.py +0 -67
  369. qiskit/pulse/instructions/acquire.py +0 -150
  370. qiskit/pulse/instructions/delay.py +0 -71
  371. qiskit/pulse/instructions/directives.py +0 -154
  372. qiskit/pulse/instructions/frequency.py +0 -135
  373. qiskit/pulse/instructions/instruction.py +0 -270
  374. qiskit/pulse/instructions/phase.py +0 -152
  375. qiskit/pulse/instructions/play.py +0 -99
  376. qiskit/pulse/instructions/reference.py +0 -100
  377. qiskit/pulse/instructions/snapshot.py +0 -82
  378. qiskit/pulse/library/__init__.py +0 -97
  379. qiskit/pulse/library/continuous.py +0 -430
  380. qiskit/pulse/library/pulse.py +0 -148
  381. qiskit/pulse/library/samplers/__init__.py +0 -15
  382. qiskit/pulse/library/samplers/decorators.py +0 -295
  383. qiskit/pulse/library/samplers/strategies.py +0 -71
  384. qiskit/pulse/library/symbolic_pulses.py +0 -1989
  385. qiskit/pulse/library/waveform.py +0 -136
  386. qiskit/pulse/macros.py +0 -262
  387. qiskit/pulse/parameter_manager.py +0 -445
  388. qiskit/pulse/parser.py +0 -314
  389. qiskit/pulse/reference_manager.py +0 -58
  390. qiskit/pulse/schedule.py +0 -1854
  391. qiskit/pulse/transforms/__init__.py +0 -106
  392. qiskit/pulse/transforms/alignments.py +0 -406
  393. qiskit/pulse/transforms/base_transforms.py +0 -71
  394. qiskit/pulse/transforms/canonicalization.py +0 -498
  395. qiskit/pulse/transforms/dag.py +0 -122
  396. qiskit/pulse/utils.py +0 -149
  397. qiskit/qobj/__init__.py +0 -75
  398. qiskit/qobj/common.py +0 -81
  399. qiskit/qobj/converters/__init__.py +0 -18
  400. qiskit/qobj/converters/lo_config.py +0 -177
  401. qiskit/qobj/converters/pulse_instruction.py +0 -897
  402. qiskit/qobj/pulse_qobj.py +0 -709
  403. qiskit/qobj/qasm_qobj.py +0 -708
  404. qiskit/qobj/utils.py +0 -46
  405. qiskit/result/mitigation/base_readout_mitigator.py +0 -79
  406. qiskit/result/mitigation/correlated_readout_mitigator.py +0 -277
  407. qiskit/result/mitigation/local_readout_mitigator.py +0 -328
  408. qiskit/result/mitigation/utils.py +0 -217
  409. qiskit/scheduler/__init__.py +0 -40
  410. qiskit/scheduler/config.py +0 -37
  411. qiskit/scheduler/lowering.py +0 -187
  412. qiskit/scheduler/methods/__init__.py +0 -15
  413. qiskit/scheduler/methods/basic.py +0 -140
  414. qiskit/scheduler/schedule_circuit.py +0 -69
  415. qiskit/scheduler/sequence.py +0 -104
  416. qiskit/transpiler/passes/calibration/__init__.py +0 -17
  417. qiskit/transpiler/passes/calibration/base_builder.py +0 -79
  418. qiskit/transpiler/passes/calibration/builders.py +0 -20
  419. qiskit/transpiler/passes/calibration/exceptions.py +0 -22
  420. qiskit/transpiler/passes/calibration/pulse_gate.py +0 -100
  421. qiskit/transpiler/passes/calibration/rx_builder.py +0 -164
  422. qiskit/transpiler/passes/calibration/rzx_builder.py +0 -411
  423. qiskit/transpiler/passes/calibration/rzx_templates.py +0 -58
  424. qiskit/transpiler/passes/optimization/cx_cancellation.py +0 -65
  425. qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +0 -162
  426. qiskit/transpiler/passes/optimization/normalize_rx_angle.py +0 -157
  427. qiskit/transpiler/passes/routing/stochastic_swap.py +0 -532
  428. qiskit/transpiler/passes/scheduling/alap.py +0 -153
  429. qiskit/transpiler/passes/scheduling/alignments/align_measures.py +0 -255
  430. qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +0 -107
  431. qiskit/transpiler/passes/scheduling/asap.py +0 -175
  432. qiskit/transpiler/passes/scheduling/base_scheduler.py +0 -310
  433. qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +0 -313
  434. qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +0 -93
  435. qiskit/utils/deprecate_pulse.py +0 -119
  436. qiskit/utils/multiprocessing.py +0 -56
  437. qiskit/visualization/pulse_v2/__init__.py +0 -21
  438. qiskit/visualization/pulse_v2/core.py +0 -901
  439. qiskit/visualization/pulse_v2/device_info.py +0 -173
  440. qiskit/visualization/pulse_v2/drawings.py +0 -253
  441. qiskit/visualization/pulse_v2/events.py +0 -254
  442. qiskit/visualization/pulse_v2/generators/__init__.py +0 -40
  443. qiskit/visualization/pulse_v2/generators/barrier.py +0 -76
  444. qiskit/visualization/pulse_v2/generators/chart.py +0 -208
  445. qiskit/visualization/pulse_v2/generators/frame.py +0 -436
  446. qiskit/visualization/pulse_v2/generators/snapshot.py +0 -133
  447. qiskit/visualization/pulse_v2/generators/waveform.py +0 -645
  448. qiskit/visualization/pulse_v2/interface.py +0 -459
  449. qiskit/visualization/pulse_v2/layouts.py +0 -387
  450. qiskit/visualization/pulse_v2/plotters/__init__.py +0 -17
  451. qiskit/visualization/pulse_v2/plotters/base_plotter.py +0 -53
  452. qiskit/visualization/pulse_v2/plotters/matplotlib.py +0 -201
  453. qiskit/visualization/pulse_v2/stylesheet.py +0 -312
  454. qiskit/visualization/pulse_v2/types.py +0 -242
  455. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/LICENSE.txt +0 -0
  456. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -1,77 +0,0 @@
1
- # This code is part of Qiskit.
2
- #
3
- # (C) Copyright IBM 2017, 2018.
4
- #
5
- # This code is licensed under the Apache License, Version 2.0. You may
6
- # obtain a copy of this license in the LICENSE.txt file in the root directory
7
- # of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
8
- #
9
- # Any modifications or derivative works of this code must retain this
10
- # copyright notice, and modified files need to carry a notice indicating
11
- # that they have been altered from the originals.
12
-
13
- """Class for job status."""
14
-
15
- from qiskit.utils import deprecate_func
16
-
17
-
18
- class JobStatus:
19
- """Model for JobStatus.
20
-
21
- Attributes:
22
- job_id (str): backend job_id.
23
- status (str): status of the job.
24
- status_msg (str): status message.
25
- """
26
-
27
- _data = {}
28
-
29
- @deprecate_func(
30
- since="1.4",
31
- removal_timeline="in the 2.0 release",
32
- additional_msg="The models in ``qiskit.providers.models`` and related objects are part "
33
- "of the deprecated `BackendV1` workflow, and no longer necessary for `BackendV2`. If a user "
34
- "workflow requires these representations it likely relies on deprecated functionality and "
35
- "should be updated to use `BackendV2`.",
36
- stacklevel=2,
37
- )
38
- def __init__(self, job_id, status, status_msg, **kwargs):
39
- self._data = {}
40
- self.job_id = job_id
41
- self.status = status
42
- self.status_msg = status_msg
43
- self._data.update(kwargs)
44
-
45
- @classmethod
46
- def from_dict(cls, data):
47
- """Create a new JobStatus object from a dictionary.
48
-
49
- Args:
50
- data (dict): A dictionary representing the JobStatus to create.
51
- It will be in the same format as output by
52
- :meth:`to_dict`.
53
-
54
- Returns:
55
- JobStatus: The ``JobStatus`` from the input dictionary.
56
- """
57
- return cls(**data)
58
-
59
- def to_dict(self):
60
- """Return a dictionary format representation of the JobStatus.
61
-
62
- Returns:
63
- dict: The dictionary form of the JobStatus.
64
- """
65
- out_dict = {
66
- "job_id": self.job_id,
67
- "status": self.status,
68
- "status_msg": self.status_msg,
69
- }
70
- out_dict.update(self._data)
71
- return out_dict
72
-
73
- def __getattr__(self, name):
74
- try:
75
- return self._data[name]
76
- except KeyError as ex:
77
- raise AttributeError(f"Attribute {name} is not defined") from ex
@@ -1,305 +0,0 @@
1
- # This code is part of Qiskit.
2
- #
3
- # (C) Copyright IBM 2017, 2019.
4
- #
5
- # This code is licensed under the Apache License, Version 2.0. You may
6
- # obtain a copy of this license in the LICENSE.txt file in the root directory
7
- # of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
8
- #
9
- # Any modifications or derivative works of this code must retain this
10
- # copyright notice, and modified files need to carry a notice indicating
11
- # that they have been altered from the originals.
12
-
13
-
14
- """Model and schema for pulse defaults."""
15
- import warnings
16
- from typing import Any, Dict, List
17
-
18
- from qiskit.pulse.instruction_schedule_map import InstructionScheduleMap, PulseQobjDef
19
- from qiskit.qobj import PulseLibraryItem, PulseQobjInstruction
20
- from qiskit.qobj.converters import QobjToInstructionConverter
21
- from qiskit.utils.deprecate_pulse import deprecate_pulse_dependency
22
-
23
-
24
- class MeasurementKernel:
25
- """Class representing a Measurement Kernel."""
26
-
27
- def __init__(self, name, params):
28
- """Initialize a MeasurementKernel object
29
-
30
- Args:
31
- name (str): The name of the measurement kernel
32
- params: The parameters of the measurement kernel
33
- """
34
- self.name = name
35
- self.params = params
36
-
37
- def to_dict(self):
38
- """Return a dictionary format representation of the MeasurementKernel.
39
-
40
- Returns:
41
- dict: The dictionary form of the MeasurementKernel.
42
- """
43
- return {"name": self.name, "params": self.params}
44
-
45
- @classmethod
46
- def from_dict(cls, data):
47
- """Create a new MeasurementKernel object from a dictionary.
48
-
49
- Args:
50
- data (dict): A dictionary representing the MeasurementKernel
51
- to create. It will be in the same format as output by
52
- :meth:`to_dict`.
53
-
54
- Returns:
55
- MeasurementKernel: The MeasurementKernel from the input dictionary.
56
- """
57
- return cls(**data)
58
-
59
-
60
- class Discriminator:
61
- """Class representing a Discriminator."""
62
-
63
- def __init__(self, name, params):
64
- """Initialize a Discriminator object
65
-
66
- Args:
67
- name (str): The name of the discriminator
68
- params: The parameters of the discriminator
69
- """
70
- self.name = name
71
- self.params = params
72
-
73
- def to_dict(self):
74
- """Return a dictionary format representation of the Discriminator.
75
-
76
- Returns:
77
- dict: The dictionary form of the Discriminator.
78
- """
79
- return {"name": self.name, "params": self.params}
80
-
81
- @classmethod
82
- def from_dict(cls, data):
83
- """Create a new Discriminator object from a dictionary.
84
-
85
- Args:
86
- data (dict): A dictionary representing the Discriminator
87
- to create. It will be in the same format as output by
88
- :meth:`to_dict`.
89
-
90
- Returns:
91
- Discriminator: The Discriminator from the input dictionary.
92
- """
93
- return cls(**data)
94
-
95
-
96
- class Command:
97
- """Class representing a Command.
98
-
99
- Attributes:
100
- name: Pulse command name.
101
- """
102
-
103
- _data = {}
104
-
105
- def __init__(self, name: str, qubits=None, sequence=None, **kwargs):
106
- """Initialize a Command object
107
-
108
- Args:
109
- name (str): The name of the command
110
- qubits: The qubits for the command
111
- sequence (PulseQobjInstruction): The sequence for the Command
112
- kwargs: Optional additional fields
113
- """
114
- self._data = {}
115
- self.name = name
116
- if qubits is not None:
117
- self.qubits = qubits
118
- if sequence is not None:
119
- self.sequence = sequence
120
- self._data.update(kwargs)
121
-
122
- def __getattr__(self, name):
123
- try:
124
- return self._data[name]
125
- except KeyError as ex:
126
- raise AttributeError(f"Attribute {name} is not defined") from ex
127
-
128
- def to_dict(self):
129
- """Return a dictionary format representation of the Command.
130
-
131
- Returns:
132
- dict: The dictionary form of the Command.
133
- """
134
- out_dict = {"name": self.name}
135
- if hasattr(self, "qubits"):
136
- out_dict["qubits"] = self.qubits
137
- if hasattr(self, "sequence"):
138
- out_dict["sequence"] = [x.to_dict() for x in self.sequence]
139
- out_dict.update(self._data)
140
- return out_dict
141
-
142
- @classmethod
143
- def from_dict(cls, data):
144
- """Create a new Command object from a dictionary.
145
-
146
- Args:
147
- data (dict): A dictionary representing the ``Command``
148
- to create. It will be in the same format as output by
149
- :meth:`to_dict`.
150
-
151
- Returns:
152
- Command: The ``Command`` from the input dictionary.
153
- """
154
- # Pulse command data is nested dictionary.
155
- # To avoid deepcopy and avoid mutating the source object, create new dict here.
156
- in_data = {}
157
- for key, value in data.items():
158
- if key == "sequence":
159
- in_data[key] = list(map(PulseQobjInstruction.from_dict, value))
160
- else:
161
- in_data[key] = value
162
- return cls(**in_data)
163
-
164
-
165
- class PulseDefaults:
166
- """Description of default settings for Pulse systems. These are instructions or settings that
167
- may be good starting points for the Pulse user. The user may modify these defaults for custom
168
- scheduling.
169
- """
170
-
171
- _data = {}
172
-
173
- @deprecate_pulse_dependency
174
- def __init__(
175
- self,
176
- qubit_freq_est: List[float],
177
- meas_freq_est: List[float],
178
- buffer: int,
179
- pulse_library: List[PulseLibraryItem],
180
- cmd_def: List[Command],
181
- meas_kernel: MeasurementKernel = None,
182
- discriminator: Discriminator = None,
183
- **kwargs: Dict[str, Any],
184
- ):
185
- """
186
- Validate and reformat transport layer inputs to initialize.
187
- Args:
188
- qubit_freq_est: Estimated qubit frequencies in GHz.
189
- meas_freq_est: Estimated measurement cavity frequencies in GHz.
190
- buffer: Default buffer time (in units of dt) between pulses.
191
- pulse_library: Pulse name and sample definitions.
192
- cmd_def: Operation name and definition in terms of Commands.
193
- meas_kernel: The measurement kernels
194
- discriminator: The discriminators
195
- **kwargs: Other attributes for the super class.
196
- """
197
- self._data = {}
198
- self.buffer = buffer
199
- self.qubit_freq_est = [freq * 1e9 for freq in qubit_freq_est]
200
- """Qubit frequencies in Hertz."""
201
- self.meas_freq_est = [freq * 1e9 for freq in meas_freq_est]
202
- """Measurement frequencies in Hertz."""
203
- self.pulse_library = pulse_library
204
- self.cmd_def = cmd_def
205
- self.instruction_schedule_map = InstructionScheduleMap()
206
- self.converter = QobjToInstructionConverter(pulse_library)
207
-
208
- for inst in cmd_def:
209
- entry = PulseQobjDef(converter=self.converter, name=inst.name)
210
- entry.define(inst.sequence, user_provided=False)
211
- self.instruction_schedule_map._add(
212
- instruction_name=inst.name,
213
- qubits=tuple(inst.qubits),
214
- entry=entry,
215
- )
216
-
217
- if meas_kernel is not None:
218
- self.meas_kernel = meas_kernel
219
- if discriminator is not None:
220
- self.discriminator = discriminator
221
-
222
- self._data.update(kwargs)
223
-
224
- def __getattr__(self, name):
225
- try:
226
- return self._data[name]
227
- except KeyError as ex:
228
- raise AttributeError(f"Attribute {name} is not defined") from ex
229
-
230
- def to_dict(self):
231
- """Return a dictionary format representation of the PulseDefaults.
232
- Returns:
233
- dict: The dictionary form of the PulseDefaults.
234
- """
235
- out_dict = {
236
- "qubit_freq_est": self.qubit_freq_est,
237
- "meas_freq_est": self.qubit_freq_est,
238
- "buffer": self.buffer,
239
- "pulse_library": [x.to_dict() for x in self.pulse_library],
240
- "cmd_def": [x.to_dict() for x in self.cmd_def],
241
- }
242
- if hasattr(self, "meas_kernel"):
243
- out_dict["meas_kernel"] = self.meas_kernel.to_dict()
244
- if hasattr(self, "discriminator"):
245
- out_dict["discriminator"] = self.discriminator.to_dict()
246
- for key, value in self.__dict__.items():
247
- if key not in [
248
- "qubit_freq_est",
249
- "meas_freq_est",
250
- "buffer",
251
- "pulse_library",
252
- "cmd_def",
253
- "meas_kernel",
254
- "discriminator",
255
- "converter",
256
- "instruction_schedule_map",
257
- ]:
258
- out_dict[key] = value
259
- out_dict.update(self._data)
260
-
261
- out_dict["qubit_freq_est"] = [freq * 1e-9 for freq in self.qubit_freq_est]
262
- out_dict["meas_freq_est"] = [freq * 1e-9 for freq in self.meas_freq_est]
263
- return out_dict
264
-
265
- @classmethod
266
- def from_dict(cls, data):
267
- """Create a new PulseDefaults object from a dictionary.
268
-
269
- Args:
270
- data (dict): A dictionary representing the PulseDefaults
271
- to create. It will be in the same format as output by
272
- :meth:`to_dict`.
273
- Returns:
274
- PulseDefaults: The PulseDefaults from the input dictionary.
275
- """
276
- schema = {
277
- "pulse_library": PulseLibraryItem, # The class PulseLibraryItem is deprecated
278
- "cmd_def": Command,
279
- "meas_kernel": MeasurementKernel,
280
- "discriminator": Discriminator,
281
- }
282
-
283
- # Pulse defaults data is nested dictionary.
284
- # To avoid deepcopy and avoid mutating the source object, create new dict here.
285
- in_data = {}
286
- for key, value in data.items():
287
- if key in schema:
288
- with warnings.catch_warnings():
289
- # The class PulseLibraryItem is deprecated
290
- warnings.filterwarnings("ignore", category=DeprecationWarning, module="qiskit")
291
- if isinstance(value, list):
292
- in_data[key] = list(map(schema[key].from_dict, value))
293
- else:
294
- in_data[key] = schema[key].from_dict(value)
295
- else:
296
- in_data[key] = value
297
-
298
- return cls(**in_data)
299
-
300
- def __str__(self):
301
- qubit_freqs = [freq / 1e9 for freq in self.qubit_freq_est]
302
- meas_freqs = [freq / 1e9 for freq in self.meas_freq_est]
303
- qfreq = f"Qubit Frequencies [GHz]\n{qubit_freqs}"
304
- mfreq = f"Measurement Frequencies [GHz]\n{meas_freqs} "
305
- return f"<{self.__class__.__name__}({str(self.instruction_schedule_map)}{qfreq}\n{mfreq})>"
@@ -1,95 +0,0 @@
1
- # This code is part of Qiskit.
2
- #
3
- # (C) Copyright IBM 2017, 2023.
4
- #
5
- # This code is licensed under the Apache License, Version 2.0. You may
6
- # obtain a copy of this license in the LICENSE.txt file in the root directory
7
- # of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
8
- #
9
- # Any modifications or derivative works of this code must retain this
10
- # copyright notice, and modified files need to carry a notice indicating
11
- # that they have been altered from the originals.
12
-
13
- """Base class for a provider."""
14
-
15
- from abc import ABC, abstractmethod
16
-
17
- from qiskit.providers.exceptions import QiskitBackendNotFoundError
18
- from qiskit.utils import deprecate_func
19
-
20
-
21
- class Provider:
22
- """Base common type for all versioned Provider abstract classes.
23
-
24
- Note this class should not be inherited from directly, it is intended
25
- to be used for type checking. When implementing a provider you should use
26
- the versioned abstract classes as the parent class and not this class
27
- directly.
28
- """
29
-
30
- version = 0
31
-
32
- @deprecate_func(
33
- since=1.1,
34
- additional_msg="The abstract Provider and ProviderV1 classes are deprecated and will be "
35
- "removed in 2.0. You can just remove it as the parent class and a `get_backend` "
36
- "method that returns the backends from `self.backend`.",
37
- )
38
- def __init__(self):
39
- pass
40
-
41
-
42
- class ProviderV1(Provider, ABC):
43
- """Base class for a Backend Provider."""
44
-
45
- version = 1
46
-
47
- @deprecate_func(
48
- since=1.1,
49
- additional_msg="The abstract Provider and ProviderV1 classes are deprecated and will be "
50
- "removed in 2.0. You can just remove it as the parent class and a `get_backend` "
51
- "method that returns the backends from `self.backend`.",
52
- )
53
- def get_backend(self, name=None, **kwargs):
54
- """Return a single backend matching the specified filtering.
55
-
56
- Args:
57
- name (str): name of the backend.
58
- **kwargs: dict used for filtering.
59
-
60
- Returns:
61
- Backend: a backend matching the filtering.
62
-
63
- Raises:
64
- QiskitBackendNotFoundError: if no backend could be found or
65
- more than one backend matches the filtering criteria.
66
- """
67
- backends = self.backends(name, **kwargs)
68
- if len(backends) > 1:
69
- raise QiskitBackendNotFoundError("More than one backend matches the criteria")
70
- if not backends:
71
- raise QiskitBackendNotFoundError("No backend matches the criteria")
72
-
73
- return backends[0]
74
-
75
- @abstractmethod
76
- def backends(self, name=None, **kwargs):
77
- """Return a list of backends matching the specified filtering.
78
-
79
- Args:
80
- name (str): name of the backend.
81
- **kwargs: dict used for filtering.
82
-
83
- Returns:
84
- list[Backend]: a list of Backends that match the filtering
85
- criteria.
86
- """
87
- pass
88
-
89
- def __eq__(self, other):
90
- """Equality comparison.
91
-
92
- By default, it is assumed that two `Providers` from the same class are
93
- equal. Subclassed providers can override this behavior.
94
- """
95
- return type(self).__name__ == type(other).__name__
qiskit/pulse/__init__.py DELETED
@@ -1,158 +0,0 @@
1
- # This code is part of Qiskit.
2
- #
3
- # (C) Copyright IBM 2017, 2019.
4
- #
5
- # This code is licensed under the Apache License, Version 2.0. You may
6
- # obtain a copy of this license in the LICENSE.txt file in the root directory
7
- # of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.
8
- #
9
- # Any modifications or derivative works of this code must retain this
10
- # copyright notice, and modified files need to carry a notice indicating
11
- # that they have been altered from the originals.
12
-
13
- r"""
14
- ===========================
15
- Pulse (:mod:`qiskit.pulse`)
16
- ===========================
17
-
18
- .. currentmodule:: qiskit.pulse
19
-
20
- Qiskit-Pulse is a pulse-level quantum programming kit. This lower level of
21
- programming offers the user more control than programming with
22
- :py:class:`~qiskit.circuit.QuantumCircuit`\ s.
23
-
24
- Extracting the greatest performance from quantum hardware requires real-time
25
- pulse-level instructions. Pulse answers that need: it enables the quantum
26
- physicist *user* to specify the exact time dynamics of an experiment.
27
- It is especially powerful for error mitigation techniques.
28
-
29
- The input is given as arbitrary, time-ordered signals (see: :ref:`Instructions <pulse-insts>`)
30
- scheduled in parallel over multiple virtual hardware or simulator resources
31
- (see: :ref:`Channels <pulse-channels>`). The system also allows the user to recover the
32
- time dynamics of the measured output.
33
-
34
- This is sufficient to allow the quantum physicist to explore and correct for
35
- noise in a quantum system.
36
-
37
- .. automodule:: qiskit.pulse.instructions
38
- .. automodule:: qiskit.pulse.library
39
- .. automodule:: qiskit.pulse.channels
40
- .. automodule:: qiskit.pulse.schedule
41
- .. automodule:: qiskit.pulse.transforms
42
- .. automodule:: qiskit.pulse.builder
43
-
44
- .. currentmodule:: qiskit.pulse
45
-
46
- Configuration
47
- =============
48
-
49
- .. autosummary::
50
- :toctree: ../stubs/
51
-
52
- InstructionScheduleMap
53
-
54
- Exceptions
55
- ==========
56
-
57
- .. autoexception:: PulseError
58
- .. autoexception:: BackendNotSet
59
- .. autoexception:: NoActiveBuilder
60
- .. autoexception:: UnassignedDurationError
61
- .. autoexception:: UnassignedReferenceError
62
- """
63
-
64
- # Builder imports.
65
- from qiskit.pulse.builder import (
66
- # Construction methods.
67
- active_backend,
68
- build,
69
- num_qubits,
70
- qubit_channels,
71
- samples_to_seconds,
72
- seconds_to_samples,
73
- # Instructions.
74
- acquire,
75
- barrier,
76
- call,
77
- delay,
78
- play,
79
- reference,
80
- set_frequency,
81
- set_phase,
82
- shift_frequency,
83
- shift_phase,
84
- snapshot,
85
- # Channels.
86
- acquire_channel,
87
- control_channels,
88
- drive_channel,
89
- measure_channel,
90
- # Contexts.
91
- align_equispaced,
92
- align_func,
93
- align_left,
94
- align_right,
95
- align_sequential,
96
- frequency_offset,
97
- phase_offset,
98
- # Macros.
99
- macro,
100
- measure,
101
- measure_all,
102
- delay_qubits,
103
- )
104
- from qiskit.pulse.channels import (
105
- AcquireChannel,
106
- ControlChannel,
107
- DriveChannel,
108
- MeasureChannel,
109
- MemorySlot,
110
- RegisterSlot,
111
- SnapshotChannel,
112
- )
113
- from qiskit.pulse.configuration import (
114
- Discriminator,
115
- Kernel,
116
- LoConfig,
117
- LoRange,
118
- )
119
- from qiskit.pulse.exceptions import (
120
- PulseError,
121
- BackendNotSet,
122
- NoActiveBuilder,
123
- UnassignedDurationError,
124
- UnassignedReferenceError,
125
- )
126
- from qiskit.pulse.instruction_schedule_map import InstructionScheduleMap
127
- from qiskit.pulse.instructions import (
128
- Acquire,
129
- Delay,
130
- Instruction,
131
- Play,
132
- SetFrequency,
133
- SetPhase,
134
- ShiftFrequency,
135
- ShiftPhase,
136
- Snapshot,
137
- )
138
- from qiskit.pulse.library import (
139
- Constant,
140
- Drag,
141
- Gaussian,
142
- GaussianSquare,
143
- GaussianSquareDrag,
144
- gaussian_square_echo,
145
- Sin,
146
- Cos,
147
- Sawtooth,
148
- Triangle,
149
- Square,
150
- GaussianDeriv,
151
- Sech,
152
- SechDeriv,
153
- SymbolicPulse,
154
- ScalableSymbolicPulse,
155
- Waveform,
156
- )
157
- from qiskit.pulse.library.samplers.decorators import functional_pulse
158
- from qiskit.pulse.schedule import Schedule, ScheduleBlock