qiskit 1.4.1__cp39-abi3-win_amd64.whl → 2.0.0rc1__cp39-abi3-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. qiskit/VERSION.txt +1 -1
  2. qiskit/__init__.py +2 -5
  3. qiskit/_accelerate.pyd +0 -0
  4. qiskit/circuit/__init__.py +24 -5
  5. qiskit/circuit/{add_control.py → _add_control.py} +32 -12
  6. qiskit/circuit/_classical_resource_map.py +5 -3
  7. qiskit/circuit/barrier.py +3 -7
  8. qiskit/circuit/classical/expr/__init__.py +31 -3
  9. qiskit/circuit/classical/expr/constructors.py +248 -28
  10. qiskit/circuit/classical/expr/expr.py +104 -3
  11. qiskit/circuit/classical/expr/visitors.py +75 -0
  12. qiskit/circuit/classical/types/__init__.py +12 -8
  13. qiskit/circuit/classical/types/ordering.py +14 -7
  14. qiskit/circuit/classical/types/types.py +36 -0
  15. qiskit/circuit/commutation_checker.py +34 -7
  16. qiskit/circuit/controlflow/__init__.py +32 -1
  17. qiskit/circuit/controlflow/_builder_utils.py +9 -5
  18. qiskit/circuit/controlflow/box.py +163 -0
  19. qiskit/circuit/controlflow/break_loop.py +1 -1
  20. qiskit/circuit/controlflow/builder.py +139 -39
  21. qiskit/circuit/controlflow/continue_loop.py +1 -3
  22. qiskit/circuit/controlflow/control_flow.py +10 -0
  23. qiskit/circuit/controlflow/for_loop.py +2 -1
  24. qiskit/circuit/controlflow/if_else.py +3 -16
  25. qiskit/circuit/controlflow/switch_case.py +2 -8
  26. qiskit/circuit/controlflow/while_loop.py +2 -7
  27. qiskit/circuit/controlledgate.py +2 -4
  28. qiskit/circuit/delay.py +40 -11
  29. qiskit/circuit/duration.py +0 -15
  30. qiskit/circuit/gate.py +2 -4
  31. qiskit/circuit/instruction.py +2 -141
  32. qiskit/circuit/instructionset.py +7 -54
  33. qiskit/circuit/library/__init__.py +34 -5
  34. qiskit/circuit/library/arithmetic/__init__.py +16 -10
  35. qiskit/circuit/library/arithmetic/adders/cdkm_ripple_carry_adder.py +1 -1
  36. qiskit/circuit/library/arithmetic/adders/draper_qft_adder.py +2 -2
  37. qiskit/circuit/library/arithmetic/adders/vbe_ripple_carry_adder.py +1 -1
  38. qiskit/circuit/library/arithmetic/exact_reciprocal.py +64 -21
  39. qiskit/circuit/library/arithmetic/integer_comparator.py +37 -80
  40. qiskit/circuit/library/arithmetic/linear_amplitude_function.py +169 -2
  41. qiskit/circuit/library/arithmetic/linear_pauli_rotations.py +59 -5
  42. qiskit/circuit/library/arithmetic/piecewise_chebyshev.py +154 -6
  43. qiskit/circuit/library/arithmetic/piecewise_linear_pauli_rotations.py +114 -4
  44. qiskit/circuit/library/arithmetic/piecewise_polynomial_pauli_rotations.py +191 -15
  45. qiskit/circuit/library/arithmetic/polynomial_pauli_rotations.py +93 -39
  46. qiskit/circuit/library/arithmetic/quadratic_form.py +168 -2
  47. qiskit/circuit/library/arithmetic/weighted_adder.py +73 -1
  48. qiskit/circuit/library/bit_flip_oracle.py +130 -0
  49. qiskit/circuit/library/blueprintcircuit.py +52 -16
  50. qiskit/circuit/library/data_preparation/initializer.py +1 -1
  51. qiskit/circuit/library/data_preparation/pauli_feature_map.py +4 -4
  52. qiskit/circuit/library/data_preparation/state_preparation.py +1 -1
  53. qiskit/circuit/library/generalized_gates/gms.py +1 -1
  54. qiskit/circuit/library/generalized_gates/isometry.py +1 -1
  55. qiskit/circuit/library/generalized_gates/pauli.py +1 -2
  56. qiskit/circuit/library/generalized_gates/uc.py +97 -7
  57. qiskit/circuit/library/generalized_gates/uc_pauli_rot.py +1 -1
  58. qiskit/circuit/library/generalized_gates/unitary.py +4 -2
  59. qiskit/circuit/library/hamiltonian_gate.py +1 -1
  60. qiskit/circuit/library/n_local/evolved_operator_ansatz.py +1 -1
  61. qiskit/circuit/library/n_local/n_local.py +1 -1
  62. qiskit/circuit/library/n_local/qaoa_ansatz.py +1 -1
  63. qiskit/circuit/library/overlap.py +2 -2
  64. qiskit/circuit/library/pauli_evolution.py +39 -24
  65. qiskit/circuit/library/phase_oracle.py +130 -51
  66. qiskit/circuit/library/standard_gates/__init__.py +0 -1
  67. qiskit/circuit/library/standard_gates/dcx.py +3 -4
  68. qiskit/circuit/library/standard_gates/ecr.py +3 -4
  69. qiskit/circuit/library/standard_gates/global_phase.py +5 -6
  70. qiskit/circuit/library/standard_gates/h.py +4 -9
  71. qiskit/circuit/library/standard_gates/i.py +2 -2
  72. qiskit/circuit/library/standard_gates/iswap.py +3 -4
  73. qiskit/circuit/library/standard_gates/p.py +15 -34
  74. qiskit/circuit/library/standard_gates/r.py +2 -6
  75. qiskit/circuit/library/standard_gates/rx.py +5 -15
  76. qiskit/circuit/library/standard_gates/rxx.py +3 -6
  77. qiskit/circuit/library/standard_gates/ry.py +5 -17
  78. qiskit/circuit/library/standard_gates/ryy.py +3 -6
  79. qiskit/circuit/library/standard_gates/rz.py +5 -17
  80. qiskit/circuit/library/standard_gates/rzx.py +3 -6
  81. qiskit/circuit/library/standard_gates/rzz.py +3 -6
  82. qiskit/circuit/library/standard_gates/s.py +6 -15
  83. qiskit/circuit/library/standard_gates/swap.py +4 -11
  84. qiskit/circuit/library/standard_gates/sx.py +7 -12
  85. qiskit/circuit/library/standard_gates/t.py +6 -7
  86. qiskit/circuit/library/standard_gates/u.py +2 -10
  87. qiskit/circuit/library/standard_gates/u1.py +5 -16
  88. qiskit/circuit/library/standard_gates/u2.py +2 -6
  89. qiskit/circuit/library/standard_gates/u3.py +3 -11
  90. qiskit/circuit/library/standard_gates/x.py +13 -60
  91. qiskit/circuit/library/standard_gates/xx_minus_yy.py +2 -5
  92. qiskit/circuit/library/standard_gates/xx_plus_yy.py +2 -5
  93. qiskit/circuit/library/standard_gates/y.py +4 -9
  94. qiskit/circuit/library/standard_gates/z.py +5 -15
  95. qiskit/circuit/measure.py +11 -2
  96. qiskit/circuit/parameterexpression.py +4 -0
  97. qiskit/circuit/quantumcircuit.py +881 -555
  98. qiskit/circuit/random/utils.py +12 -6
  99. qiskit/circuit/reset.py +5 -2
  100. qiskit/circuit/singleton.py +5 -11
  101. qiskit/circuit/store.py +0 -8
  102. qiskit/compiler/__init__.py +1 -7
  103. qiskit/compiler/transpiler.py +38 -196
  104. qiskit/converters/circuit_to_dag.py +4 -2
  105. qiskit/converters/circuit_to_dagdependency.py +0 -2
  106. qiskit/converters/circuit_to_dagdependency_v2.py +0 -1
  107. qiskit/converters/circuit_to_gate.py +1 -1
  108. qiskit/converters/circuit_to_instruction.py +16 -29
  109. qiskit/converters/dag_to_circuit.py +5 -5
  110. qiskit/converters/dag_to_dagdependency.py +0 -1
  111. qiskit/converters/dag_to_dagdependency_v2.py +0 -1
  112. qiskit/converters/dagdependency_to_circuit.py +0 -6
  113. qiskit/converters/dagdependency_to_dag.py +0 -6
  114. qiskit/dagcircuit/collect_blocks.py +32 -20
  115. qiskit/dagcircuit/dagdependency.py +3 -37
  116. qiskit/dagcircuit/dagdependency_v2.py +2 -80
  117. qiskit/dagcircuit/dagnode.py +14 -2
  118. qiskit/passmanager/__init__.py +24 -6
  119. qiskit/passmanager/passmanager.py +26 -24
  120. qiskit/primitives/__init__.py +44 -35
  121. qiskit/primitives/backend_estimator_v2.py +102 -23
  122. qiskit/primitives/backend_sampler_v2.py +5 -20
  123. qiskit/primitives/base/__init__.py +4 -4
  124. qiskit/primitives/base/base_estimator.py +77 -82
  125. qiskit/primitives/base/base_primitive_job.py +2 -2
  126. qiskit/primitives/base/{base_primitive.py → base_primitive_v1.py} +1 -1
  127. qiskit/primitives/base/{base_result.py → base_result_v1.py} +1 -1
  128. qiskit/primitives/base/base_sampler.py +52 -60
  129. qiskit/primitives/base/{estimator_result.py → estimator_result_v1.py} +2 -2
  130. qiskit/primitives/base/{sampler_result.py → sampler_result_v1.py} +2 -2
  131. qiskit/primitives/base/{validation.py → validation_v1.py} +34 -15
  132. qiskit/primitives/containers/bindings_array.py +3 -1
  133. qiskit/primitives/containers/bit_array.py +23 -0
  134. qiskit/primitives/containers/data_bin.py +3 -1
  135. qiskit/primitives/containers/observables_array.py +19 -2
  136. qiskit/primitives/statevector_sampler.py +6 -8
  137. qiskit/primitives/utils.py +14 -189
  138. qiskit/providers/__init__.py +4 -130
  139. qiskit/providers/backend.py +11 -314
  140. qiskit/providers/basic_provider/__init__.py +3 -1
  141. qiskit/providers/basic_provider/basic_provider.py +29 -9
  142. qiskit/providers/basic_provider/basic_simulator.py +158 -298
  143. qiskit/providers/exceptions.py +0 -33
  144. qiskit/providers/fake_provider/__init__.py +0 -37
  145. qiskit/providers/fake_provider/generic_backend_v2.py +32 -693
  146. qiskit/qasm2/__init__.py +21 -6
  147. qiskit/qasm2/export.py +2 -10
  148. qiskit/qasm2/parse.py +11 -25
  149. qiskit/qasm3/__init__.py +5 -1
  150. qiskit/qasm3/ast.py +44 -0
  151. qiskit/qasm3/exporter.py +65 -27
  152. qiskit/qasm3/printer.py +35 -4
  153. qiskit/qpy/__init__.py +141 -19
  154. qiskit/qpy/binary_io/__init__.py +0 -1
  155. qiskit/qpy/binary_io/circuits.py +91 -116
  156. qiskit/qpy/binary_io/schedules.py +61 -388
  157. qiskit/qpy/binary_io/value.py +154 -28
  158. qiskit/qpy/common.py +10 -7
  159. qiskit/qpy/formats.py +41 -0
  160. qiskit/qpy/interface.py +29 -62
  161. qiskit/qpy/type_keys.py +58 -221
  162. qiskit/quantum_info/analysis/distance.py +3 -1
  163. qiskit/quantum_info/operators/dihedral/dihedral.py +3 -1
  164. qiskit/quantum_info/operators/operator.py +6 -2
  165. qiskit/quantum_info/operators/symplectic/clifford.py +3 -1
  166. qiskit/quantum_info/operators/symplectic/pauli.py +4 -2
  167. qiskit/quantum_info/operators/symplectic/pauli_list.py +17 -5
  168. qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +40 -6
  169. qiskit/quantum_info/states/densitymatrix.py +16 -6
  170. qiskit/quantum_info/states/stabilizerstate.py +35 -4
  171. qiskit/quantum_info/states/statevector.py +16 -6
  172. qiskit/result/__init__.py +5 -17
  173. qiskit/result/models.py +18 -10
  174. qiskit/result/result.py +28 -126
  175. qiskit/result/sampled_expval.py +1 -2
  176. qiskit/result/utils.py +3 -4
  177. qiskit/synthesis/__init__.py +21 -1
  178. qiskit/synthesis/arithmetic/__init__.py +3 -1
  179. qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +1 -1
  180. qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +1 -1
  181. qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +2 -2
  182. qiskit/{providers/fake_provider/backends_v1/fake_20q → synthesis/arithmetic/comparators}/__init__.py +4 -6
  183. qiskit/synthesis/arithmetic/comparators/compare_2s.py +112 -0
  184. qiskit/synthesis/arithmetic/comparators/compare_greedy.py +66 -0
  185. qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +1 -1
  186. qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +1 -1
  187. qiskit/synthesis/arithmetic/weighted_sum.py +155 -0
  188. qiskit/{result/mitigation → synthesis/boolean}/__init__.py +2 -2
  189. qiskit/synthesis/boolean/boolean_expression.py +231 -0
  190. qiskit/synthesis/boolean/boolean_expression_synth.py +124 -0
  191. qiskit/synthesis/boolean/boolean_expression_visitor.py +96 -0
  192. qiskit/synthesis/discrete_basis/generate_basis_approximations.py +2 -0
  193. qiskit/synthesis/evolution/lie_trotter.py +10 -7
  194. qiskit/synthesis/evolution/product_formula.py +44 -35
  195. qiskit/synthesis/evolution/qdrift.py +17 -24
  196. qiskit/synthesis/evolution/suzuki_trotter.py +20 -27
  197. qiskit/synthesis/linear/linear_depth_lnn.py +6 -221
  198. qiskit/synthesis/linear_phase/cx_cz_depth_lnn.py +4 -205
  199. qiskit/synthesis/multi_controlled/__init__.py +1 -0
  200. qiskit/synthesis/multi_controlled/mcx_synthesis.py +5 -2
  201. qiskit/synthesis/multi_controlled/multi_control_rotation_gates.py +206 -0
  202. qiskit/synthesis/one_qubit/one_qubit_decompose.py +1 -1
  203. qiskit/synthesis/two_qubit/__init__.py +1 -0
  204. qiskit/synthesis/two_qubit/two_qubit_decompose.py +28 -145
  205. qiskit/transpiler/__init__.py +32 -232
  206. qiskit/transpiler/basepasses.py +20 -51
  207. qiskit/transpiler/layout.py +1 -1
  208. qiskit/transpiler/passes/__init__.py +2 -40
  209. qiskit/transpiler/passes/basis/basis_translator.py +4 -3
  210. qiskit/transpiler/passes/basis/decompose.py +1 -15
  211. qiskit/transpiler/passes/basis/unroll_3q_or_more.py +1 -5
  212. qiskit/transpiler/passes/basis/unroll_custom_definitions.py +3 -2
  213. qiskit/transpiler/passes/layout/apply_layout.py +4 -0
  214. qiskit/transpiler/passes/layout/dense_layout.py +2 -39
  215. qiskit/transpiler/passes/layout/full_ancilla_allocation.py +4 -4
  216. qiskit/transpiler/passes/layout/sabre_layout.py +7 -3
  217. qiskit/transpiler/passes/layout/vf2_layout.py +2 -20
  218. qiskit/transpiler/passes/layout/vf2_post_layout.py +60 -125
  219. qiskit/transpiler/passes/layout/vf2_utils.py +2 -26
  220. qiskit/transpiler/passes/optimization/__init__.py +1 -3
  221. qiskit/transpiler/passes/optimization/collect_and_collapse.py +2 -0
  222. qiskit/transpiler/passes/optimization/collect_cliffords.py +5 -0
  223. qiskit/transpiler/passes/optimization/collect_linear_functions.py +5 -0
  224. qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py +16 -1
  225. qiskit/transpiler/passes/optimization/commutation_analysis.py +3 -3
  226. qiskit/transpiler/passes/optimization/consolidate_blocks.py +41 -19
  227. qiskit/transpiler/passes/optimization/contract_idle_wires_in_control_flow.py +104 -0
  228. qiskit/transpiler/passes/optimization/light_cone.py +135 -0
  229. qiskit/transpiler/passes/optimization/optimize_1q_commutation.py +0 -1
  230. qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +18 -22
  231. qiskit/transpiler/passes/optimization/optimize_annotated.py +3 -2
  232. qiskit/transpiler/passes/optimization/remove_identity_equiv.py +6 -4
  233. qiskit/transpiler/passes/optimization/reset_after_measure_simplification.py +5 -2
  234. qiskit/transpiler/passes/optimization/split_2q_unitaries.py +26 -3
  235. qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +1 -0
  236. qiskit/transpiler/passes/routing/__init__.py +0 -1
  237. qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +3 -1
  238. qiskit/transpiler/passes/routing/sabre_swap.py +14 -6
  239. qiskit/transpiler/passes/routing/star_prerouting.py +1 -1
  240. qiskit/transpiler/passes/scheduling/__init__.py +1 -7
  241. qiskit/transpiler/passes/scheduling/alignments/__init__.py +2 -4
  242. qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -9
  243. qiskit/transpiler/passes/scheduling/alignments/reschedule.py +17 -16
  244. qiskit/transpiler/passes/scheduling/padding/base_padding.py +30 -2
  245. qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +20 -58
  246. qiskit/transpiler/passes/scheduling/padding/pad_delay.py +11 -3
  247. qiskit/transpiler/passes/scheduling/scheduling/alap.py +5 -39
  248. qiskit/transpiler/passes/scheduling/scheduling/asap.py +4 -35
  249. qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +10 -16
  250. qiskit/transpiler/passes/scheduling/time_unit_conversion.py +127 -59
  251. qiskit/transpiler/passes/synthesis/default_unitary_synth_plugin.py +653 -0
  252. qiskit/transpiler/passes/synthesis/high_level_synthesis.py +176 -601
  253. qiskit/transpiler/passes/synthesis/hls_plugins.py +294 -1
  254. qiskit/transpiler/passes/synthesis/plugin.py +4 -0
  255. qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +16 -10
  256. qiskit/transpiler/passes/synthesis/unitary_synthesis.py +34 -697
  257. qiskit/transpiler/passes/utils/__init__.py +0 -1
  258. qiskit/transpiler/passes/utils/check_gate_direction.py +13 -5
  259. qiskit/transpiler/passes/utils/control_flow.py +2 -6
  260. qiskit/transpiler/passes/utils/gate_direction.py +7 -0
  261. qiskit/transpiler/passes/utils/remove_final_measurements.py +40 -33
  262. qiskit/transpiler/passmanager.py +13 -0
  263. qiskit/transpiler/passmanager_config.py +5 -81
  264. qiskit/transpiler/preset_passmanagers/builtin_plugins.py +225 -344
  265. qiskit/transpiler/preset_passmanagers/common.py +140 -167
  266. qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +101 -322
  267. qiskit/transpiler/preset_passmanagers/level0.py +2 -11
  268. qiskit/transpiler/preset_passmanagers/level1.py +2 -14
  269. qiskit/transpiler/preset_passmanagers/level2.py +2 -12
  270. qiskit/transpiler/preset_passmanagers/level3.py +2 -11
  271. qiskit/transpiler/preset_passmanagers/plugin.py +5 -3
  272. qiskit/transpiler/target.py +67 -524
  273. qiskit/user_config.py +8 -4
  274. qiskit/utils/__init__.py +13 -12
  275. qiskit/utils/deprecation.py +4 -112
  276. qiskit/utils/optionals.py +11 -4
  277. qiskit/utils/parallel.py +214 -87
  278. qiskit/utils/units.py +4 -1
  279. qiskit/visualization/__init__.py +3 -7
  280. qiskit/visualization/array.py +4 -1
  281. qiskit/visualization/bloch.py +1 -1
  282. qiskit/visualization/circuit/_utils.py +19 -19
  283. qiskit/visualization/circuit/circuit_visualization.py +11 -4
  284. qiskit/visualization/circuit/matplotlib.py +13 -23
  285. qiskit/visualization/circuit/text.py +7 -3
  286. qiskit/visualization/dag_visualization.py +2 -1
  287. qiskit/visualization/gate_map.py +39 -154
  288. qiskit/visualization/pass_manager_visualization.py +6 -2
  289. qiskit/visualization/state_visualization.py +6 -0
  290. qiskit/visualization/timeline/core.py +18 -12
  291. qiskit/visualization/timeline/interface.py +19 -18
  292. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/METADATA +2 -2
  293. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/RECORD +297 -444
  294. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/WHEEL +1 -1
  295. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/entry_points.txt +8 -2
  296. qiskit/assembler/__init__.py +0 -42
  297. qiskit/assembler/assemble_circuits.py +0 -451
  298. qiskit/assembler/assemble_schedules.py +0 -367
  299. qiskit/assembler/disassemble.py +0 -310
  300. qiskit/assembler/run_config.py +0 -77
  301. qiskit/circuit/bit.py +0 -106
  302. qiskit/circuit/classicalfunction/__init__.py +0 -152
  303. qiskit/circuit/classicalfunction/boolean_expression.py +0 -138
  304. qiskit/circuit/classicalfunction/classical_element.py +0 -54
  305. qiskit/circuit/classicalfunction/classical_function_visitor.py +0 -155
  306. qiskit/circuit/classicalfunction/classicalfunction.py +0 -182
  307. qiskit/circuit/classicalfunction/exceptions.py +0 -41
  308. qiskit/circuit/classicalfunction/types.py +0 -18
  309. qiskit/circuit/classicalfunction/utils.py +0 -91
  310. qiskit/circuit/classicalregister.py +0 -57
  311. qiskit/circuit/library/standard_gates/multi_control_rotation_gates.py +0 -405
  312. qiskit/circuit/quantumregister.py +0 -75
  313. qiskit/circuit/register.py +0 -246
  314. qiskit/compiler/assembler.py +0 -689
  315. qiskit/compiler/scheduler.py +0 -109
  316. qiskit/compiler/sequencer.py +0 -71
  317. qiskit/primitives/backend_estimator.py +0 -486
  318. qiskit/primitives/backend_sampler.py +0 -222
  319. qiskit/primitives/estimator.py +0 -172
  320. qiskit/primitives/sampler.py +0 -162
  321. qiskit/providers/backend_compat.py +0 -507
  322. qiskit/providers/fake_provider/backends_v1/__init__.py +0 -22
  323. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/__init__.py +0 -18
  324. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/conf_washington.json +0 -1
  325. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/defs_washington.json +0 -1
  326. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/fake_127q_pulse_v1.py +0 -37
  327. qiskit/providers/fake_provider/backends_v1/fake_127q_pulse/props_washington.json +0 -1
  328. qiskit/providers/fake_provider/backends_v1/fake_20q/conf_singapore.json +0 -1
  329. qiskit/providers/fake_provider/backends_v1/fake_20q/fake_20q.py +0 -43
  330. qiskit/providers/fake_provider/backends_v1/fake_20q/props_singapore.json +0 -1
  331. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/__init__.py +0 -18
  332. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/conf_hanoi.json +0 -1
  333. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/defs_hanoi.json +0 -1
  334. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/fake_27q_pulse_v1.py +0 -50
  335. qiskit/providers/fake_provider/backends_v1/fake_27q_pulse/props_hanoi.json +0 -1
  336. qiskit/providers/fake_provider/backends_v1/fake_5q/__init__.py +0 -18
  337. qiskit/providers/fake_provider/backends_v1/fake_5q/conf_yorktown.json +0 -1
  338. qiskit/providers/fake_provider/backends_v1/fake_5q/fake_5q_v1.py +0 -41
  339. qiskit/providers/fake_provider/backends_v1/fake_5q/props_yorktown.json +0 -1
  340. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/__init__.py +0 -18
  341. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/conf_nairobi.json +0 -1
  342. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/defs_nairobi.json +0 -1
  343. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/fake_7q_pulse_v1.py +0 -44
  344. qiskit/providers/fake_provider/backends_v1/fake_7q_pulse/props_nairobi.json +0 -1
  345. qiskit/providers/fake_provider/fake_1q.py +0 -91
  346. qiskit/providers/fake_provider/fake_backend.py +0 -165
  347. qiskit/providers/fake_provider/fake_openpulse_2q.py +0 -391
  348. qiskit/providers/fake_provider/fake_openpulse_3q.py +0 -340
  349. qiskit/providers/fake_provider/fake_pulse_backend.py +0 -49
  350. qiskit/providers/fake_provider/fake_qasm_backend.py +0 -77
  351. qiskit/providers/fake_provider/utils/backend_converter.py +0 -150
  352. qiskit/providers/fake_provider/utils/json_decoder.py +0 -109
  353. qiskit/providers/models/__init__.py +0 -89
  354. qiskit/providers/models/backendconfiguration.py +0 -1040
  355. qiskit/providers/models/backendproperties.py +0 -535
  356. qiskit/providers/models/backendstatus.py +0 -104
  357. qiskit/providers/models/jobstatus.py +0 -77
  358. qiskit/providers/models/pulsedefaults.py +0 -305
  359. qiskit/providers/provider.py +0 -95
  360. qiskit/pulse/__init__.py +0 -158
  361. qiskit/pulse/builder.py +0 -2262
  362. qiskit/pulse/calibration_entries.py +0 -381
  363. qiskit/pulse/channels.py +0 -227
  364. qiskit/pulse/configuration.py +0 -245
  365. qiskit/pulse/exceptions.py +0 -45
  366. qiskit/pulse/filters.py +0 -309
  367. qiskit/pulse/instruction_schedule_map.py +0 -424
  368. qiskit/pulse/instructions/__init__.py +0 -67
  369. qiskit/pulse/instructions/acquire.py +0 -150
  370. qiskit/pulse/instructions/delay.py +0 -71
  371. qiskit/pulse/instructions/directives.py +0 -154
  372. qiskit/pulse/instructions/frequency.py +0 -135
  373. qiskit/pulse/instructions/instruction.py +0 -270
  374. qiskit/pulse/instructions/phase.py +0 -152
  375. qiskit/pulse/instructions/play.py +0 -99
  376. qiskit/pulse/instructions/reference.py +0 -100
  377. qiskit/pulse/instructions/snapshot.py +0 -82
  378. qiskit/pulse/library/__init__.py +0 -97
  379. qiskit/pulse/library/continuous.py +0 -430
  380. qiskit/pulse/library/pulse.py +0 -148
  381. qiskit/pulse/library/samplers/__init__.py +0 -15
  382. qiskit/pulse/library/samplers/decorators.py +0 -295
  383. qiskit/pulse/library/samplers/strategies.py +0 -71
  384. qiskit/pulse/library/symbolic_pulses.py +0 -1989
  385. qiskit/pulse/library/waveform.py +0 -136
  386. qiskit/pulse/macros.py +0 -262
  387. qiskit/pulse/parameter_manager.py +0 -445
  388. qiskit/pulse/parser.py +0 -314
  389. qiskit/pulse/reference_manager.py +0 -58
  390. qiskit/pulse/schedule.py +0 -1854
  391. qiskit/pulse/transforms/__init__.py +0 -106
  392. qiskit/pulse/transforms/alignments.py +0 -406
  393. qiskit/pulse/transforms/base_transforms.py +0 -71
  394. qiskit/pulse/transforms/canonicalization.py +0 -498
  395. qiskit/pulse/transforms/dag.py +0 -122
  396. qiskit/pulse/utils.py +0 -149
  397. qiskit/qobj/__init__.py +0 -75
  398. qiskit/qobj/common.py +0 -81
  399. qiskit/qobj/converters/__init__.py +0 -18
  400. qiskit/qobj/converters/lo_config.py +0 -177
  401. qiskit/qobj/converters/pulse_instruction.py +0 -897
  402. qiskit/qobj/pulse_qobj.py +0 -709
  403. qiskit/qobj/qasm_qobj.py +0 -708
  404. qiskit/qobj/utils.py +0 -46
  405. qiskit/result/mitigation/base_readout_mitigator.py +0 -79
  406. qiskit/result/mitigation/correlated_readout_mitigator.py +0 -277
  407. qiskit/result/mitigation/local_readout_mitigator.py +0 -328
  408. qiskit/result/mitigation/utils.py +0 -217
  409. qiskit/scheduler/__init__.py +0 -40
  410. qiskit/scheduler/config.py +0 -37
  411. qiskit/scheduler/lowering.py +0 -187
  412. qiskit/scheduler/methods/__init__.py +0 -15
  413. qiskit/scheduler/methods/basic.py +0 -140
  414. qiskit/scheduler/schedule_circuit.py +0 -69
  415. qiskit/scheduler/sequence.py +0 -104
  416. qiskit/transpiler/passes/calibration/__init__.py +0 -17
  417. qiskit/transpiler/passes/calibration/base_builder.py +0 -79
  418. qiskit/transpiler/passes/calibration/builders.py +0 -20
  419. qiskit/transpiler/passes/calibration/exceptions.py +0 -22
  420. qiskit/transpiler/passes/calibration/pulse_gate.py +0 -100
  421. qiskit/transpiler/passes/calibration/rx_builder.py +0 -164
  422. qiskit/transpiler/passes/calibration/rzx_builder.py +0 -411
  423. qiskit/transpiler/passes/calibration/rzx_templates.py +0 -58
  424. qiskit/transpiler/passes/optimization/cx_cancellation.py +0 -65
  425. qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +0 -162
  426. qiskit/transpiler/passes/optimization/normalize_rx_angle.py +0 -157
  427. qiskit/transpiler/passes/routing/stochastic_swap.py +0 -532
  428. qiskit/transpiler/passes/scheduling/alap.py +0 -153
  429. qiskit/transpiler/passes/scheduling/alignments/align_measures.py +0 -255
  430. qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +0 -107
  431. qiskit/transpiler/passes/scheduling/asap.py +0 -175
  432. qiskit/transpiler/passes/scheduling/base_scheduler.py +0 -310
  433. qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +0 -313
  434. qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +0 -93
  435. qiskit/utils/deprecate_pulse.py +0 -119
  436. qiskit/utils/multiprocessing.py +0 -56
  437. qiskit/visualization/pulse_v2/__init__.py +0 -21
  438. qiskit/visualization/pulse_v2/core.py +0 -901
  439. qiskit/visualization/pulse_v2/device_info.py +0 -173
  440. qiskit/visualization/pulse_v2/drawings.py +0 -253
  441. qiskit/visualization/pulse_v2/events.py +0 -254
  442. qiskit/visualization/pulse_v2/generators/__init__.py +0 -40
  443. qiskit/visualization/pulse_v2/generators/barrier.py +0 -76
  444. qiskit/visualization/pulse_v2/generators/chart.py +0 -208
  445. qiskit/visualization/pulse_v2/generators/frame.py +0 -436
  446. qiskit/visualization/pulse_v2/generators/snapshot.py +0 -133
  447. qiskit/visualization/pulse_v2/generators/waveform.py +0 -645
  448. qiskit/visualization/pulse_v2/interface.py +0 -459
  449. qiskit/visualization/pulse_v2/layouts.py +0 -387
  450. qiskit/visualization/pulse_v2/plotters/__init__.py +0 -17
  451. qiskit/visualization/pulse_v2/plotters/base_plotter.py +0 -53
  452. qiskit/visualization/pulse_v2/plotters/matplotlib.py +0 -201
  453. qiskit/visualization/pulse_v2/stylesheet.py +0 -312
  454. qiskit/visualization/pulse_v2/types.py +0 -242
  455. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/LICENSE.txt +0 -0
  456. {qiskit-1.4.1.dist-info → qiskit-2.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -22,7 +22,7 @@ from typing import List
22
22
  from dataclasses import dataclass
23
23
 
24
24
  from qiskit import circuit
25
- from qiskit.circuit.quantumregister import Qubit, QuantumRegister
25
+ from qiskit.circuit import Qubit, QuantumRegister
26
26
  from qiskit.transpiler.exceptions import LayoutError
27
27
  from qiskit.converters import isinstanceint
28
28
 
@@ -43,7 +43,6 @@ Routing
43
43
 
44
44
  BasicSwap
45
45
  LookaheadSwap
46
- StochasticSwap
47
46
  SabreSwap
48
47
  Commuting2qGateRouter
49
48
  StarPreRouting
@@ -75,7 +74,6 @@ Optimizations
75
74
  CollectLinearFunctions
76
75
  CollectCliffords
77
76
  ConsolidateBlocks
78
- CXCancellation
79
77
  InverseCancellation
80
78
  CommutationAnalysis
81
79
  CommutativeCancellation
@@ -86,27 +84,13 @@ Optimizations
86
84
  RemoveFinalReset
87
85
  HoareOptimizer
88
86
  TemplateOptimization
89
- EchoRZXWeylDecomposition
90
87
  ResetAfterMeasureSimplification
91
88
  OptimizeCliffords
92
89
  ElidePermutations
93
- NormalizeRXAngle
94
90
  OptimizeAnnotated
95
91
  Split2QUnitaries
96
92
  RemoveIdentityEquivalent
97
-
98
- Calibration
99
- =============
100
-
101
- .. autosummary::
102
- :toctree: ../stubs/
103
-
104
- PulseGates
105
- RZXCalibrationBuilder
106
- RZXCalibrationBuilderNoEcho
107
- RXCalibrationBuilder
108
-
109
- .. autofunction:: rzx_templates
93
+ ContractIdleWiresInControlFlow
110
94
 
111
95
  Scheduling
112
96
  =============
@@ -120,13 +104,8 @@ Scheduling
120
104
  PadDynamicalDecoupling
121
105
  PadDelay
122
106
  ConstrainedReschedule
123
- ValidatePulseGates
124
107
  InstructionDurationCheck
125
108
  SetIOLatency
126
- ALAPSchedule
127
- ASAPSchedule
128
- DynamicalDecoupling
129
- AlignMeasures
130
109
 
131
110
  Circuit Analysis
132
111
  ================
@@ -185,7 +164,6 @@ Additional Passes
185
164
  MinimumPoint
186
165
  ContainsInstruction
187
166
  GatesInBasis
188
- ConvertConditionsToIfOps
189
167
  UnrollForLoops
190
168
  FilterOpNodes
191
169
  """
@@ -208,7 +186,6 @@ from .layout import SabrePreLayout
208
186
  from .routing import BasicSwap
209
187
  from .routing import LayoutTransformation
210
188
  from .routing import LookaheadSwap
211
- from .routing import StochasticSwap
212
189
  from .routing import SabreSwap
213
190
  from .routing import Commuting2qGateRouter
214
191
  from .routing import StarPreRouting
@@ -230,7 +207,6 @@ from .optimization import ConsolidateBlocks
230
207
  from .optimization import CommutationAnalysis
231
208
  from .optimization import CommutativeCancellation
232
209
  from .optimization import CommutativeInverseCancellation
233
- from .optimization import CXCancellation
234
210
  from .optimization import Optimize1qGatesSimpleCommutation
235
211
  from .optimization import OptimizeSwapBeforeMeasure
236
212
  from .optimization import RemoveResetInZeroState
@@ -239,17 +215,16 @@ from .optimization import RemoveDiagonalGatesBeforeMeasure
239
215
  from .optimization import HoareOptimizer
240
216
  from .optimization import TemplateOptimization
241
217
  from .optimization import InverseCancellation
242
- from .optimization import EchoRZXWeylDecomposition
243
218
  from .optimization import CollectAndCollapse
244
219
  from .optimization import CollectLinearFunctions
245
220
  from .optimization import CollectCliffords
246
221
  from .optimization import ResetAfterMeasureSimplification
247
222
  from .optimization import OptimizeCliffords
248
223
  from .optimization import ElidePermutations
249
- from .optimization import NormalizeRXAngle
250
224
  from .optimization import OptimizeAnnotated
251
225
  from .optimization import RemoveIdentityEquivalent
252
226
  from .optimization import Split2QUnitaries
227
+ from .optimization import ContractIdleWiresInControlFlow
253
228
 
254
229
  # circuit analysis
255
230
  from .analysis import ResourceEstimation
@@ -271,27 +246,15 @@ from .synthesis import SolovayKitaev
271
246
  from .synthesis import SolovayKitaevSynthesis
272
247
  from .synthesis import AQCSynthesisPlugin
273
248
 
274
- # calibration
275
- from .calibration import PulseGates
276
- from .calibration import RZXCalibrationBuilder
277
- from .calibration import RZXCalibrationBuilderNoEcho
278
- from .calibration import RXCalibrationBuilder
279
- from .calibration.rzx_templates import rzx_templates
280
-
281
249
  # circuit scheduling
282
250
  from .scheduling import TimeUnitConversion
283
251
  from .scheduling import ALAPScheduleAnalysis
284
252
  from .scheduling import ASAPScheduleAnalysis
285
253
  from .scheduling import PadDynamicalDecoupling
286
- from .scheduling import ValidatePulseGates
287
254
  from .scheduling import PadDelay
288
255
  from .scheduling import ConstrainedReschedule
289
256
  from .scheduling import InstructionDurationCheck
290
257
  from .scheduling import SetIOLatency
291
- from .scheduling import ALAPSchedule
292
- from .scheduling import ASAPSchedule
293
- from .scheduling import DynamicalDecoupling
294
- from .scheduling import AlignMeasures
295
258
 
296
259
  # additional utility passes
297
260
  from .utils import CheckMap
@@ -307,6 +270,5 @@ from .utils import Error
307
270
  from .utils import RemoveBarriers
308
271
  from .utils import ContainsInstruction
309
272
  from .utils import GatesInBasis
310
- from .utils import ConvertConditionsToIfOps
311
273
  from .utils import UnrollForLoops
312
274
  from .utils import FilterOpNodes
@@ -98,15 +98,16 @@ class BasisTranslator(TransformationPass):
98
98
  min_qubits (int): The minimum number of qubits for operations in the input
99
99
  dag to translate.
100
100
  """
101
-
102
101
  super().__init__()
103
102
  self._equiv_lib = equivalence_library
104
103
  self._target_basis = target_basis
105
- self._target = target
104
+ # Bypass target if it doesn't contain any basis gates (i.e. it's a _FakeTarget), as this
105
+ # not part of the official target model.
106
+ self._target = target if target is not None and len(target.operation_names) > 0 else None
106
107
  self._non_global_operations = None
107
108
  self._qargs_with_non_global_operation = {}
108
109
  self._min_qubits = min_qubits
109
- if target is not None:
110
+ if self._target is not None:
110
111
  self._non_global_operations = self._target.get_non_global_operation_names()
111
112
  self._qargs_with_non_global_operation = defaultdict(set)
112
113
  for gate in self._non_global_operations:
@@ -17,7 +17,6 @@ from __future__ import annotations
17
17
  from collections.abc import Sequence
18
18
  from typing import Type
19
19
  from fnmatch import fnmatch
20
- import warnings
21
20
 
22
21
  from qiskit.transpiler.basepasses import TransformationPass
23
22
  from qiskit.transpiler.passes.utils import control_flow
@@ -75,11 +74,9 @@ class Decompose(TransformationPass):
75
74
  elif getattr(node.op, "definition", None) is None:
76
75
  # if we try to synthesize, turn the node into a DAGCircuit and run HLS
77
76
  if self.apply_synthesis:
78
- # note that node_as_dag does not include the condition, which will
79
- # be propagated in ``substitute_node_with_dag``
80
77
  node_as_dag = _node_to_dag(node)
81
78
  synthesized = hls.run(node_as_dag)
82
- dag.substitute_node_with_dag(node, synthesized, propagate_condition=True)
79
+ dag.substitute_node_with_dag(node, synthesized)
83
80
 
84
81
  # else: no definition and synthesis not enabled, so we do nothing
85
82
  else:
@@ -131,17 +128,6 @@ class Decompose(TransformationPass):
131
128
 
132
129
 
133
130
  def _node_to_dag(node: DAGOpNode) -> DAGCircuit:
134
- # Control flow is already handled separately, however that does not capture
135
- # c_if, which we are treating here. We explicitly ignore the condition attribute,
136
- # which will be handled by ``substitute_node_with_dag``, so we create a copy of the node
137
- # and set the condition to None. Once ``c_if`` is removed for 2.0, this block can go, too.
138
- with warnings.catch_warnings():
139
- warnings.filterwarnings("ignore", category=DeprecationWarning)
140
- if getattr(node.op, "condition", None) is not None:
141
- op = node.op.copy()
142
- op.condition = None
143
- node = DAGOpNode(op, node.qargs, node.cargs)
144
-
145
131
  # create new dag and apply the operation
146
132
  dag = DAGCircuit()
147
133
  dag.add_qubits(node.qargs)
@@ -54,13 +54,9 @@ class Unroll3qOrMore(TransformationPass):
54
54
  QiskitError: if a 3q+ gate is not decomposable
55
55
  """
56
56
  for node in dag.multi_qubit_ops():
57
- if dag._has_calibration_for(node):
58
- continue
59
57
 
60
58
  if isinstance(node.op, ControlFlowOp):
61
- dag.substitute_node(
62
- node, control_flow.map_blocks(self.run, node.op), propagate_condition=False
63
- )
59
+ dag.substitute_node(node, control_flow.map_blocks(self.run, node.op))
64
60
  continue
65
61
 
66
62
  if self.target is not None:
@@ -67,14 +67,15 @@ class UnrollCustomDefinitions(TransformationPass):
67
67
  for node in dag.op_nodes():
68
68
  if isinstance(node.op, ControlFlowOp):
69
69
  dag.substitute_node(
70
- node, control_flow.map_blocks(self.run, node.op), propagate_condition=False
70
+ node,
71
+ control_flow.map_blocks(self.run, node.op),
71
72
  )
72
73
  continue
73
74
 
74
75
  if getattr(node.op, "_directive", False):
75
76
  continue
76
77
 
77
- if dag._has_calibration_for(node) or len(node.qargs) < self._min_qubits:
78
+ if len(node.qargs) < self._min_qubits:
78
79
  continue
79
80
 
80
81
  controlled_gate_open_ctrl = isinstance(node.op, ControlledGate) and node.op._open_ctrl
@@ -67,6 +67,10 @@ class ApplyLayout(TransformationPass):
67
67
  new_dag.add_captured_var(var)
68
68
  for var in dag.iter_declared_vars():
69
69
  new_dag.add_declared_var(var)
70
+ for stretch in dag.iter_captured_stretches():
71
+ new_dag.add_captured_stretch(stretch)
72
+ for stretch in dag.iter_declared_stretches():
73
+ new_dag.add_declared_stretch(stretch)
70
74
  new_dag.metadata = dag.metadata
71
75
  new_dag.add_clbits(dag.clbits)
72
76
  for creg in dag.cregs.values():
@@ -21,8 +21,6 @@ from qiskit.transpiler.basepasses import AnalysisPass
21
21
  from qiskit.transpiler.exceptions import TranspilerError
22
22
  from qiskit.transpiler.passes.layout import disjoint_utils
23
23
 
24
- from qiskit.utils import deprecate_arg
25
-
26
24
  from qiskit._accelerate.dense_layout import best_subset
27
25
 
28
26
 
@@ -38,27 +36,15 @@ class DenseLayout(AnalysisPass):
38
36
  by being set in ``property_set``.
39
37
  """
40
38
 
41
- @deprecate_arg(
42
- name="backend_prop",
43
- since="1.4",
44
- package_name="Qiskit",
45
- removal_timeline="in Qiskit 2.0",
46
- additional_msg="The BackendProperties data structure has been deprecated and will be "
47
- "removed in Qiskit 2.0. The `target` input argument should be used instead. "
48
- "You can use Target.from_configuration() to build the target from the properties "
49
- "object, but in 2.0 you will need to generate a target directly.",
50
- )
51
- def __init__(self, coupling_map=None, backend_prop=None, target=None):
39
+ def __init__(self, coupling_map=None, target=None):
52
40
  """DenseLayout initializer.
53
41
 
54
42
  Args:
55
43
  coupling_map (Coupling): directed graph representing a coupling map.
56
- backend_prop (BackendProperties): backend properties object
57
44
  target (Target): A target representing the target backend.
58
45
  """
59
46
  super().__init__()
60
47
  self.coupling_map = coupling_map
61
- self.backend_prop = backend_prop
62
48
  self.target = target
63
49
  self.adjacency_matrix = None
64
50
  if target is not None:
@@ -139,8 +125,6 @@ class DenseLayout(AnalysisPass):
139
125
  error_mat, use_error = _build_error_matrix(
140
126
  coupling_map.size(),
141
127
  reverse_index_map,
142
- backend_prop=self.backend_prop,
143
- coupling_map=self.coupling_map,
144
128
  target=self.target,
145
129
  )
146
130
 
@@ -160,7 +144,7 @@ class DenseLayout(AnalysisPass):
160
144
  return best_map
161
145
 
162
146
 
163
- def _build_error_matrix(num_qubits, qubit_map, target=None, coupling_map=None, backend_prop=None):
147
+ def _build_error_matrix(num_qubits, qubit_map, target=None):
164
148
  error_mat = np.zeros((num_qubits, num_qubits))
165
149
  use_error = False
166
150
  if target is not None and target.qargs is not None:
@@ -190,25 +174,4 @@ def _build_error_matrix(num_qubits, qubit_map, target=None, coupling_map=None, b
190
174
  elif len(qargs) == 2:
191
175
  error_mat[qubit_map[qargs[0]]][qubit_map[qargs[1]]] = max_error
192
176
  use_error = True
193
- elif backend_prop and coupling_map:
194
- error_dict = {
195
- tuple(gate.qubits): gate.parameters[0].value
196
- for gate in backend_prop.gates
197
- if len(gate.qubits) == 2
198
- }
199
- for edge in coupling_map.get_edges():
200
- gate_error = error_dict.get(edge)
201
- if gate_error is not None:
202
- if edge[0] not in qubit_map or edge[1] not in qubit_map:
203
- continue
204
- error_mat[qubit_map[edge[0]]][qubit_map[edge[1]]] = gate_error
205
- use_error = True
206
- for index, qubit_data in enumerate(backend_prop.qubits):
207
- if index not in qubit_map:
208
- continue
209
- for item in qubit_data:
210
- if item.name == "readout_error":
211
- mapped_index = qubit_map[index]
212
- error_mat[mapped_index][mapped_index] = item.value
213
- use_error = True
214
177
  return error_mat, use_error
@@ -92,10 +92,10 @@ class FullAncillaAllocation(AnalysisPass):
92
92
 
93
93
  if idle_physical_qubits:
94
94
  if self.ancilla_name in dag.qregs:
95
- save_prefix = QuantumRegister.prefix
96
- QuantumRegister.prefix = self.ancilla_name
97
- qreg = QuantumRegister(len(idle_physical_qubits))
98
- QuantumRegister.prefix = save_prefix
95
+ qreg = QuantumRegister(
96
+ len(idle_physical_qubits),
97
+ name=f"{self.ancilla_name}{QuantumRegister.instances_count + 1}",
98
+ )
99
99
  else:
100
100
  qreg = QuantumRegister(len(idle_physical_qubits), name=self.ancilla_name)
101
101
 
@@ -39,7 +39,7 @@ from qiskit._accelerate.sabre import sabre_layout_and_routing, Heuristic, Neighb
39
39
  from qiskit.transpiler.passes.routing.sabre_swap import _build_sabre_dag, _apply_sabre_result
40
40
  from qiskit.transpiler.target import Target
41
41
  from qiskit.transpiler.coupling import CouplingMap
42
- from qiskit.utils.parallel import CPU_COUNT
42
+ from qiskit.utils import default_num_processes
43
43
 
44
44
  logger = logging.getLogger(__name__)
45
45
 
@@ -176,11 +176,11 @@ class SabreLayout(TransformationPass):
176
176
  self.max_iterations = max_iterations
177
177
  self.trials = swap_trials
178
178
  if swap_trials is None:
179
- self.swap_trials = CPU_COUNT
179
+ self.swap_trials = default_num_processes()
180
180
  else:
181
181
  self.swap_trials = swap_trials
182
182
  if layout_trials is None:
183
- self.layout_trials = CPU_COUNT
183
+ self.layout_trials = default_num_processes()
184
184
  else:
185
185
  self.layout_trials = layout_trials
186
186
  self.skip_routing = skip_routing
@@ -315,6 +315,10 @@ class SabreLayout(TransformationPass):
315
315
  mapped_dag.add_captured_var(var)
316
316
  for var in dag.iter_declared_vars():
317
317
  mapped_dag.add_declared_var(var)
318
+ for stretch in dag.iter_captured_stretches():
319
+ mapped_dag.add_captured_stretch(stretch)
320
+ for stretch in dag.iter_declared_stretches():
321
+ mapped_dag.add_declared_stretch(stretch)
318
322
  mapped_dag.global_phase = dag.global_phase
319
323
  self.property_set["original_qubit_indices"] = {
320
324
  bit: index for index, bit in enumerate(dag.qubits)
@@ -24,7 +24,6 @@ from qiskit.transpiler.basepasses import AnalysisPass
24
24
  from qiskit.transpiler.exceptions import TranspilerError
25
25
  from qiskit.transpiler.passes.layout import vf2_utils
26
26
 
27
- from qiskit.utils import deprecate_arg
28
27
 
29
28
  logger = logging.getLogger(__name__)
30
29
 
@@ -74,16 +73,6 @@ class VF2Layout(AnalysisPass):
74
73
  ``vf2_avg_error_map`` key in the property set when :class:`~.VF2Layout` is run.
75
74
  """
76
75
 
77
- @deprecate_arg(
78
- name="properties",
79
- since="1.4",
80
- package_name="Qiskit",
81
- removal_timeline="in Qiskit 2.0",
82
- additional_msg="The BackendProperties data structure has been deprecated and will be "
83
- "removed in Qiskit 2.0. The `target` input argument should be used instead. "
84
- "You can use Target.from_configuration() to build the target from the properties "
85
- "object, but in 2.0 you will need to generate a target directly.",
86
- )
87
76
  def __init__(
88
77
  self,
89
78
  coupling_map=None,
@@ -91,7 +80,6 @@ class VF2Layout(AnalysisPass):
91
80
  seed=None,
92
81
  call_limit=None,
93
82
  time_limit=None,
94
- properties=None,
95
83
  max_trials=None,
96
84
  target=None,
97
85
  ):
@@ -105,16 +93,13 @@ class VF2Layout(AnalysisPass):
105
93
  call_limit (int): The number of state visits to attempt in each execution of
106
94
  VF2.
107
95
  time_limit (float): The total time limit in seconds to run ``VF2Layout``
108
- properties (BackendProperties): The backend properties for the backend. If
109
- :meth:`~qiskit.providers.models.BackendProperties.readout_error` is available
110
- it is used to score the layout.
111
96
  max_trials (int): The maximum number of trials to run VF2 to find
112
97
  a layout. If this is not specified the number of trials will be limited
113
98
  based on the number of edges in the interaction graph or the coupling graph
114
99
  (whichever is larger) if no other limits are set. If set to a value <= 0 no
115
100
  limit on the number of trials will be set.
116
101
  target (Target): A target representing the backend device to run ``VF2Layout`` on.
117
- If specified it will supersede a set value for ``properties`` and
102
+ If specified it will supersede a set value for
118
103
  ``coupling_map`` if the :class:`.Target` contains connectivity constraints. If the value
119
104
  of ``target`` models an ideal backend without any constraints then the value of
120
105
  ``coupling_map``
@@ -132,7 +117,6 @@ class VF2Layout(AnalysisPass):
132
117
  self.coupling_map = target_coupling_map
133
118
  else:
134
119
  self.coupling_map = coupling_map
135
- self.properties = properties
136
120
  self.strict_direction = strict_direction
137
121
  self.seed = seed
138
122
  self.call_limit = call_limit
@@ -146,9 +130,7 @@ class VF2Layout(AnalysisPass):
146
130
  raise TranspilerError("coupling_map or target must be specified.")
147
131
  self.avg_error_map = self.property_set["vf2_avg_error_map"]
148
132
  if self.avg_error_map is None:
149
- self.avg_error_map = vf2_utils.build_average_error_map(
150
- self.target, self.properties, self.coupling_map
151
- )
133
+ self.avg_error_map = vf2_utils.build_average_error_map(self.target, self.coupling_map)
152
134
 
153
135
  result = vf2_utils.build_interaction_graph(dag, self.strict_direction)
154
136
  if result is None: