qiskit 1.4.2__cp39-abi3-macosx_11_0_arm64.whl → 2.0.0__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 (459) hide show
  1. qiskit/VERSION.txt +1 -1
  2. qiskit/__init__.py +3 -9
  3. qiskit/_accelerate.abi3.so +0 -0
  4. qiskit/circuit/__init__.py +35 -10
  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 +236 -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 +469 -154
  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/graph_state.py +1 -0
  60. qiskit/circuit/library/hamiltonian_gate.py +1 -1
  61. qiskit/circuit/library/n_local/evolved_operator_ansatz.py +1 -1
  62. qiskit/circuit/library/n_local/n_local.py +1 -1
  63. qiskit/circuit/library/n_local/qaoa_ansatz.py +1 -1
  64. qiskit/circuit/library/overlap.py +2 -2
  65. qiskit/circuit/library/pauli_evolution.py +39 -24
  66. qiskit/circuit/library/phase_oracle.py +130 -51
  67. qiskit/circuit/library/standard_gates/__init__.py +0 -1
  68. qiskit/circuit/library/standard_gates/dcx.py +3 -4
  69. qiskit/circuit/library/standard_gates/ecr.py +3 -4
  70. qiskit/circuit/library/standard_gates/global_phase.py +5 -6
  71. qiskit/circuit/library/standard_gates/h.py +4 -9
  72. qiskit/circuit/library/standard_gates/i.py +2 -2
  73. qiskit/circuit/library/standard_gates/iswap.py +3 -4
  74. qiskit/circuit/library/standard_gates/p.py +15 -34
  75. qiskit/circuit/library/standard_gates/r.py +7 -10
  76. qiskit/circuit/library/standard_gates/rx.py +5 -15
  77. qiskit/circuit/library/standard_gates/rxx.py +3 -6
  78. qiskit/circuit/library/standard_gates/ry.py +5 -17
  79. qiskit/circuit/library/standard_gates/ryy.py +3 -6
  80. qiskit/circuit/library/standard_gates/rz.py +5 -17
  81. qiskit/circuit/library/standard_gates/rzx.py +3 -6
  82. qiskit/circuit/library/standard_gates/rzz.py +3 -6
  83. qiskit/circuit/library/standard_gates/s.py +6 -15
  84. qiskit/circuit/library/standard_gates/swap.py +4 -11
  85. qiskit/circuit/library/standard_gates/sx.py +7 -12
  86. qiskit/circuit/library/standard_gates/t.py +6 -7
  87. qiskit/circuit/library/standard_gates/u.py +2 -10
  88. qiskit/circuit/library/standard_gates/u1.py +5 -16
  89. qiskit/circuit/library/standard_gates/u2.py +2 -6
  90. qiskit/circuit/library/standard_gates/u3.py +3 -11
  91. qiskit/circuit/library/standard_gates/x.py +14 -62
  92. qiskit/circuit/library/standard_gates/xx_minus_yy.py +2 -5
  93. qiskit/circuit/library/standard_gates/xx_plus_yy.py +2 -5
  94. qiskit/circuit/library/standard_gates/y.py +4 -9
  95. qiskit/circuit/library/standard_gates/z.py +5 -15
  96. qiskit/circuit/measure.py +11 -2
  97. qiskit/circuit/parameterexpression.py +7 -1
  98. qiskit/circuit/quantumcircuit.py +890 -564
  99. qiskit/circuit/random/utils.py +12 -6
  100. qiskit/circuit/reset.py +5 -2
  101. qiskit/circuit/singleton.py +5 -11
  102. qiskit/circuit/store.py +0 -8
  103. qiskit/compiler/__init__.py +1 -7
  104. qiskit/compiler/transpiler.py +38 -196
  105. qiskit/converters/circuit_to_dag.py +6 -4
  106. qiskit/converters/circuit_to_dagdependency.py +0 -2
  107. qiskit/converters/circuit_to_dagdependency_v2.py +0 -1
  108. qiskit/converters/circuit_to_gate.py +1 -1
  109. qiskit/converters/circuit_to_instruction.py +16 -29
  110. qiskit/converters/dag_to_circuit.py +7 -8
  111. qiskit/converters/dag_to_dagdependency.py +0 -1
  112. qiskit/converters/dag_to_dagdependency_v2.py +0 -1
  113. qiskit/converters/dagdependency_to_circuit.py +0 -6
  114. qiskit/converters/dagdependency_to_dag.py +0 -6
  115. qiskit/dagcircuit/collect_blocks.py +32 -20
  116. qiskit/dagcircuit/dagdependency.py +3 -37
  117. qiskit/dagcircuit/dagdependency_v2.py +5 -82
  118. qiskit/dagcircuit/dagnode.py +14 -2
  119. qiskit/passmanager/__init__.py +24 -6
  120. qiskit/passmanager/passmanager.py +26 -24
  121. qiskit/primitives/__init__.py +44 -35
  122. qiskit/primitives/backend_estimator_v2.py +102 -23
  123. qiskit/primitives/backend_sampler_v2.py +5 -20
  124. qiskit/primitives/base/__init__.py +4 -4
  125. qiskit/primitives/base/base_estimator.py +77 -82
  126. qiskit/primitives/base/base_primitive_job.py +2 -2
  127. qiskit/primitives/base/{base_primitive.py → base_primitive_v1.py} +1 -1
  128. qiskit/primitives/base/{base_result.py → base_result_v1.py} +1 -1
  129. qiskit/primitives/base/base_sampler.py +52 -60
  130. qiskit/primitives/base/{estimator_result.py → estimator_result_v1.py} +2 -2
  131. qiskit/primitives/base/{sampler_result.py → sampler_result_v1.py} +2 -2
  132. qiskit/primitives/base/{validation.py → validation_v1.py} +34 -15
  133. qiskit/primitives/containers/bindings_array.py +3 -1
  134. qiskit/primitives/containers/bit_array.py +23 -0
  135. qiskit/primitives/containers/data_bin.py +3 -1
  136. qiskit/primitives/containers/observables_array.py +19 -2
  137. qiskit/primitives/statevector_sampler.py +6 -8
  138. qiskit/primitives/utils.py +14 -189
  139. qiskit/providers/__init__.py +4 -130
  140. qiskit/providers/backend.py +11 -314
  141. qiskit/providers/basic_provider/__init__.py +3 -1
  142. qiskit/providers/basic_provider/basic_provider.py +29 -9
  143. qiskit/providers/basic_provider/basic_simulator.py +158 -298
  144. qiskit/providers/exceptions.py +0 -33
  145. qiskit/providers/fake_provider/__init__.py +0 -37
  146. qiskit/providers/fake_provider/generic_backend_v2.py +32 -693
  147. qiskit/qasm2/__init__.py +21 -6
  148. qiskit/qasm2/export.py +2 -10
  149. qiskit/qasm2/parse.py +11 -25
  150. qiskit/qasm3/__init__.py +5 -1
  151. qiskit/qasm3/ast.py +44 -0
  152. qiskit/qasm3/exporter.py +65 -27
  153. qiskit/qasm3/printer.py +35 -4
  154. qiskit/qpy/__init__.py +162 -19
  155. qiskit/qpy/binary_io/__init__.py +0 -1
  156. qiskit/qpy/binary_io/circuits.py +98 -130
  157. qiskit/qpy/binary_io/schedules.py +69 -439
  158. qiskit/qpy/binary_io/value.py +154 -31
  159. qiskit/qpy/common.py +10 -7
  160. qiskit/qpy/formats.py +41 -0
  161. qiskit/qpy/interface.py +34 -81
  162. qiskit/qpy/type_keys.py +58 -221
  163. qiskit/quantum_info/analysis/distance.py +3 -1
  164. qiskit/quantum_info/operators/dihedral/dihedral.py +3 -1
  165. qiskit/quantum_info/operators/operator.py +6 -2
  166. qiskit/quantum_info/operators/symplectic/clifford.py +3 -1
  167. qiskit/quantum_info/operators/symplectic/pauli.py +4 -2
  168. qiskit/quantum_info/operators/symplectic/pauli_list.py +17 -5
  169. qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +40 -6
  170. qiskit/quantum_info/states/densitymatrix.py +16 -6
  171. qiskit/quantum_info/states/stabilizerstate.py +35 -4
  172. qiskit/quantum_info/states/statevector.py +16 -6
  173. qiskit/result/__init__.py +5 -17
  174. qiskit/result/models.py +18 -11
  175. qiskit/result/result.py +38 -134
  176. qiskit/result/sampled_expval.py +1 -2
  177. qiskit/result/utils.py +3 -4
  178. qiskit/synthesis/__init__.py +21 -1
  179. qiskit/synthesis/arithmetic/__init__.py +3 -1
  180. qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +1 -1
  181. qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +1 -1
  182. qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +2 -2
  183. qiskit/{providers/fake_provider/backends_v1/fake_20q → synthesis/arithmetic/comparators}/__init__.py +4 -6
  184. qiskit/synthesis/arithmetic/comparators/compare_2s.py +112 -0
  185. qiskit/synthesis/arithmetic/comparators/compare_greedy.py +66 -0
  186. qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +1 -1
  187. qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +1 -1
  188. qiskit/synthesis/arithmetic/weighted_sum.py +155 -0
  189. qiskit/{result/mitigation → synthesis/boolean}/__init__.py +2 -2
  190. qiskit/synthesis/boolean/boolean_expression.py +231 -0
  191. qiskit/synthesis/boolean/boolean_expression_synth.py +124 -0
  192. qiskit/synthesis/boolean/boolean_expression_visitor.py +96 -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 +4 -40
  209. qiskit/transpiler/passes/basis/basis_translator.py +5 -4
  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 +3 -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 +2 -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 +32 -4
  245. qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +25 -63
  246. qiskit/transpiler/passes/scheduling/padding/pad_delay.py +12 -4
  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 +134 -62
  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 +107 -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 +78 -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/counts_visualization.py +4 -0
  287. qiskit/visualization/dag_visualization.py +2 -1
  288. qiskit/visualization/gate_map.py +39 -154
  289. qiskit/visualization/library.py +4 -1
  290. qiskit/visualization/pass_manager_visualization.py +6 -2
  291. qiskit/visualization/state_visualization.py +19 -2
  292. qiskit/visualization/timeline/core.py +19 -13
  293. qiskit/visualization/timeline/interface.py +19 -18
  294. qiskit/visualization/timeline/plotters/matplotlib.py +4 -1
  295. {qiskit-1.4.2.dist-info → qiskit-2.0.0.dist-info}/METADATA +4 -3
  296. {qiskit-1.4.2.dist-info → qiskit-2.0.0.dist-info}/RECORD +300 -447
  297. {qiskit-1.4.2.dist-info → qiskit-2.0.0.dist-info}/WHEEL +2 -1
  298. {qiskit-1.4.2.dist-info → qiskit-2.0.0.dist-info}/entry_points.txt +8 -2
  299. qiskit/assembler/__init__.py +0 -42
  300. qiskit/assembler/assemble_circuits.py +0 -451
  301. qiskit/assembler/assemble_schedules.py +0 -367
  302. qiskit/assembler/disassemble.py +0 -310
  303. qiskit/assembler/run_config.py +0 -77
  304. qiskit/circuit/bit.py +0 -106
  305. qiskit/circuit/classicalfunction/__init__.py +0 -152
  306. qiskit/circuit/classicalfunction/boolean_expression.py +0 -138
  307. qiskit/circuit/classicalfunction/classical_element.py +0 -54
  308. qiskit/circuit/classicalfunction/classical_function_visitor.py +0 -155
  309. qiskit/circuit/classicalfunction/classicalfunction.py +0 -182
  310. qiskit/circuit/classicalfunction/exceptions.py +0 -41
  311. qiskit/circuit/classicalfunction/types.py +0 -18
  312. qiskit/circuit/classicalfunction/utils.py +0 -91
  313. qiskit/circuit/classicalregister.py +0 -57
  314. qiskit/circuit/library/standard_gates/multi_control_rotation_gates.py +0 -405
  315. qiskit/circuit/quantumregister.py +0 -75
  316. qiskit/circuit/register.py +0 -246
  317. qiskit/compiler/assembler.py +0 -689
  318. qiskit/compiler/scheduler.py +0 -109
  319. qiskit/compiler/sequencer.py +0 -71
  320. qiskit/primitives/backend_estimator.py +0 -486
  321. qiskit/primitives/backend_sampler.py +0 -222
  322. qiskit/primitives/estimator.py +0 -172
  323. qiskit/primitives/sampler.py +0 -162
  324. qiskit/providers/backend_compat.py +0 -507
  325. qiskit/providers/fake_provider/backends_v1/__init__.py +0 -22
  326. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/__init__.py +0 -18
  327. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/conf_washington.json +0 -1
  328. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/defs_washington.json +0 -1
  329. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/fake_127q_pulse_v1.py +0 -37
  330. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/props_washington.json +0 -1
  331. qiskit/providers/fake_provider/backends_v1/fake_20q/conf_singapore.json +0 -1
  332. qiskit/providers/fake_provider/backends_v1/fake_20q/fake_20q.py +0 -43
  333. qiskit/providers/fake_provider/backends_v1/fake_20q/props_singapore.json +0 -1
  334. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/__init__.py +0 -18
  335. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/conf_hanoi.json +0 -1
  336. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/defs_hanoi.json +0 -1
  337. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/fake_27q_pulse_v1.py +0 -50
  338. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/props_hanoi.json +0 -1
  339. qiskit/providers/fake_provider/backends_v1/fake_5q/__init__.py +0 -18
  340. qiskit/providers/fake_provider/backends_v1/fake_5q/conf_yorktown.json +0 -1
  341. qiskit/providers/fake_provider/backends_v1/fake_5q/fake_5q_v1.py +0 -41
  342. qiskit/providers/fake_provider/backends_v1/fake_5q/props_yorktown.json +0 -1
  343. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/__init__.py +0 -18
  344. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/conf_nairobi.json +0 -1
  345. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/defs_nairobi.json +0 -1
  346. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/fake_7q_pulse_v1.py +0 -44
  347. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/props_nairobi.json +0 -1
  348. qiskit/providers/fake_provider/fake_1q.py +0 -91
  349. qiskit/providers/fake_provider/fake_backend.py +0 -165
  350. qiskit/providers/fake_provider/fake_openpulse_2q.py +0 -391
  351. qiskit/providers/fake_provider/fake_openpulse_3q.py +0 -340
  352. qiskit/providers/fake_provider/fake_pulse_backend.py +0 -49
  353. qiskit/providers/fake_provider/fake_qasm_backend.py +0 -77
  354. qiskit/providers/fake_provider/utils/backend_converter.py +0 -150
  355. qiskit/providers/fake_provider/utils/json_decoder.py +0 -109
  356. qiskit/providers/models/__init__.py +0 -89
  357. qiskit/providers/models/backendconfiguration.py +0 -1040
  358. qiskit/providers/models/backendproperties.py +0 -535
  359. qiskit/providers/models/backendstatus.py +0 -104
  360. qiskit/providers/models/jobstatus.py +0 -77
  361. qiskit/providers/models/pulsedefaults.py +0 -305
  362. qiskit/providers/provider.py +0 -95
  363. qiskit/pulse/__init__.py +0 -158
  364. qiskit/pulse/builder.py +0 -2262
  365. qiskit/pulse/calibration_entries.py +0 -381
  366. qiskit/pulse/channels.py +0 -227
  367. qiskit/pulse/configuration.py +0 -245
  368. qiskit/pulse/exceptions.py +0 -45
  369. qiskit/pulse/filters.py +0 -309
  370. qiskit/pulse/instruction_schedule_map.py +0 -424
  371. qiskit/pulse/instructions/__init__.py +0 -67
  372. qiskit/pulse/instructions/acquire.py +0 -150
  373. qiskit/pulse/instructions/delay.py +0 -71
  374. qiskit/pulse/instructions/directives.py +0 -154
  375. qiskit/pulse/instructions/frequency.py +0 -135
  376. qiskit/pulse/instructions/instruction.py +0 -270
  377. qiskit/pulse/instructions/phase.py +0 -152
  378. qiskit/pulse/instructions/play.py +0 -99
  379. qiskit/pulse/instructions/reference.py +0 -100
  380. qiskit/pulse/instructions/snapshot.py +0 -82
  381. qiskit/pulse/library/__init__.py +0 -97
  382. qiskit/pulse/library/continuous.py +0 -430
  383. qiskit/pulse/library/pulse.py +0 -148
  384. qiskit/pulse/library/samplers/__init__.py +0 -15
  385. qiskit/pulse/library/samplers/decorators.py +0 -295
  386. qiskit/pulse/library/samplers/strategies.py +0 -71
  387. qiskit/pulse/library/symbolic_pulses.py +0 -1989
  388. qiskit/pulse/library/waveform.py +0 -136
  389. qiskit/pulse/macros.py +0 -262
  390. qiskit/pulse/parameter_manager.py +0 -445
  391. qiskit/pulse/parser.py +0 -314
  392. qiskit/pulse/reference_manager.py +0 -58
  393. qiskit/pulse/schedule.py +0 -1854
  394. qiskit/pulse/transforms/__init__.py +0 -106
  395. qiskit/pulse/transforms/alignments.py +0 -406
  396. qiskit/pulse/transforms/base_transforms.py +0 -71
  397. qiskit/pulse/transforms/canonicalization.py +0 -498
  398. qiskit/pulse/transforms/dag.py +0 -122
  399. qiskit/pulse/utils.py +0 -149
  400. qiskit/qobj/__init__.py +0 -75
  401. qiskit/qobj/common.py +0 -81
  402. qiskit/qobj/converters/__init__.py +0 -18
  403. qiskit/qobj/converters/lo_config.py +0 -177
  404. qiskit/qobj/converters/pulse_instruction.py +0 -897
  405. qiskit/qobj/pulse_qobj.py +0 -709
  406. qiskit/qobj/qasm_qobj.py +0 -708
  407. qiskit/qobj/utils.py +0 -46
  408. qiskit/result/mitigation/base_readout_mitigator.py +0 -79
  409. qiskit/result/mitigation/correlated_readout_mitigator.py +0 -277
  410. qiskit/result/mitigation/local_readout_mitigator.py +0 -328
  411. qiskit/result/mitigation/utils.py +0 -217
  412. qiskit/scheduler/__init__.py +0 -40
  413. qiskit/scheduler/config.py +0 -37
  414. qiskit/scheduler/lowering.py +0 -187
  415. qiskit/scheduler/methods/__init__.py +0 -15
  416. qiskit/scheduler/methods/basic.py +0 -140
  417. qiskit/scheduler/schedule_circuit.py +0 -69
  418. qiskit/scheduler/sequence.py +0 -104
  419. qiskit/transpiler/passes/calibration/__init__.py +0 -17
  420. qiskit/transpiler/passes/calibration/base_builder.py +0 -79
  421. qiskit/transpiler/passes/calibration/builders.py +0 -20
  422. qiskit/transpiler/passes/calibration/exceptions.py +0 -22
  423. qiskit/transpiler/passes/calibration/pulse_gate.py +0 -100
  424. qiskit/transpiler/passes/calibration/rx_builder.py +0 -164
  425. qiskit/transpiler/passes/calibration/rzx_builder.py +0 -411
  426. qiskit/transpiler/passes/calibration/rzx_templates.py +0 -58
  427. qiskit/transpiler/passes/optimization/cx_cancellation.py +0 -65
  428. qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +0 -162
  429. qiskit/transpiler/passes/optimization/normalize_rx_angle.py +0 -157
  430. qiskit/transpiler/passes/routing/stochastic_swap.py +0 -532
  431. qiskit/transpiler/passes/scheduling/alap.py +0 -153
  432. qiskit/transpiler/passes/scheduling/alignments/align_measures.py +0 -255
  433. qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +0 -107
  434. qiskit/transpiler/passes/scheduling/asap.py +0 -175
  435. qiskit/transpiler/passes/scheduling/base_scheduler.py +0 -310
  436. qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +0 -313
  437. qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +0 -93
  438. qiskit/utils/deprecate_pulse.py +0 -119
  439. qiskit/utils/multiprocessing.py +0 -56
  440. qiskit/visualization/pulse_v2/__init__.py +0 -21
  441. qiskit/visualization/pulse_v2/core.py +0 -901
  442. qiskit/visualization/pulse_v2/device_info.py +0 -173
  443. qiskit/visualization/pulse_v2/drawings.py +0 -253
  444. qiskit/visualization/pulse_v2/events.py +0 -254
  445. qiskit/visualization/pulse_v2/generators/__init__.py +0 -40
  446. qiskit/visualization/pulse_v2/generators/barrier.py +0 -76
  447. qiskit/visualization/pulse_v2/generators/chart.py +0 -208
  448. qiskit/visualization/pulse_v2/generators/frame.py +0 -436
  449. qiskit/visualization/pulse_v2/generators/snapshot.py +0 -133
  450. qiskit/visualization/pulse_v2/generators/waveform.py +0 -645
  451. qiskit/visualization/pulse_v2/interface.py +0 -459
  452. qiskit/visualization/pulse_v2/layouts.py +0 -387
  453. qiskit/visualization/pulse_v2/plotters/__init__.py +0 -17
  454. qiskit/visualization/pulse_v2/plotters/base_plotter.py +0 -53
  455. qiskit/visualization/pulse_v2/plotters/matplotlib.py +0 -201
  456. qiskit/visualization/pulse_v2/stylesheet.py +0 -312
  457. qiskit/visualization/pulse_v2/types.py +0 -242
  458. {qiskit-1.4.2.dist-info → qiskit-2.0.0.dist-info/licenses}/LICENSE.txt +0 -0
  459. {qiskit-1.4.2.dist-info → qiskit-2.0.0.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