qiskit 1.4.1__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 (462) 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 +11 -0
  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/circuit/tools/pi_check.py +3 -0
  104. qiskit/compiler/__init__.py +1 -7
  105. qiskit/compiler/transpiler.py +38 -196
  106. qiskit/converters/circuit_to_dag.py +6 -4
  107. qiskit/converters/circuit_to_dagdependency.py +0 -2
  108. qiskit/converters/circuit_to_dagdependency_v2.py +0 -1
  109. qiskit/converters/circuit_to_gate.py +1 -1
  110. qiskit/converters/circuit_to_instruction.py +16 -29
  111. qiskit/converters/dag_to_circuit.py +7 -8
  112. qiskit/converters/dag_to_dagdependency.py +0 -1
  113. qiskit/converters/dag_to_dagdependency_v2.py +0 -1
  114. qiskit/converters/dagdependency_to_circuit.py +0 -6
  115. qiskit/converters/dagdependency_to_dag.py +0 -6
  116. qiskit/dagcircuit/collect_blocks.py +32 -20
  117. qiskit/dagcircuit/dagdependency.py +3 -37
  118. qiskit/dagcircuit/dagdependency_v2.py +5 -82
  119. qiskit/dagcircuit/dagnode.py +14 -2
  120. qiskit/passmanager/__init__.py +24 -6
  121. qiskit/passmanager/passmanager.py +26 -24
  122. qiskit/primitives/__init__.py +44 -35
  123. qiskit/primitives/backend_estimator_v2.py +102 -23
  124. qiskit/primitives/backend_sampler_v2.py +5 -20
  125. qiskit/primitives/base/__init__.py +4 -4
  126. qiskit/primitives/base/base_estimator.py +77 -82
  127. qiskit/primitives/base/base_primitive_job.py +2 -2
  128. qiskit/primitives/base/{base_primitive.py → base_primitive_v1.py} +1 -1
  129. qiskit/primitives/base/{base_result.py → base_result_v1.py} +1 -1
  130. qiskit/primitives/base/base_sampler.py +52 -60
  131. qiskit/primitives/base/{estimator_result.py → estimator_result_v1.py} +2 -2
  132. qiskit/primitives/base/{sampler_result.py → sampler_result_v1.py} +2 -2
  133. qiskit/primitives/base/{validation.py → validation_v1.py} +34 -15
  134. qiskit/primitives/containers/bindings_array.py +3 -1
  135. qiskit/primitives/containers/bit_array.py +23 -0
  136. qiskit/primitives/containers/data_bin.py +3 -1
  137. qiskit/primitives/containers/observables_array.py +19 -2
  138. qiskit/primitives/statevector_sampler.py +6 -8
  139. qiskit/primitives/utils.py +14 -189
  140. qiskit/providers/__init__.py +4 -130
  141. qiskit/providers/backend.py +11 -314
  142. qiskit/providers/basic_provider/__init__.py +3 -1
  143. qiskit/providers/basic_provider/basic_provider.py +29 -9
  144. qiskit/providers/basic_provider/basic_simulator.py +158 -298
  145. qiskit/providers/exceptions.py +0 -33
  146. qiskit/providers/fake_provider/__init__.py +0 -37
  147. qiskit/providers/fake_provider/generic_backend_v2.py +32 -693
  148. qiskit/qasm2/__init__.py +21 -6
  149. qiskit/qasm2/export.py +2 -10
  150. qiskit/qasm2/parse.py +11 -25
  151. qiskit/qasm3/__init__.py +5 -1
  152. qiskit/qasm3/ast.py +44 -0
  153. qiskit/qasm3/exporter.py +65 -27
  154. qiskit/qasm3/printer.py +35 -4
  155. qiskit/qpy/__init__.py +162 -19
  156. qiskit/qpy/binary_io/__init__.py +0 -1
  157. qiskit/qpy/binary_io/circuits.py +96 -116
  158. qiskit/qpy/binary_io/parse_sympy_repr.py +121 -0
  159. qiskit/qpy/binary_io/schedules.py +61 -388
  160. qiskit/qpy/binary_io/value.py +159 -33
  161. qiskit/qpy/common.py +10 -7
  162. qiskit/qpy/formats.py +41 -0
  163. qiskit/qpy/interface.py +29 -62
  164. qiskit/qpy/type_keys.py +58 -221
  165. qiskit/quantum_info/analysis/distance.py +3 -1
  166. qiskit/quantum_info/operators/dihedral/dihedral.py +3 -1
  167. qiskit/quantum_info/operators/operator.py +6 -2
  168. qiskit/quantum_info/operators/symplectic/clifford.py +3 -1
  169. qiskit/quantum_info/operators/symplectic/pauli.py +4 -2
  170. qiskit/quantum_info/operators/symplectic/pauli_list.py +17 -5
  171. qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +40 -6
  172. qiskit/quantum_info/states/densitymatrix.py +16 -6
  173. qiskit/quantum_info/states/stabilizerstate.py +35 -4
  174. qiskit/quantum_info/states/statevector.py +16 -6
  175. qiskit/result/__init__.py +5 -17
  176. qiskit/result/models.py +18 -11
  177. qiskit/result/result.py +38 -134
  178. qiskit/result/sampled_expval.py +1 -2
  179. qiskit/result/utils.py +3 -4
  180. qiskit/synthesis/__init__.py +21 -1
  181. qiskit/synthesis/arithmetic/__init__.py +3 -1
  182. qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +1 -1
  183. qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +1 -1
  184. qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +2 -2
  185. qiskit/{providers/fake_provider/backends_v1/fake_20q → synthesis/arithmetic/comparators}/__init__.py +4 -6
  186. qiskit/synthesis/arithmetic/comparators/compare_2s.py +112 -0
  187. qiskit/synthesis/arithmetic/comparators/compare_greedy.py +66 -0
  188. qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +1 -1
  189. qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +1 -1
  190. qiskit/synthesis/arithmetic/weighted_sum.py +155 -0
  191. qiskit/{result/mitigation → synthesis/boolean}/__init__.py +2 -2
  192. qiskit/synthesis/boolean/boolean_expression.py +231 -0
  193. qiskit/synthesis/boolean/boolean_expression_synth.py +124 -0
  194. qiskit/synthesis/boolean/boolean_expression_visitor.py +96 -0
  195. qiskit/synthesis/discrete_basis/generate_basis_approximations.py +2 -0
  196. qiskit/synthesis/evolution/lie_trotter.py +10 -7
  197. qiskit/synthesis/evolution/product_formula.py +44 -35
  198. qiskit/synthesis/evolution/qdrift.py +17 -24
  199. qiskit/synthesis/evolution/suzuki_trotter.py +20 -27
  200. qiskit/synthesis/linear/linear_depth_lnn.py +6 -221
  201. qiskit/synthesis/linear_phase/cx_cz_depth_lnn.py +4 -205
  202. qiskit/synthesis/multi_controlled/__init__.py +1 -0
  203. qiskit/synthesis/multi_controlled/mcx_synthesis.py +5 -2
  204. qiskit/synthesis/multi_controlled/multi_control_rotation_gates.py +206 -0
  205. qiskit/synthesis/one_qubit/one_qubit_decompose.py +1 -1
  206. qiskit/synthesis/two_qubit/__init__.py +1 -0
  207. qiskit/synthesis/two_qubit/two_qubit_decompose.py +28 -145
  208. qiskit/transpiler/__init__.py +32 -232
  209. qiskit/transpiler/basepasses.py +20 -51
  210. qiskit/transpiler/layout.py +1 -1
  211. qiskit/transpiler/passes/__init__.py +4 -40
  212. qiskit/transpiler/passes/basis/basis_translator.py +5 -4
  213. qiskit/transpiler/passes/basis/decompose.py +1 -15
  214. qiskit/transpiler/passes/basis/unroll_3q_or_more.py +1 -5
  215. qiskit/transpiler/passes/basis/unroll_custom_definitions.py +3 -2
  216. qiskit/transpiler/passes/layout/apply_layout.py +4 -0
  217. qiskit/transpiler/passes/layout/dense_layout.py +2 -39
  218. qiskit/transpiler/passes/layout/full_ancilla_allocation.py +3 -4
  219. qiskit/transpiler/passes/layout/sabre_layout.py +7 -3
  220. qiskit/transpiler/passes/layout/vf2_layout.py +2 -20
  221. qiskit/transpiler/passes/layout/vf2_post_layout.py +60 -125
  222. qiskit/transpiler/passes/layout/vf2_utils.py +2 -26
  223. qiskit/transpiler/passes/optimization/__init__.py +2 -3
  224. qiskit/transpiler/passes/optimization/collect_and_collapse.py +2 -0
  225. qiskit/transpiler/passes/optimization/collect_cliffords.py +5 -0
  226. qiskit/transpiler/passes/optimization/collect_linear_functions.py +5 -0
  227. qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py +16 -1
  228. qiskit/transpiler/passes/optimization/commutation_analysis.py +3 -3
  229. qiskit/transpiler/passes/optimization/consolidate_blocks.py +41 -19
  230. qiskit/transpiler/passes/optimization/contract_idle_wires_in_control_flow.py +104 -0
  231. qiskit/transpiler/passes/optimization/light_cone.py +135 -0
  232. qiskit/transpiler/passes/optimization/optimize_1q_commutation.py +0 -1
  233. qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +18 -22
  234. qiskit/transpiler/passes/optimization/optimize_annotated.py +3 -2
  235. qiskit/transpiler/passes/optimization/remove_identity_equiv.py +6 -4
  236. qiskit/transpiler/passes/optimization/reset_after_measure_simplification.py +5 -2
  237. qiskit/transpiler/passes/optimization/split_2q_unitaries.py +26 -3
  238. qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +3 -2
  239. qiskit/transpiler/passes/routing/__init__.py +0 -1
  240. qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +3 -1
  241. qiskit/transpiler/passes/routing/sabre_swap.py +14 -6
  242. qiskit/transpiler/passes/routing/star_prerouting.py +1 -1
  243. qiskit/transpiler/passes/scheduling/__init__.py +1 -7
  244. qiskit/transpiler/passes/scheduling/alignments/__init__.py +2 -4
  245. qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -9
  246. qiskit/transpiler/passes/scheduling/alignments/reschedule.py +17 -16
  247. qiskit/transpiler/passes/scheduling/padding/base_padding.py +32 -4
  248. qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +25 -63
  249. qiskit/transpiler/passes/scheduling/padding/pad_delay.py +12 -4
  250. qiskit/transpiler/passes/scheduling/scheduling/alap.py +5 -39
  251. qiskit/transpiler/passes/scheduling/scheduling/asap.py +4 -35
  252. qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +10 -16
  253. qiskit/transpiler/passes/scheduling/time_unit_conversion.py +134 -62
  254. qiskit/transpiler/passes/synthesis/default_unitary_synth_plugin.py +653 -0
  255. qiskit/transpiler/passes/synthesis/high_level_synthesis.py +176 -601
  256. qiskit/transpiler/passes/synthesis/hls_plugins.py +294 -1
  257. qiskit/transpiler/passes/synthesis/plugin.py +4 -0
  258. qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +16 -10
  259. qiskit/transpiler/passes/synthesis/unitary_synthesis.py +34 -697
  260. qiskit/transpiler/passes/utils/__init__.py +0 -1
  261. qiskit/transpiler/passes/utils/check_gate_direction.py +13 -5
  262. qiskit/transpiler/passes/utils/control_flow.py +2 -6
  263. qiskit/transpiler/passes/utils/gate_direction.py +7 -0
  264. qiskit/transpiler/passes/utils/remove_final_measurements.py +40 -33
  265. qiskit/transpiler/passmanager.py +13 -0
  266. qiskit/transpiler/passmanager_config.py +5 -81
  267. qiskit/transpiler/preset_passmanagers/builtin_plugins.py +225 -344
  268. qiskit/transpiler/preset_passmanagers/common.py +140 -167
  269. qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +107 -322
  270. qiskit/transpiler/preset_passmanagers/level0.py +2 -11
  271. qiskit/transpiler/preset_passmanagers/level1.py +2 -14
  272. qiskit/transpiler/preset_passmanagers/level2.py +2 -12
  273. qiskit/transpiler/preset_passmanagers/level3.py +2 -11
  274. qiskit/transpiler/preset_passmanagers/plugin.py +5 -3
  275. qiskit/transpiler/target.py +78 -524
  276. qiskit/user_config.py +8 -4
  277. qiskit/utils/__init__.py +13 -12
  278. qiskit/utils/deprecation.py +4 -112
  279. qiskit/utils/optionals.py +11 -4
  280. qiskit/utils/parallel.py +214 -87
  281. qiskit/utils/units.py +4 -1
  282. qiskit/visualization/__init__.py +3 -7
  283. qiskit/visualization/array.py +4 -1
  284. qiskit/visualization/bloch.py +1 -1
  285. qiskit/visualization/circuit/_utils.py +19 -19
  286. qiskit/visualization/circuit/circuit_visualization.py +11 -4
  287. qiskit/visualization/circuit/matplotlib.py +13 -23
  288. qiskit/visualization/circuit/text.py +7 -3
  289. qiskit/visualization/counts_visualization.py +4 -0
  290. qiskit/visualization/dag_visualization.py +2 -1
  291. qiskit/visualization/gate_map.py +39 -154
  292. qiskit/visualization/library.py +4 -1
  293. qiskit/visualization/pass_manager_visualization.py +6 -2
  294. qiskit/visualization/state_visualization.py +19 -2
  295. qiskit/visualization/timeline/core.py +19 -13
  296. qiskit/visualization/timeline/interface.py +19 -18
  297. qiskit/visualization/timeline/plotters/matplotlib.py +4 -1
  298. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/METADATA +4 -3
  299. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/RECORD +303 -449
  300. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/WHEEL +2 -1
  301. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/entry_points.txt +8 -2
  302. qiskit/assembler/__init__.py +0 -42
  303. qiskit/assembler/assemble_circuits.py +0 -451
  304. qiskit/assembler/assemble_schedules.py +0 -367
  305. qiskit/assembler/disassemble.py +0 -310
  306. qiskit/assembler/run_config.py +0 -77
  307. qiskit/circuit/bit.py +0 -106
  308. qiskit/circuit/classicalfunction/__init__.py +0 -152
  309. qiskit/circuit/classicalfunction/boolean_expression.py +0 -138
  310. qiskit/circuit/classicalfunction/classical_element.py +0 -54
  311. qiskit/circuit/classicalfunction/classical_function_visitor.py +0 -155
  312. qiskit/circuit/classicalfunction/classicalfunction.py +0 -182
  313. qiskit/circuit/classicalfunction/exceptions.py +0 -41
  314. qiskit/circuit/classicalfunction/types.py +0 -18
  315. qiskit/circuit/classicalfunction/utils.py +0 -91
  316. qiskit/circuit/classicalregister.py +0 -57
  317. qiskit/circuit/library/standard_gates/multi_control_rotation_gates.py +0 -405
  318. qiskit/circuit/quantumregister.py +0 -75
  319. qiskit/circuit/register.py +0 -246
  320. qiskit/compiler/assembler.py +0 -689
  321. qiskit/compiler/scheduler.py +0 -109
  322. qiskit/compiler/sequencer.py +0 -71
  323. qiskit/primitives/backend_estimator.py +0 -486
  324. qiskit/primitives/backend_sampler.py +0 -222
  325. qiskit/primitives/estimator.py +0 -172
  326. qiskit/primitives/sampler.py +0 -162
  327. qiskit/providers/backend_compat.py +0 -507
  328. qiskit/providers/fake_provider/backends_v1/__init__.py +0 -22
  329. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/__init__.py +0 -18
  330. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/conf_washington.json +0 -1
  331. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/defs_washington.json +0 -1
  332. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/fake_127q_pulse_v1.py +0 -37
  333. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/props_washington.json +0 -1
  334. qiskit/providers/fake_provider/backends_v1/fake_20q/conf_singapore.json +0 -1
  335. qiskit/providers/fake_provider/backends_v1/fake_20q/fake_20q.py +0 -43
  336. qiskit/providers/fake_provider/backends_v1/fake_20q/props_singapore.json +0 -1
  337. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/__init__.py +0 -18
  338. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/conf_hanoi.json +0 -1
  339. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/defs_hanoi.json +0 -1
  340. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/fake_27q_pulse_v1.py +0 -50
  341. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/props_hanoi.json +0 -1
  342. qiskit/providers/fake_provider/backends_v1/fake_5q/__init__.py +0 -18
  343. qiskit/providers/fake_provider/backends_v1/fake_5q/conf_yorktown.json +0 -1
  344. qiskit/providers/fake_provider/backends_v1/fake_5q/fake_5q_v1.py +0 -41
  345. qiskit/providers/fake_provider/backends_v1/fake_5q/props_yorktown.json +0 -1
  346. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/__init__.py +0 -18
  347. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/conf_nairobi.json +0 -1
  348. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/defs_nairobi.json +0 -1
  349. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/fake_7q_pulse_v1.py +0 -44
  350. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/props_nairobi.json +0 -1
  351. qiskit/providers/fake_provider/fake_1q.py +0 -91
  352. qiskit/providers/fake_provider/fake_backend.py +0 -165
  353. qiskit/providers/fake_provider/fake_openpulse_2q.py +0 -391
  354. qiskit/providers/fake_provider/fake_openpulse_3q.py +0 -340
  355. qiskit/providers/fake_provider/fake_pulse_backend.py +0 -49
  356. qiskit/providers/fake_provider/fake_qasm_backend.py +0 -77
  357. qiskit/providers/fake_provider/utils/backend_converter.py +0 -150
  358. qiskit/providers/fake_provider/utils/json_decoder.py +0 -109
  359. qiskit/providers/models/__init__.py +0 -89
  360. qiskit/providers/models/backendconfiguration.py +0 -1040
  361. qiskit/providers/models/backendproperties.py +0 -535
  362. qiskit/providers/models/backendstatus.py +0 -104
  363. qiskit/providers/models/jobstatus.py +0 -77
  364. qiskit/providers/models/pulsedefaults.py +0 -305
  365. qiskit/providers/provider.py +0 -95
  366. qiskit/pulse/__init__.py +0 -158
  367. qiskit/pulse/builder.py +0 -2262
  368. qiskit/pulse/calibration_entries.py +0 -381
  369. qiskit/pulse/channels.py +0 -227
  370. qiskit/pulse/configuration.py +0 -245
  371. qiskit/pulse/exceptions.py +0 -45
  372. qiskit/pulse/filters.py +0 -309
  373. qiskit/pulse/instruction_schedule_map.py +0 -424
  374. qiskit/pulse/instructions/__init__.py +0 -67
  375. qiskit/pulse/instructions/acquire.py +0 -150
  376. qiskit/pulse/instructions/delay.py +0 -71
  377. qiskit/pulse/instructions/directives.py +0 -154
  378. qiskit/pulse/instructions/frequency.py +0 -135
  379. qiskit/pulse/instructions/instruction.py +0 -270
  380. qiskit/pulse/instructions/phase.py +0 -152
  381. qiskit/pulse/instructions/play.py +0 -99
  382. qiskit/pulse/instructions/reference.py +0 -100
  383. qiskit/pulse/instructions/snapshot.py +0 -82
  384. qiskit/pulse/library/__init__.py +0 -97
  385. qiskit/pulse/library/continuous.py +0 -430
  386. qiskit/pulse/library/pulse.py +0 -148
  387. qiskit/pulse/library/samplers/__init__.py +0 -15
  388. qiskit/pulse/library/samplers/decorators.py +0 -295
  389. qiskit/pulse/library/samplers/strategies.py +0 -71
  390. qiskit/pulse/library/symbolic_pulses.py +0 -1989
  391. qiskit/pulse/library/waveform.py +0 -136
  392. qiskit/pulse/macros.py +0 -262
  393. qiskit/pulse/parameter_manager.py +0 -445
  394. qiskit/pulse/parser.py +0 -314
  395. qiskit/pulse/reference_manager.py +0 -58
  396. qiskit/pulse/schedule.py +0 -1854
  397. qiskit/pulse/transforms/__init__.py +0 -106
  398. qiskit/pulse/transforms/alignments.py +0 -406
  399. qiskit/pulse/transforms/base_transforms.py +0 -71
  400. qiskit/pulse/transforms/canonicalization.py +0 -498
  401. qiskit/pulse/transforms/dag.py +0 -122
  402. qiskit/pulse/utils.py +0 -149
  403. qiskit/qobj/__init__.py +0 -75
  404. qiskit/qobj/common.py +0 -81
  405. qiskit/qobj/converters/__init__.py +0 -18
  406. qiskit/qobj/converters/lo_config.py +0 -177
  407. qiskit/qobj/converters/pulse_instruction.py +0 -897
  408. qiskit/qobj/pulse_qobj.py +0 -709
  409. qiskit/qobj/qasm_qobj.py +0 -708
  410. qiskit/qobj/utils.py +0 -46
  411. qiskit/result/mitigation/base_readout_mitigator.py +0 -79
  412. qiskit/result/mitigation/correlated_readout_mitigator.py +0 -277
  413. qiskit/result/mitigation/local_readout_mitigator.py +0 -328
  414. qiskit/result/mitigation/utils.py +0 -217
  415. qiskit/scheduler/__init__.py +0 -40
  416. qiskit/scheduler/config.py +0 -37
  417. qiskit/scheduler/lowering.py +0 -187
  418. qiskit/scheduler/methods/__init__.py +0 -15
  419. qiskit/scheduler/methods/basic.py +0 -140
  420. qiskit/scheduler/schedule_circuit.py +0 -69
  421. qiskit/scheduler/sequence.py +0 -104
  422. qiskit/transpiler/passes/calibration/__init__.py +0 -17
  423. qiskit/transpiler/passes/calibration/base_builder.py +0 -79
  424. qiskit/transpiler/passes/calibration/builders.py +0 -20
  425. qiskit/transpiler/passes/calibration/exceptions.py +0 -22
  426. qiskit/transpiler/passes/calibration/pulse_gate.py +0 -100
  427. qiskit/transpiler/passes/calibration/rx_builder.py +0 -164
  428. qiskit/transpiler/passes/calibration/rzx_builder.py +0 -411
  429. qiskit/transpiler/passes/calibration/rzx_templates.py +0 -58
  430. qiskit/transpiler/passes/optimization/cx_cancellation.py +0 -65
  431. qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +0 -162
  432. qiskit/transpiler/passes/optimization/normalize_rx_angle.py +0 -157
  433. qiskit/transpiler/passes/routing/stochastic_swap.py +0 -532
  434. qiskit/transpiler/passes/scheduling/alap.py +0 -153
  435. qiskit/transpiler/passes/scheduling/alignments/align_measures.py +0 -255
  436. qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +0 -107
  437. qiskit/transpiler/passes/scheduling/asap.py +0 -175
  438. qiskit/transpiler/passes/scheduling/base_scheduler.py +0 -310
  439. qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +0 -313
  440. qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +0 -93
  441. qiskit/utils/deprecate_pulse.py +0 -119
  442. qiskit/utils/multiprocessing.py +0 -56
  443. qiskit/visualization/pulse_v2/__init__.py +0 -21
  444. qiskit/visualization/pulse_v2/core.py +0 -901
  445. qiskit/visualization/pulse_v2/device_info.py +0 -173
  446. qiskit/visualization/pulse_v2/drawings.py +0 -253
  447. qiskit/visualization/pulse_v2/events.py +0 -254
  448. qiskit/visualization/pulse_v2/generators/__init__.py +0 -40
  449. qiskit/visualization/pulse_v2/generators/barrier.py +0 -76
  450. qiskit/visualization/pulse_v2/generators/chart.py +0 -208
  451. qiskit/visualization/pulse_v2/generators/frame.py +0 -436
  452. qiskit/visualization/pulse_v2/generators/snapshot.py +0 -133
  453. qiskit/visualization/pulse_v2/generators/waveform.py +0 -645
  454. qiskit/visualization/pulse_v2/interface.py +0 -459
  455. qiskit/visualization/pulse_v2/layouts.py +0 -387
  456. qiskit/visualization/pulse_v2/plotters/__init__.py +0 -17
  457. qiskit/visualization/pulse_v2/plotters/base_plotter.py +0 -53
  458. qiskit/visualization/pulse_v2/plotters/matplotlib.py +0 -201
  459. qiskit/visualization/pulse_v2/stylesheet.py +0 -312
  460. qiskit/visualization/pulse_v2/types.py +0 -242
  461. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info/licenses}/LICENSE.txt +0 -0
  462. {qiskit-1.4.1.dist-info → qiskit-2.0.0.dist-info}/top_level.txt +0 -0
@@ -1,312 +0,0 @@
1
- # This code is part of Qiskit.
2
- #
3
- # (C) Copyright IBM 2020.
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
- Stylesheet for pulse drawer.
15
-
16
- The stylesheet `QiskitPulseStyle` is initialized with the hard-corded default values in
17
- `default_style`. This instance is generated when the pulse drawer module is loaded so that
18
- every lower modules can access to the information.
19
-
20
- The `QiskitPulseStyle` is a wrapper class of python dictionary with the structured keys
21
- such as `formatter.color.fill_waveform_d` to represent a color code of the drive channel.
22
- This key representation and initialization framework are the imitative of
23
- `rcParams` of `matplotlib`. However, the `QiskitPulseStyle` is not compatible with the `rcParams`
24
- because the pulse stylesheet is heavily specialized to the context of the pulse program.
25
-
26
- The settings of stylesheet are broadly separated into `formatter`, `generator` and `layout`.
27
- The formatter is a nested dictionary of drawing parameters to control the appearance of
28
- each visualization element. This takes similar data structure to the `rcParams` of `matplotlib`.
29
- The generator is a list of callback functions that generates drawing objects from
30
- given program and device data. The layout is a callback function that determines
31
- the appearance of the output image.
32
- """
33
-
34
- from typing import Dict, Any, Mapping
35
- from qiskit.visualization.pulse_v2 import generators, layouts
36
-
37
-
38
- class QiskitPulseStyle(dict):
39
- """Stylesheet for pulse drawer."""
40
-
41
- def __init__(self):
42
- super().__init__()
43
- # to inform which stylesheet is applied. some plotter may not support specific style.
44
- self.stylesheet = None
45
- self.update(default_style())
46
-
47
- def update(self, __m: Mapping[str, Any], **kwargs) -> None:
48
- super().update(__m, **kwargs)
49
- for key, value in __m.items():
50
- self.__setitem__(key, value)
51
- self.stylesheet = __m.__class__.__name__
52
-
53
- @property
54
- def formatter(self):
55
- """Return formatter field of style dictionary."""
56
- sub_dict = {}
57
- for key, value in self.items():
58
- sub_keys = key.split(".")
59
- if sub_keys[0] == "formatter":
60
- sub_dict[".".join(sub_keys[1:])] = value
61
- return sub_dict
62
-
63
- @property
64
- def generator(self):
65
- """Return generator field of style dictionary."""
66
- sub_dict = {}
67
- for key, value in self.items():
68
- sub_keys = key.split(".")
69
- if sub_keys[0] == "generator":
70
- sub_dict[".".join(sub_keys[1:])] = value
71
- return sub_dict
72
-
73
- @property
74
- def layout(self):
75
- """Return layout field of style dictionary."""
76
- sub_dict = {}
77
- for key, value in self.items():
78
- sub_keys = key.split(".")
79
- if sub_keys[0] == "layout":
80
- sub_dict[".".join(sub_keys[1:])] = value
81
- return sub_dict
82
-
83
-
84
- class IQXStandard(dict):
85
- """Standard pulse stylesheet.
86
-
87
- - Generate stepwise waveform envelope with latex pulse names.
88
- - Apply phase modulation to waveforms.
89
- - Plot frame change symbol with formatted operand values.
90
- - Show chart name with scaling factor.
91
- - Show snapshot and barrier.
92
- - Do not show acquire channels.
93
- - Channels are sorted by index and control channels are added to the end.
94
- """
95
-
96
- def __init__(self, **kwargs):
97
- super().__init__()
98
- style = {
99
- "formatter.control.apply_phase_modulation": True,
100
- "formatter.control.show_snapshot_channel": True,
101
- "formatter.control.show_acquire_channel": False,
102
- "formatter.control.show_empty_channel": False,
103
- "formatter.control.auto_chart_scaling": True,
104
- "formatter.control.axis_break": True,
105
- "generator.waveform": [
106
- generators.gen_filled_waveform_stepwise,
107
- generators.gen_ibmq_latex_waveform_name,
108
- ],
109
- "generator.frame": [generators.gen_frame_symbol, generators.gen_formatted_frame_values],
110
- "generator.chart": [
111
- generators.gen_chart_name,
112
- generators.gen_baseline,
113
- generators.gen_channel_freqs,
114
- ],
115
- "generator.snapshot": [generators.gen_snapshot_symbol],
116
- "generator.barrier": [generators.gen_barrier],
117
- "layout.chart_channel_map": layouts.channel_index_grouped_sort_u,
118
- "layout.time_axis_map": layouts.time_map_in_ns,
119
- "layout.figure_title": layouts.detail_title,
120
- }
121
- style.update(**kwargs)
122
- self.update(style)
123
-
124
- def __repr__(self):
125
- return "Standard Pulse style sheet."
126
-
127
-
128
- class IQXSimple(dict):
129
- """Simple pulse stylesheet without channel notation.
130
-
131
- - Generate stepwise waveform envelope with latex pulse names.
132
- - Apply phase modulation to waveforms.
133
- - Do not show frame changes.
134
- - Show chart name.
135
- - Do not show snapshot and barrier.
136
- - Do not show acquire channels.
137
- - Channels are sorted by qubit index.
138
- """
139
-
140
- def __init__(self, **kwargs):
141
- super().__init__()
142
- style = {
143
- "formatter.general.fig_chart_height": 5,
144
- "formatter.control.apply_phase_modulation": True,
145
- "formatter.control.show_snapshot_channel": True,
146
- "formatter.control.show_acquire_channel": False,
147
- "formatter.control.show_empty_channel": False,
148
- "formatter.control.auto_chart_scaling": False,
149
- "formatter.control.axis_break": True,
150
- "generator.waveform": [
151
- generators.gen_filled_waveform_stepwise,
152
- generators.gen_ibmq_latex_waveform_name,
153
- ],
154
- "generator.frame": [],
155
- "generator.chart": [generators.gen_chart_name, generators.gen_baseline],
156
- "generator.snapshot": [],
157
- "generator.barrier": [],
158
- "layout.chart_channel_map": layouts.qubit_index_sort,
159
- "layout.time_axis_map": layouts.time_map_in_ns,
160
- "layout.figure_title": layouts.empty_title,
161
- }
162
- style.update(**kwargs)
163
- self.update(style)
164
-
165
- def __repr__(self):
166
- return "Simple pulse style sheet for publication."
167
-
168
-
169
- class IQXDebugging(dict):
170
- """Pulse stylesheet for pulse programmers. Show details of instructions.
171
-
172
- # TODO: add more generators
173
-
174
- - Generate stepwise waveform envelope with latex pulse names.
175
- - Generate annotation for waveform height.
176
- - Apply phase modulation to waveforms.
177
- - Plot frame change symbol with raw operand values.
178
- - Show chart name and channel frequency.
179
- - Show snapshot and barrier.
180
- - Show acquire channels.
181
- - Channels are sorted by index and control channels are added to the end.
182
- """
183
-
184
- def __init__(self, **kwargs):
185
- super().__init__()
186
- style = {
187
- "formatter.control.apply_phase_modulation": True,
188
- "formatter.control.show_snapshot_channel": True,
189
- "formatter.control.show_acquire_channel": True,
190
- "formatter.control.show_empty_channel": False,
191
- "formatter.control.auto_chart_scaling": True,
192
- "formatter.control.axis_break": True,
193
- "generator.waveform": [
194
- generators.gen_filled_waveform_stepwise,
195
- generators.gen_ibmq_latex_waveform_name,
196
- generators.gen_waveform_max_value,
197
- ],
198
- "generator.frame": [
199
- generators.gen_frame_symbol,
200
- generators.gen_raw_operand_values_compact,
201
- ],
202
- "generator.chart": [
203
- generators.gen_chart_name,
204
- generators.gen_baseline,
205
- generators.gen_channel_freqs,
206
- ],
207
- "generator.snapshot": [generators.gen_snapshot_symbol, generators.gen_snapshot_name],
208
- "generator.barrier": [generators.gen_barrier],
209
- "layout.chart_channel_map": layouts.channel_index_grouped_sort_u,
210
- "layout.time_axis_map": layouts.time_map_in_ns,
211
- "layout.figure_title": layouts.detail_title,
212
- }
213
- style.update(**kwargs)
214
- self.update(style)
215
-
216
- def __repr__(self):
217
- return "Pulse style sheet for pulse programmers."
218
-
219
-
220
- def default_style() -> Dict[str, Any]:
221
- """Define default values of the pulse stylesheet."""
222
- return {
223
- "formatter.general.fig_width": 13,
224
- "formatter.general.fig_chart_height": 1.5,
225
- "formatter.general.vertical_resolution": 1e-6,
226
- "formatter.general.max_scale": 100,
227
- "formatter.color.waveforms": {
228
- "W": ["#648fff", "#002999"],
229
- "D": ["#648fff", "#002999"],
230
- "U": ["#ffb000", "#994A00"],
231
- "M": ["#dc267f", "#760019"],
232
- "A": ["#dc267f", "#760019"],
233
- },
234
- "formatter.color.baseline": "#000000",
235
- "formatter.color.barrier": "#222222",
236
- "formatter.color.background": "#f2f3f4",
237
- "formatter.color.fig_title": "#000000",
238
- "formatter.color.annotate": "#222222",
239
- "formatter.color.frame_change": "#000000",
240
- "formatter.color.snapshot": "#000000",
241
- "formatter.color.axis_label": "#000000",
242
- "formatter.color.opaque_shape": ["#f2f3f4", "#000000"],
243
- "formatter.alpha.fill_waveform": 0.3,
244
- "formatter.alpha.baseline": 1.0,
245
- "formatter.alpha.barrier": 0.7,
246
- "formatter.alpha.opaque_shape": 0.7,
247
- "formatter.layer.fill_waveform": 2,
248
- "formatter.layer.baseline": 1,
249
- "formatter.layer.barrier": 1,
250
- "formatter.layer.annotate": 5,
251
- "formatter.layer.axis_label": 5,
252
- "formatter.layer.frame_change": 4,
253
- "formatter.layer.snapshot": 3,
254
- "formatter.layer.fig_title": 6,
255
- "formatter.margin.top": 0.5,
256
- "formatter.margin.bottom": 0.5,
257
- "formatter.margin.left_percent": 0.05,
258
- "formatter.margin.right_percent": 0.05,
259
- "formatter.margin.between_channel": 0.5,
260
- "formatter.label_offset.pulse_name": 0.3,
261
- "formatter.label_offset.chart_info": 0.3,
262
- "formatter.label_offset.frame_change": 0.3,
263
- "formatter.label_offset.snapshot": 0.3,
264
- "formatter.text_size.axis_label": 15,
265
- "formatter.text_size.annotate": 12,
266
- "formatter.text_size.frame_change": 20,
267
- "formatter.text_size.snapshot": 20,
268
- "formatter.text_size.fig_title": 15,
269
- "formatter.text_size.axis_break_symbol": 15,
270
- "formatter.line_width.fill_waveform": 0,
271
- "formatter.line_width.axis_break": 6,
272
- "formatter.line_width.baseline": 1,
273
- "formatter.line_width.barrier": 1,
274
- "formatter.line_width.opaque_shape": 1,
275
- "formatter.line_style.fill_waveform": "-",
276
- "formatter.line_style.baseline": "-",
277
- "formatter.line_style.barrier": ":",
278
- "formatter.line_style.opaque_shape": "--",
279
- "formatter.channel_scaling.drive": 1.0,
280
- "formatter.channel_scaling.control": 1.0,
281
- "formatter.channel_scaling.measure": 1.0,
282
- "formatter.channel_scaling.acquire": 1.0,
283
- "formatter.channel_scaling.pos_spacing": 0.1,
284
- "formatter.channel_scaling.neg_spacing": -0.1,
285
- "formatter.box_width.opaque_shape": 150,
286
- "formatter.box_height.opaque_shape": 0.5,
287
- "formatter.axis_break.length": 3000,
288
- "formatter.axis_break.max_length": 1000,
289
- "formatter.control.fill_waveform": True,
290
- "formatter.control.apply_phase_modulation": True,
291
- "formatter.control.show_snapshot_channel": True,
292
- "formatter.control.show_acquire_channel": True,
293
- "formatter.control.show_empty_channel": True,
294
- "formatter.control.auto_chart_scaling": True,
295
- "formatter.control.axis_break": True,
296
- "formatter.unicode_symbol.frame_change": "\u21BA",
297
- "formatter.unicode_symbol.snapshot": "\u21AF",
298
- "formatter.unicode_symbol.phase_parameter": "\u03b8",
299
- "formatter.unicode_symbol.freq_parameter": "f",
300
- "formatter.latex_symbol.frame_change": r"\circlearrowleft",
301
- "formatter.latex_symbol.snapshot": "",
302
- "formatter.latex_symbol.phase_parameter": r"\theta",
303
- "formatter.latex_symbol.freq_parameter": "f",
304
- "generator.waveform": [],
305
- "generator.frame": [],
306
- "generator.chart": [],
307
- "generator.snapshot": [],
308
- "generator.barrier": [],
309
- "layout.chart_channel_map": None,
310
- "layout.time_axis_map": None,
311
- "layout.figure_title": None,
312
- }
@@ -1,242 +0,0 @@
1
- # This code is part of Qiskit.
2
- #
3
- # (C) Copyright IBM 2020.
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
- # pylint: disable=invalid-name
14
-
15
- """
16
- Special data types.
17
- """
18
- from __future__ import annotations
19
-
20
- from enum import Enum
21
- from typing import NamedTuple, Union, Optional, NewType, Any, List
22
-
23
- import numpy as np
24
- from qiskit import pulse
25
-
26
-
27
- class PhaseFreqTuple(NamedTuple):
28
- phase: float
29
- freq: float
30
-
31
-
32
- PhaseFreqTuple.__doc__ = "Data to represent a set of frequency and phase values."
33
- PhaseFreqTuple.phase.__doc__ = "Phase value in rad."
34
- PhaseFreqTuple.freq.__doc__ = "Frequency value in Hz."
35
-
36
-
37
- PulseInstruction = NamedTuple(
38
- "InstructionTuple",
39
- [
40
- ("t0", int),
41
- ("dt", Union[float, None]),
42
- ("frame", PhaseFreqTuple),
43
- ("inst", Union[pulse.Instruction, List[pulse.Instruction]]),
44
- ("is_opaque", bool),
45
- ],
46
- )
47
- PulseInstruction.__doc__ = "Data to represent pulse instruction for visualization."
48
- PulseInstruction.t0.__doc__ = "A time when the instruction is issued."
49
- PulseInstruction.dt.__doc__ = "System cycle time."
50
- PulseInstruction.frame.__doc__ = "A reference frame to run instruction."
51
- PulseInstruction.inst.__doc__ = "Pulse instruction."
52
- PulseInstruction.is_opaque.__doc__ = "If there is any unbound parameters."
53
-
54
-
55
- BarrierInstruction = NamedTuple(
56
- "Barrier", [("t0", int), ("dt", Optional[float]), ("channels", List[pulse.channels.Channel])]
57
- )
58
- BarrierInstruction.__doc__ = "Data to represent special pulse instruction of barrier."
59
- BarrierInstruction.t0.__doc__ = "A time when the instruction is issued."
60
- BarrierInstruction.dt.__doc__ = "System cycle time."
61
- BarrierInstruction.channels.__doc__ = "A list of channel associated with this barrier."
62
-
63
-
64
- SnapshotInstruction = NamedTuple(
65
- "Snapshots", [("t0", int), ("dt", Optional[float]), ("inst", pulse.instructions.Snapshot)]
66
- )
67
- SnapshotInstruction.__doc__ = "Data to represent special pulse instruction of snapshot."
68
- SnapshotInstruction.t0.__doc__ = "A time when the instruction is issued."
69
- SnapshotInstruction.dt.__doc__ = "System cycle time."
70
- SnapshotInstruction.inst.__doc__ = "Snapshot instruction."
71
-
72
-
73
- class ChartAxis(NamedTuple):
74
- name: str
75
- channels: list[pulse.channels.Channel]
76
-
77
-
78
- ChartAxis.__doc__ = "Data to represent an axis information of chart."
79
- ChartAxis.name.__doc__ = "Name of chart."
80
- ChartAxis.channels.__doc__ = "Channels associated with chart."
81
-
82
-
83
- class ParsedInstruction(NamedTuple):
84
- xvals: np.ndarray
85
- yvals: np.ndarray
86
- meta: dict[str, Any]
87
-
88
-
89
- ParsedInstruction.__doc__ = "Data to represent a parsed pulse instruction for object generation."
90
- ParsedInstruction.xvals.__doc__ = "Numpy array of x axis data."
91
- ParsedInstruction.yvals.__doc__ = "Numpy array of y axis data."
92
- ParsedInstruction.meta.__doc__ = "Dictionary containing instruction details."
93
-
94
-
95
- class OpaqueShape(NamedTuple):
96
- duration: np.ndarray
97
- meta: dict[str, Any]
98
-
99
-
100
- OpaqueShape.__doc__ = "Data to represent a pulse instruction with parameterized shape."
101
- OpaqueShape.duration.__doc__ = "Duration of instruction."
102
- OpaqueShape.meta.__doc__ = "Dictionary containing instruction details."
103
-
104
-
105
- class HorizontalAxis(NamedTuple):
106
- window: tuple[int, int]
107
- axis_map: dict[float, float | str]
108
- axis_break_pos: list[int]
109
- label: str
110
-
111
-
112
- HorizontalAxis.__doc__ = "Data to represent configuration of horizontal axis."
113
- HorizontalAxis.window.__doc__ = "Left and right edge of graph."
114
- HorizontalAxis.axis_map.__doc__ = "Mapping of apparent coordinate system and actual location."
115
- HorizontalAxis.axis_break_pos.__doc__ = "Locations of axis break."
116
- HorizontalAxis.label.__doc__ = "Label of horizontal axis."
117
-
118
-
119
- class WaveformType(str, Enum):
120
- """
121
- Waveform data type.
122
-
123
- REAL: Assigned to objects that represent real part of waveform.
124
- IMAG: Assigned to objects that represent imaginary part of waveform.
125
- OPAQUE: Assigned to objects that represent waveform with unbound parameters.
126
- """
127
-
128
- REAL = "Waveform.Real"
129
- IMAG = "Waveform.Imag"
130
- OPAQUE = "Waveform.Opaque"
131
-
132
-
133
- class LabelType(str, Enum):
134
- """
135
- Label data type.
136
-
137
- PULSE_NAME: Assigned to objects that represent name of waveform.
138
- PULSE_INFO: Assigned to objects that represent extra info about waveform.
139
- OPAQUE_BOXTEXT: Assigned to objects that represent box text of opaque shapes.
140
- CH_NAME: Assigned to objects that represent name of channel.
141
- CH_SCALE: Assigned to objects that represent scaling factor of channel.
142
- FRAME: Assigned to objects that represent value of frame.
143
- SNAPSHOT: Assigned to objects that represent label of snapshot.
144
- """
145
-
146
- PULSE_NAME = "Label.Pulse.Name"
147
- PULSE_INFO = "Label.Pulse.Info"
148
- OPAQUE_BOXTEXT = "Label.Opaque.Boxtext"
149
- CH_NAME = "Label.Channel.Name"
150
- CH_INFO = "Label.Channel.Info"
151
- FRAME = "Label.Frame.Value"
152
- SNAPSHOT = "Label.Snapshot"
153
-
154
-
155
- class SymbolType(str, Enum):
156
- """
157
- Symbol data type.
158
-
159
- FRAME: Assigned to objects that represent symbol of frame.
160
- SNAPSHOT: Assigned to objects that represent symbol of snapshot.
161
- """
162
-
163
- FRAME = "Symbol.Frame"
164
- SNAPSHOT = "Symbol.Snapshot"
165
-
166
-
167
- class LineType(str, Enum):
168
- """
169
- Line data type.
170
-
171
- BASELINE: Assigned to objects that represent zero line of channel.
172
- BARRIER: Assigned to objects that represent barrier line.
173
- """
174
-
175
- BASELINE = "Line.Baseline"
176
- BARRIER = "Line.Barrier"
177
-
178
-
179
- class AbstractCoordinate(str, Enum):
180
- """Abstract coordinate that the exact value depends on the user preference.
181
-
182
- RIGHT: The horizontal coordinate at t0 shifted by the left margin.
183
- LEFT: The horizontal coordinate at tf shifted by the right margin.
184
- TOP: The vertical coordinate at the top of chart.
185
- BOTTOM: The vertical coordinate at the bottom of chart.
186
- """
187
-
188
- RIGHT = "RIGHT"
189
- LEFT = "LEFT"
190
- TOP = "TOP"
191
- BOTTOM = "BOTTOM"
192
-
193
-
194
- class DynamicString(str, Enum):
195
- """The string which is dynamically updated at the time of drawing.
196
-
197
- SCALE: A temporal value of chart scaling factor.
198
- """
199
-
200
- SCALE = "@scale"
201
-
202
-
203
- class WaveformChannel(pulse.channels.PulseChannel):
204
- """Dummy channel that doesn't belong to specific pulse channel."""
205
-
206
- prefix = "w"
207
-
208
- def __init__(self):
209
- """Create new waveform channel."""
210
- super().__init__(0)
211
-
212
-
213
- class Plotter(str, Enum):
214
- """Name of pulse plotter APIs.
215
-
216
- Mpl2D: Matplotlib plotter interface. Show charts in 2D canvas.
217
- """
218
-
219
- Mpl2D = "mpl2d"
220
-
221
-
222
- class TimeUnits(str, Enum):
223
- """Representation of time units.
224
-
225
- SYSTEM_CYCLE_TIME: System time dt.
226
- NANO_SEC: Nano seconds.
227
- """
228
-
229
- CYCLES = "dt"
230
- NS = "ns"
231
-
232
-
233
- # convenient type to represent union of drawing data
234
- # TODO: https://github.com/Qiskit/qiskit-terra/issues/9591
235
- # NewType means that a value of type Original cannot be used in places
236
- # where a value of type Derived is expected
237
- # (see https://docs.python.org/3/library/typing.html#newtype)
238
- # This breaks a lot of type checking.
239
- DataTypes = NewType("DataType", Union[WaveformType, LabelType, LineType, SymbolType])
240
-
241
- # convenient type to represent union of values to represent a coordinate
242
- Coordinate = NewType("Coordinate", Union[float, AbstractCoordinate])