qiskit 1.3.0__cp39-abi3-win32.whl → 1.3.0b1__cp39-abi3-win32.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- qiskit/VERSION.txt +1 -1
- qiskit/__init__.py +1 -20
- qiskit/_accelerate.pyd +0 -0
- qiskit/assembler/assemble_schedules.py +0 -2
- qiskit/circuit/__init__.py +1 -44
- qiskit/circuit/_standard_gates_commutations.py +0 -585
- qiskit/circuit/barrier.py +0 -2
- qiskit/circuit/controlflow/builder.py +3 -3
- qiskit/circuit/controlflow/if_else.py +5 -13
- qiskit/circuit/controlflow/while_loop.py +2 -10
- qiskit/circuit/delay.py +3 -20
- qiskit/circuit/equivalence.py +214 -13
- qiskit/circuit/gate.py +1 -3
- qiskit/circuit/instruction.py +11 -32
- qiskit/circuit/instructionset.py +0 -2
- qiskit/circuit/library/__init__.py +14 -110
- qiskit/circuit/library/arithmetic/__init__.py +2 -9
- qiskit/circuit/library/arithmetic/adders/__init__.py +0 -1
- qiskit/circuit/library/arithmetic/adders/adder.py +2 -154
- qiskit/circuit/library/arithmetic/adders/cdkm_ripple_carry_adder.py +56 -20
- qiskit/circuit/library/arithmetic/adders/draper_qft_adder.py +1 -14
- qiskit/circuit/library/arithmetic/adders/vbe_ripple_carry_adder.py +91 -21
- qiskit/circuit/library/arithmetic/linear_pauli_rotations.py +1 -1
- qiskit/circuit/library/arithmetic/multipliers/__init__.py +0 -1
- qiskit/circuit/library/arithmetic/multipliers/hrs_cumulative_multiplier.py +1 -8
- qiskit/circuit/library/arithmetic/multipliers/multiplier.py +3 -94
- qiskit/circuit/library/arithmetic/multipliers/rg_qft_multiplier.py +1 -8
- qiskit/circuit/library/arithmetic/weighted_adder.py +1 -1
- qiskit/circuit/library/basis_change/qft.py +38 -20
- qiskit/circuit/library/blueprintcircuit.py +0 -64
- qiskit/circuit/library/boolean_logic/__init__.py +4 -4
- qiskit/circuit/library/boolean_logic/inner_product.py +4 -81
- qiskit/circuit/library/boolean_logic/quantum_and.py +4 -107
- qiskit/circuit/library/boolean_logic/quantum_or.py +3 -107
- qiskit/circuit/library/boolean_logic/quantum_xor.py +3 -97
- qiskit/circuit/library/data_preparation/__init__.py +3 -6
- qiskit/circuit/library/data_preparation/pauli_feature_map.py +29 -342
- qiskit/circuit/library/data_preparation/{_z_feature_map.py → z_feature_map.py} +34 -45
- qiskit/circuit/library/data_preparation/zz_feature_map.py +118 -0
- qiskit/circuit/library/fourier_checking.py +11 -72
- qiskit/circuit/library/generalized_gates/__init__.py +1 -1
- qiskit/circuit/library/generalized_gates/diagonal.py +51 -45
- qiskit/circuit/library/generalized_gates/gms.py +14 -67
- qiskit/circuit/library/generalized_gates/gr.py +4 -4
- qiskit/circuit/library/generalized_gates/isometry.py +2 -2
- qiskit/circuit/library/generalized_gates/linear_function.py +6 -12
- qiskit/circuit/library/generalized_gates/mcmt.py +107 -167
- qiskit/circuit/library/generalized_gates/permutation.py +6 -8
- qiskit/circuit/library/generalized_gates/rv.py +9 -8
- qiskit/circuit/library/graph_state.py +10 -93
- qiskit/circuit/library/grover_operator.py +2 -270
- qiskit/circuit/library/hidden_linear_function.py +20 -83
- qiskit/circuit/library/iqp.py +20 -99
- qiskit/circuit/library/n_local/__init__.py +7 -19
- qiskit/circuit/library/n_local/efficient_su2.py +5 -118
- qiskit/circuit/library/n_local/evolved_operator_ansatz.py +0 -259
- qiskit/circuit/library/n_local/excitation_preserving.py +6 -130
- qiskit/circuit/library/n_local/n_local.py +5 -406
- qiskit/circuit/library/n_local/pauli_two_design.py +4 -106
- qiskit/circuit/library/n_local/qaoa_ansatz.py +1 -80
- qiskit/circuit/library/n_local/real_amplitudes.py +7 -127
- qiskit/circuit/library/n_local/two_local.py +7 -14
- qiskit/circuit/library/overlap.py +26 -91
- qiskit/circuit/library/pauli_evolution.py +15 -17
- qiskit/circuit/library/phase_estimation.py +4 -80
- qiskit/circuit/library/quantum_volume.py +20 -72
- qiskit/circuit/library/standard_gates/__init__.py +1 -20
- qiskit/circuit/library/standard_gates/dcx.py +1 -2
- qiskit/circuit/library/standard_gates/ecr.py +2 -2
- qiskit/circuit/library/standard_gates/h.py +3 -4
- qiskit/circuit/library/standard_gates/i.py +1 -2
- qiskit/circuit/library/standard_gates/iswap.py +2 -2
- qiskit/circuit/library/standard_gates/p.py +12 -20
- qiskit/circuit/library/standard_gates/r.py +1 -1
- qiskit/circuit/library/standard_gates/rx.py +3 -4
- qiskit/circuit/library/standard_gates/rxx.py +2 -2
- qiskit/circuit/library/standard_gates/ry.py +3 -4
- qiskit/circuit/library/standard_gates/ryy.py +2 -2
- qiskit/circuit/library/standard_gates/rz.py +12 -13
- qiskit/circuit/library/standard_gates/rzx.py +6 -6
- qiskit/circuit/library/standard_gates/rzz.py +1 -1
- qiskit/circuit/library/standard_gates/s.py +4 -4
- qiskit/circuit/library/standard_gates/swap.py +3 -3
- qiskit/circuit/library/standard_gates/sx.py +3 -4
- qiskit/circuit/library/standard_gates/t.py +2 -2
- qiskit/circuit/library/standard_gates/u.py +3 -11
- qiskit/circuit/library/standard_gates/u1.py +15 -65
- qiskit/circuit/library/standard_gates/u2.py +1 -4
- qiskit/circuit/library/standard_gates/u3.py +3 -31
- qiskit/circuit/library/standard_gates/x.py +5 -7
- qiskit/circuit/library/standard_gates/xx_minus_yy.py +2 -2
- qiskit/circuit/library/standard_gates/xx_plus_yy.py +2 -2
- qiskit/circuit/library/standard_gates/y.py +3 -4
- qiskit/circuit/library/standard_gates/z.py +3 -3
- qiskit/circuit/library/templates/clifford/clifford_2_1.py +8 -9
- qiskit/circuit/library/templates/clifford/clifford_2_2.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_2_3.py +7 -9
- qiskit/circuit/library/templates/clifford/clifford_2_4.py +8 -9
- qiskit/circuit/library/templates/clifford/clifford_3_1.py +8 -9
- qiskit/circuit/library/templates/clifford/clifford_4_1.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_4_2.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_4_3.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_4_4.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_5_1.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_6_1.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_6_2.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_6_3.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_6_4.py +8 -9
- qiskit/circuit/library/templates/clifford/clifford_6_5.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_8_1.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_8_2.py +9 -10
- qiskit/circuit/library/templates/clifford/clifford_8_3.py +9 -10
- qiskit/circuit/library/templates/nct/template_nct_2a_1.py +7 -9
- qiskit/circuit/library/templates/nct/template_nct_2a_2.py +8 -10
- qiskit/circuit/library/templates/nct/template_nct_2a_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_4a_1.py +14 -16
- qiskit/circuit/library/templates/nct/template_nct_4a_2.py +12 -14
- qiskit/circuit/library/templates/nct/template_nct_4a_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_4b_1.py +12 -14
- qiskit/circuit/library/templates/nct/template_nct_4b_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_5a_1.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_5a_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_5a_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_5a_4.py +9 -11
- qiskit/circuit/library/templates/nct/template_nct_6a_1.py +9 -11
- qiskit/circuit/library/templates/nct/template_nct_6a_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_6a_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_6a_4.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_6b_1.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_6b_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_6c_1.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_7a_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_7b_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_7c_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_7d_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_7e_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_9a_1.py +11 -13
- qiskit/circuit/library/templates/nct/template_nct_9c_1.py +9 -11
- qiskit/circuit/library/templates/nct/template_nct_9c_10.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_11.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_12.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_4.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_5.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_6.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_7.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_8.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9c_9.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_1.py +9 -11
- qiskit/circuit/library/templates/nct/template_nct_9d_10.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_2.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_3.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_4.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_5.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_6.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_7.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_8.py +10 -12
- qiskit/circuit/library/templates/nct/template_nct_9d_9.py +10 -12
- qiskit/circuit/library/templates/rzx/rzx_cy.py +10 -11
- qiskit/circuit/library/templates/rzx/rzx_xz.py +15 -16
- qiskit/circuit/library/templates/rzx/rzx_yz.py +10 -12
- qiskit/circuit/library/templates/rzx/rzx_zz1.py +20 -22
- qiskit/circuit/library/templates/rzx/rzx_zz2.py +15 -16
- qiskit/circuit/library/templates/rzx/rzx_zz3.py +15 -17
- qiskit/circuit/parameter.py +0 -4
- qiskit/circuit/parameterexpression.py +34 -167
- qiskit/circuit/quantumcircuit.py +126 -162
- qiskit/circuit/singleton.py +0 -2
- qiskit/circuit/store.py +0 -2
- qiskit/compiler/assembler.py +4 -17
- qiskit/compiler/scheduler.py +0 -2
- qiskit/compiler/sequencer.py +0 -2
- qiskit/compiler/transpiler.py +26 -81
- qiskit/converters/circuit_to_dag.py +2 -2
- qiskit/converters/circuit_to_dagdependency.py +1 -1
- qiskit/converters/circuit_to_dagdependency_v2.py +1 -1
- qiskit/converters/circuit_to_instruction.py +1 -1
- qiskit/converters/dag_to_circuit.py +5 -7
- qiskit/converters/dag_to_dagdependency.py +1 -1
- qiskit/converters/dag_to_dagdependency_v2.py +1 -1
- qiskit/converters/dagdependency_to_circuit.py +1 -5
- qiskit/converters/dagdependency_to_dag.py +1 -6
- qiskit/dagcircuit/collect_blocks.py +3 -3
- qiskit/dagcircuit/dagdependency.py +5 -18
- qiskit/dagcircuit/dagdependency_v2.py +1 -1
- qiskit/dagcircuit/dagnode.py +2 -2
- qiskit/passmanager/__init__.py +2 -2
- qiskit/primitives/backend_estimator.py +2 -5
- qiskit/primitives/backend_sampler_v2.py +18 -61
- qiskit/primitives/base/base_estimator.py +2 -2
- qiskit/primitives/containers/data_bin.py +1 -9
- qiskit/primitives/statevector_sampler.py +1 -1
- qiskit/primitives/utils.py +1 -1
- qiskit/providers/__init__.py +3 -3
- qiskit/providers/backend.py +1 -12
- qiskit/providers/backend_compat.py +3 -23
- qiskit/providers/basic_provider/basic_simulator.py +2 -12
- qiskit/providers/fake_provider/fake_pulse_backend.py +1 -6
- qiskit/providers/fake_provider/generic_backend_v2.py +30 -46
- qiskit/providers/models/pulsedefaults.py +0 -2
- qiskit/pulse/builder.py +18 -59
- qiskit/pulse/calibration_entries.py +1 -4
- qiskit/pulse/channels.py +0 -2
- qiskit/pulse/exceptions.py +0 -2
- qiskit/pulse/instruction_schedule_map.py +6 -21
- qiskit/pulse/instructions/acquire.py +0 -2
- qiskit/pulse/instructions/delay.py +0 -2
- qiskit/pulse/instructions/directives.py +0 -8
- qiskit/pulse/instructions/frequency.py +0 -3
- qiskit/pulse/instructions/instruction.py +0 -2
- qiskit/pulse/instructions/phase.py +0 -3
- qiskit/pulse/instructions/play.py +0 -2
- qiskit/pulse/instructions/reference.py +0 -2
- qiskit/pulse/instructions/snapshot.py +0 -2
- qiskit/pulse/library/pulse.py +0 -2
- qiskit/pulse/library/symbolic_pulses.py +0 -28
- qiskit/pulse/library/waveform.py +0 -2
- qiskit/pulse/macros.py +1 -1
- qiskit/pulse/schedule.py +13 -12
- qiskit/pulse/transforms/alignments.py +3 -5
- qiskit/pulse/transforms/dag.py +0 -7
- qiskit/qasm2/export.py +3 -5
- qiskit/qasm2/parse.py +2 -46
- qiskit/qasm3/__init__.py +0 -1
- qiskit/qasm3/ast.py +15 -123
- qiskit/qasm3/exporter.py +77 -103
- qiskit/qobj/converters/pulse_instruction.py +4 -6
- qiskit/qpy/__init__.py +0 -181
- qiskit/qpy/binary_io/circuits.py +5 -20
- qiskit/qpy/binary_io/schedules.py +4 -3
- qiskit/qpy/binary_io/value.py +13 -310
- qiskit/qpy/common.py +2 -46
- qiskit/qpy/formats.py +0 -7
- qiskit/qpy/interface.py +4 -40
- qiskit/quantum_info/__init__.py +0 -4
- qiskit/quantum_info/operators/channel/transformations.py +21 -28
- qiskit/quantum_info/operators/dihedral/dihedral.py +1 -1
- qiskit/quantum_info/operators/operator.py +8 -54
- qiskit/quantum_info/operators/symplectic/base_pauli.py +19 -11
- qiskit/quantum_info/operators/symplectic/clifford.py +1 -1
- qiskit/quantum_info/operators/symplectic/clifford_circuits.py +1 -1
- qiskit/quantum_info/operators/symplectic/pauli.py +0 -2
- qiskit/quantum_info/operators/symplectic/pauli_list.py +4 -4
- qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py +2 -23
- qiskit/quantum_info/states/densitymatrix.py +5 -5
- qiskit/quantum_info/states/stabilizerstate.py +1 -1
- qiskit/quantum_info/states/statevector.py +6 -6
- qiskit/result/mitigation/base_readout_mitigator.py +1 -1
- qiskit/result/mitigation/correlated_readout_mitigator.py +1 -9
- qiskit/result/mitigation/local_readout_mitigator.py +1 -9
- qiskit/result/mitigation/utils.py +0 -57
- qiskit/scheduler/config.py +0 -2
- qiskit/scheduler/methods/basic.py +0 -3
- qiskit/scheduler/schedule_circuit.py +0 -2
- qiskit/scheduler/sequence.py +0 -2
- qiskit/synthesis/__init__.py +0 -25
- qiskit/synthesis/clifford/clifford_decompose_bm.py +2 -1
- qiskit/synthesis/clifford/clifford_decompose_greedy.py +2 -3
- qiskit/synthesis/clifford/clifford_decompose_layers.py +1 -2
- qiskit/synthesis/evolution/__init__.py +0 -1
- qiskit/synthesis/evolution/lie_trotter.py +42 -16
- qiskit/synthesis/evolution/product_formula.py +238 -165
- qiskit/synthesis/evolution/qdrift.py +29 -36
- qiskit/synthesis/evolution/suzuki_trotter.py +27 -87
- qiskit/synthesis/multi_controlled/__init__.py +0 -1
- qiskit/synthesis/qft/qft_decompose_full.py +1 -19
- qiskit/synthesis/qft/qft_decompose_lnn.py +1 -2
- qiskit/synthesis/stabilizer/stabilizer_decompose.py +1 -2
- qiskit/synthesis/two_qubit/two_qubit_decompose.py +63 -4
- qiskit/synthesis/two_qubit/weyl.py +97 -0
- qiskit/synthesis/unitary/qsd.py +5 -5
- qiskit/transpiler/__init__.py +14 -21
- qiskit/transpiler/basepasses.py +1 -1
- qiskit/transpiler/passes/__init__.py +0 -2
- qiskit/transpiler/passes/basis/basis_translator.py +565 -9
- qiskit/transpiler/passes/basis/decompose.py +12 -45
- qiskit/transpiler/passes/basis/unroll_3q_or_more.py +1 -1
- qiskit/transpiler/passes/basis/unroll_custom_definitions.py +1 -1
- qiskit/transpiler/passes/calibration/pulse_gate.py +2 -4
- qiskit/transpiler/passes/calibration/rx_builder.py +7 -11
- qiskit/transpiler/passes/calibration/rzx_builder.py +30 -46
- qiskit/transpiler/passes/layout/disjoint_utils.py +13 -15
- qiskit/transpiler/passes/layout/sabre_layout.py +2 -7
- qiskit/transpiler/passes/layout/sabre_pre_layout.py +0 -5
- qiskit/transpiler/passes/optimization/__init__.py +0 -1
- qiskit/transpiler/passes/optimization/collect_cliffords.py +3 -19
- qiskit/transpiler/passes/optimization/collect_linear_functions.py +1 -1
- qiskit/transpiler/passes/optimization/collect_multiqubit_blocks.py +2 -2
- qiskit/transpiler/passes/optimization/commutative_inverse_cancellation.py +1 -1
- qiskit/transpiler/passes/optimization/consolidate_blocks.py +131 -48
- qiskit/transpiler/passes/optimization/echo_rzx_weyl_decomposition.py +2 -4
- qiskit/transpiler/passes/optimization/elide_permutations.py +32 -9
- qiskit/transpiler/passes/optimization/inverse_cancellation.py +0 -2
- qiskit/transpiler/passes/optimization/optimize_1q_decomposition.py +11 -5
- qiskit/transpiler/passes/optimization/optimize_1q_gates.py +1 -1
- qiskit/transpiler/passes/optimization/optimize_swap_before_measure.py +1 -1
- qiskit/transpiler/passes/optimization/template_matching/backward_match.py +5 -5
- qiskit/transpiler/passes/optimization/template_matching/forward_match.py +4 -4
- qiskit/transpiler/passes/optimization/template_matching/template_substitution.py +2 -2
- qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +1 -1
- qiskit/transpiler/passes/routing/commuting_2q_gate_routing/swap_strategy.py +1 -1
- qiskit/transpiler/passes/routing/sabre_swap.py +3 -7
- qiskit/transpiler/passes/routing/star_prerouting.py +2 -2
- qiskit/transpiler/passes/scheduling/alap.py +1 -1
- qiskit/transpiler/passes/scheduling/alignments/align_measures.py +2 -2
- qiskit/transpiler/passes/scheduling/alignments/check_durations.py +1 -1
- qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +0 -2
- qiskit/transpiler/passes/scheduling/alignments/reschedule.py +2 -2
- qiskit/transpiler/passes/scheduling/asap.py +1 -1
- qiskit/transpiler/passes/scheduling/base_scheduler.py +12 -14
- qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +4 -9
- qiskit/transpiler/passes/scheduling/padding/base_padding.py +1 -1
- qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +5 -16
- qiskit/transpiler/passes/scheduling/padding/pad_delay.py +1 -4
- qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +2 -6
- qiskit/transpiler/passes/scheduling/time_unit_conversion.py +4 -9
- qiskit/transpiler/passes/synthesis/high_level_synthesis.py +99 -262
- qiskit/transpiler/passes/synthesis/hls_plugins.py +7 -638
- qiskit/transpiler/passes/synthesis/qubit_tracker.py +132 -0
- qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py +3 -3
- qiskit/transpiler/passes/synthesis/unitary_synthesis.py +34 -55
- qiskit/transpiler/passes/utils/barrier_before_final_measurements.py +56 -2
- qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +0 -5
- qiskit/transpiler/passes/utils/gate_direction.py +275 -12
- qiskit/transpiler/passes/utils/gates_basis.py +30 -7
- qiskit/transpiler/passes/utils/merge_adjacent_barriers.py +1 -2
- qiskit/transpiler/passmanager_config.py +4 -22
- qiskit/transpiler/preset_passmanagers/builtin_plugins.py +14 -40
- qiskit/transpiler/preset_passmanagers/common.py +3 -5
- qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +42 -125
- qiskit/transpiler/preset_passmanagers/plugin.py +1 -1
- qiskit/transpiler/target.py +16 -74
- qiskit/visualization/circuit/_utils.py +2 -2
- qiskit/visualization/circuit/circuit_visualization.py +2 -3
- qiskit/visualization/circuit/matplotlib.py +1 -1
- qiskit/visualization/dag_visualization.py +1 -1
- qiskit/visualization/pass_manager_visualization.py +14 -3
- qiskit/visualization/pulse_v2/interface.py +1 -3
- qiskit/visualization/timeline/core.py +2 -25
- qiskit/visualization/timeline/interface.py +0 -12
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/METADATA +19 -20
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/RECORD +347 -358
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/WHEEL +1 -1
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/entry_points.txt +0 -19
- qiskit/circuit/library/data_preparation/_zz_feature_map.py +0 -150
- qiskit/circuit/twirling.py +0 -145
- qiskit/synthesis/arithmetic/__init__.py +0 -16
- qiskit/synthesis/arithmetic/adders/__init__.py +0 -17
- qiskit/synthesis/arithmetic/adders/cdkm_ripple_carry_adder.py +0 -154
- qiskit/synthesis/arithmetic/adders/draper_qft_adder.py +0 -103
- qiskit/synthesis/arithmetic/adders/vbe_ripple_carry_adder.py +0 -161
- qiskit/synthesis/arithmetic/multipliers/__init__.py +0 -16
- qiskit/synthesis/arithmetic/multipliers/hrs_cumulative_multiplier.py +0 -102
- qiskit/synthesis/arithmetic/multipliers/rg_qft_multiplier.py +0 -99
- qiskit/synthesis/evolution/pauli_network.py +0 -80
- qiskit/synthesis/multi_controlled/mcmt_vchain.py +0 -52
- qiskit/transpiler/passes/optimization/remove_identity_equiv.py +0 -69
- qiskit/utils/deprecate_pulse.py +0 -119
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/LICENSE.txt +0 -0
- {qiskit-1.3.0.dist-info → qiskit-1.3.0b1.dist-info}/top_level.txt +0 -0
qiskit/qasm3/ast.py
CHANGED
@@ -15,14 +15,12 @@
|
|
15
15
|
"""QASM3 AST Nodes"""
|
16
16
|
|
17
17
|
import enum
|
18
|
-
from typing import Optional, List, Union, Iterable, Tuple
|
18
|
+
from typing import Optional, List, Union, Iterable, Tuple
|
19
19
|
|
20
20
|
|
21
21
|
class ASTNode:
|
22
22
|
"""Base abstract class for AST nodes"""
|
23
23
|
|
24
|
-
__slots__ = ()
|
25
|
-
|
26
24
|
|
27
25
|
class Statement(ASTNode):
|
28
26
|
"""
|
@@ -37,8 +35,6 @@ class Statement(ASTNode):
|
|
37
35
|
| quantumStatement
|
38
36
|
"""
|
39
37
|
|
40
|
-
__slots__ = ()
|
41
|
-
|
42
38
|
|
43
39
|
class Pragma(ASTNode):
|
44
40
|
"""
|
@@ -46,8 +42,6 @@ class Pragma(ASTNode):
|
|
46
42
|
: '#pragma' LBRACE statement* RBRACE // match any valid openqasm statement
|
47
43
|
"""
|
48
44
|
|
49
|
-
__slots__ = ("content",)
|
50
|
-
|
51
45
|
def __init__(self, content):
|
52
46
|
self.content = content
|
53
47
|
|
@@ -58,8 +52,6 @@ class CalibrationGrammarDeclaration(Statement):
|
|
58
52
|
: 'defcalgrammar' calibrationGrammar SEMICOLON
|
59
53
|
"""
|
60
54
|
|
61
|
-
__slots__ = ("name",)
|
62
|
-
|
63
55
|
def __init__(self, name):
|
64
56
|
self.name = name
|
65
57
|
|
@@ -70,11 +62,9 @@ class Program(ASTNode):
|
|
70
62
|
: header (globalStatement | statement)*
|
71
63
|
"""
|
72
64
|
|
73
|
-
|
74
|
-
|
75
|
-
def __init__(self, header, statements=()):
|
65
|
+
def __init__(self, header, statements=None):
|
76
66
|
self.header = header
|
77
|
-
self.statements = statements
|
67
|
+
self.statements = statements or []
|
78
68
|
|
79
69
|
|
80
70
|
class Header(ASTNode):
|
@@ -83,8 +73,6 @@ class Header(ASTNode):
|
|
83
73
|
: version? include*
|
84
74
|
"""
|
85
75
|
|
86
|
-
__slots__ = ("version", "includes")
|
87
|
-
|
88
76
|
def __init__(self, version, includes):
|
89
77
|
self.version = version
|
90
78
|
self.includes = includes
|
@@ -96,8 +84,6 @@ class Include(ASTNode):
|
|
96
84
|
: 'include' StringLiteral SEMICOLON
|
97
85
|
"""
|
98
86
|
|
99
|
-
__slots__ = ("filename",)
|
100
|
-
|
101
87
|
def __init__(self, filename):
|
102
88
|
self.filename = filename
|
103
89
|
|
@@ -108,8 +94,6 @@ class Version(ASTNode):
|
|
108
94
|
: 'OPENQASM'(Integer | RealNumber) SEMICOLON
|
109
95
|
"""
|
110
96
|
|
111
|
-
__slots__ = ("version_number",)
|
112
|
-
|
113
97
|
def __init__(self, version_number):
|
114
98
|
self.version_number = version_number
|
115
99
|
|
@@ -124,14 +108,10 @@ class QuantumInstruction(ASTNode):
|
|
124
108
|
| quantumBarrier
|
125
109
|
"""
|
126
110
|
|
127
|
-
__slots__ = ()
|
128
|
-
|
129
111
|
|
130
112
|
class ClassicalType(ASTNode):
|
131
113
|
"""Information about a classical type. This is just an abstract base for inheritance tests."""
|
132
114
|
|
133
|
-
__slots__ = ()
|
134
|
-
|
135
115
|
|
136
116
|
class FloatType(ClassicalType, enum.Enum):
|
137
117
|
"""Allowed values for the width of floating-point types."""
|
@@ -146,14 +126,10 @@ class FloatType(ClassicalType, enum.Enum):
|
|
146
126
|
class BoolType(ClassicalType):
|
147
127
|
"""Type information for a Boolean."""
|
148
128
|
|
149
|
-
__slots__ = ()
|
150
|
-
|
151
129
|
|
152
130
|
class IntType(ClassicalType):
|
153
131
|
"""Type information for a signed integer."""
|
154
132
|
|
155
|
-
__slots__ = ("size",)
|
156
|
-
|
157
133
|
def __init__(self, size: Optional[int] = None):
|
158
134
|
self.size = size
|
159
135
|
|
@@ -161,8 +137,6 @@ class IntType(ClassicalType):
|
|
161
137
|
class UintType(ClassicalType):
|
162
138
|
"""Type information for an unsigned integer."""
|
163
139
|
|
164
|
-
__slots__ = ("size",)
|
165
|
-
|
166
140
|
def __init__(self, size: Optional[int] = None):
|
167
141
|
self.size = size
|
168
142
|
|
@@ -170,25 +144,19 @@ class UintType(ClassicalType):
|
|
170
144
|
class BitType(ClassicalType):
|
171
145
|
"""Type information for a single bit."""
|
172
146
|
|
173
|
-
__slots__ = ()
|
174
|
-
|
175
147
|
|
176
148
|
class BitArrayType(ClassicalType):
|
177
149
|
"""Type information for a sized number of classical bits."""
|
178
150
|
|
179
|
-
__slots__ = ("size",)
|
180
|
-
|
181
151
|
def __init__(self, size: int):
|
182
152
|
self.size = size
|
183
153
|
|
184
154
|
|
185
155
|
class Expression(ASTNode):
|
186
|
-
|
156
|
+
pass
|
187
157
|
|
188
158
|
|
189
159
|
class StringifyAndPray(Expression):
|
190
|
-
__slots__ = ("obj",)
|
191
|
-
|
192
160
|
# This is not a real AST node, yet is somehow very common. It's used when there are
|
193
161
|
# `ParameterExpression` instances; instead of actually visiting the Sympy expression tree into
|
194
162
|
# an OQ3 AST, we just convert it to a string, cross our fingers, and hope.
|
@@ -197,8 +165,6 @@ class StringifyAndPray(Expression):
|
|
197
165
|
|
198
166
|
|
199
167
|
class Range(Expression):
|
200
|
-
__slots__ = ("start", "step", "end")
|
201
|
-
|
202
168
|
def __init__(
|
203
169
|
self,
|
204
170
|
start: Optional[Expression] = None,
|
@@ -211,8 +177,6 @@ class Range(Expression):
|
|
211
177
|
|
212
178
|
|
213
179
|
class Identifier(Expression):
|
214
|
-
__slots__ = ("string",)
|
215
|
-
|
216
180
|
def __init__(self, string):
|
217
181
|
self.string = string
|
218
182
|
|
@@ -220,8 +184,6 @@ class Identifier(Expression):
|
|
220
184
|
class SubscriptedIdentifier(Identifier):
|
221
185
|
"""An identifier with subscripted access."""
|
222
186
|
|
223
|
-
__slots__ = ("subscript",)
|
224
|
-
|
225
187
|
def __init__(self, string: str, subscript: Union[Range, Expression]):
|
226
188
|
super().__init__(string)
|
227
189
|
self.subscript = subscript
|
@@ -236,22 +198,16 @@ class Constant(Expression, enum.Enum):
|
|
236
198
|
|
237
199
|
|
238
200
|
class IntegerLiteral(Expression):
|
239
|
-
__slots__ = ("value",)
|
240
|
-
|
241
201
|
def __init__(self, value):
|
242
202
|
self.value = value
|
243
203
|
|
244
204
|
|
245
205
|
class BooleanLiteral(Expression):
|
246
|
-
__slots__ = ("value",)
|
247
|
-
|
248
206
|
def __init__(self, value):
|
249
207
|
self.value = value
|
250
208
|
|
251
209
|
|
252
210
|
class BitstringLiteral(Expression):
|
253
|
-
__slots__ = ("value", "width")
|
254
|
-
|
255
211
|
def __init__(self, value, width):
|
256
212
|
self.value = value
|
257
213
|
self.width = width
|
@@ -268,16 +224,12 @@ class DurationUnit(enum.Enum):
|
|
268
224
|
|
269
225
|
|
270
226
|
class DurationLiteral(Expression):
|
271
|
-
__slots__ = ("value", "unit")
|
272
|
-
|
273
227
|
def __init__(self, value: float, unit: DurationUnit):
|
274
228
|
self.value = value
|
275
229
|
self.unit = unit
|
276
230
|
|
277
231
|
|
278
232
|
class Unary(Expression):
|
279
|
-
__slots__ = ("op", "operand")
|
280
|
-
|
281
233
|
class Op(enum.Enum):
|
282
234
|
LOGIC_NOT = "!"
|
283
235
|
BIT_NOT = "~"
|
@@ -288,8 +240,6 @@ class Unary(Expression):
|
|
288
240
|
|
289
241
|
|
290
242
|
class Binary(Expression):
|
291
|
-
__slots__ = ("op", "left", "right")
|
292
|
-
|
293
243
|
class Op(enum.Enum):
|
294
244
|
BIT_AND = "&"
|
295
245
|
BIT_OR = "|"
|
@@ -312,16 +262,12 @@ class Binary(Expression):
|
|
312
262
|
|
313
263
|
|
314
264
|
class Cast(Expression):
|
315
|
-
__slots__ = ("type", "operand")
|
316
|
-
|
317
265
|
def __init__(self, type: ClassicalType, operand: Expression):
|
318
266
|
self.type = type
|
319
267
|
self.operand = operand
|
320
268
|
|
321
269
|
|
322
270
|
class Index(Expression):
|
323
|
-
__slots__ = ("target", "index")
|
324
|
-
|
325
271
|
def __init__(self, target: Expression, index: Expression):
|
326
272
|
self.target = target
|
327
273
|
self.index = index
|
@@ -334,8 +280,6 @@ class IndexSet(ASTNode):
|
|
334
280
|
{ Expression (, Expression)* }
|
335
281
|
"""
|
336
282
|
|
337
|
-
__slots__ = ("values",)
|
338
|
-
|
339
283
|
def __init__(self, values: List[Expression]):
|
340
284
|
self.values = values
|
341
285
|
|
@@ -346,8 +290,6 @@ class QuantumMeasurement(ASTNode):
|
|
346
290
|
: 'measure' indexIdentifierList
|
347
291
|
"""
|
348
292
|
|
349
|
-
__slots__ = ("identifierList",)
|
350
|
-
|
351
293
|
def __init__(self, identifierList: List[Identifier]):
|
352
294
|
self.identifierList = identifierList
|
353
295
|
|
@@ -359,8 +301,6 @@ class QuantumMeasurementAssignment(Statement):
|
|
359
301
|
| indexIdentifier EQUALS quantumMeasurement # eg: bits = measure qubits;
|
360
302
|
"""
|
361
303
|
|
362
|
-
__slots__ = ("identifier", "quantumMeasurement")
|
363
|
-
|
364
304
|
def __init__(self, identifier: Identifier, quantumMeasurement: QuantumMeasurement):
|
365
305
|
self.identifier = identifier
|
366
306
|
self.quantumMeasurement = quantumMeasurement
|
@@ -372,8 +312,6 @@ class Designator(ASTNode):
|
|
372
312
|
: LBRACKET expression RBRACKET
|
373
313
|
"""
|
374
314
|
|
375
|
-
__slots__ = ("expression",)
|
376
|
-
|
377
315
|
def __init__(self, expression: Expression):
|
378
316
|
self.expression = expression
|
379
317
|
|
@@ -381,8 +319,6 @@ class Designator(ASTNode):
|
|
381
319
|
class ClassicalDeclaration(Statement):
|
382
320
|
"""Declaration of a classical type, optionally initializing it to a value."""
|
383
321
|
|
384
|
-
__slots__ = ("type", "identifier", "initializer")
|
385
|
-
|
386
322
|
def __init__(self, type_: ClassicalType, identifier: Identifier, initializer=None):
|
387
323
|
self.type = type_
|
388
324
|
self.identifier = identifier
|
@@ -392,8 +328,6 @@ class ClassicalDeclaration(Statement):
|
|
392
328
|
class AssignmentStatement(Statement):
|
393
329
|
"""Assignment of an expression to an l-value."""
|
394
330
|
|
395
|
-
__slots__ = ("lvalue", "rvalue")
|
396
|
-
|
397
331
|
def __init__(self, lvalue: SubscriptedIdentifier, rvalue: Expression):
|
398
332
|
self.lvalue = lvalue
|
399
333
|
self.rvalue = rvalue
|
@@ -406,8 +340,6 @@ class QuantumDeclaration(ASTNode):
|
|
406
340
|
'qubit' designator? Identifier
|
407
341
|
"""
|
408
342
|
|
409
|
-
__slots__ = ("identifier", "designator")
|
410
|
-
|
411
343
|
def __init__(self, identifier: Identifier, designator=None):
|
412
344
|
self.identifier = identifier
|
413
345
|
self.designator = designator
|
@@ -419,8 +351,6 @@ class AliasStatement(ASTNode):
|
|
419
351
|
: 'let' Identifier EQUALS indexIdentifier SEMICOLON
|
420
352
|
"""
|
421
353
|
|
422
|
-
__slots__ = ("identifier", "value")
|
423
|
-
|
424
354
|
def __init__(self, identifier: Identifier, value: Expression):
|
425
355
|
self.identifier = identifier
|
426
356
|
self.value = value
|
@@ -438,8 +368,6 @@ class QuantumGateModifierName(enum.Enum):
|
|
438
368
|
class QuantumGateModifier(ASTNode):
|
439
369
|
"""A modifier of a gate. For example, in ``ctrl @ x $0``, the ``ctrl @`` is the modifier."""
|
440
370
|
|
441
|
-
__slots__ = ("modifier", "argument")
|
442
|
-
|
443
371
|
def __init__(self, modifier: QuantumGateModifierName, argument: Optional[Expression] = None):
|
444
372
|
self.modifier = modifier
|
445
373
|
self.argument = argument
|
@@ -451,19 +379,17 @@ class QuantumGateCall(QuantumInstruction):
|
|
451
379
|
: quantumGateModifier* quantumGateName ( LPAREN expressionList? RPAREN )? indexIdentifierList
|
452
380
|
"""
|
453
381
|
|
454
|
-
__slots__ = ("quantumGateName", "indexIdentifierList", "parameters", "modifiers")
|
455
|
-
|
456
382
|
def __init__(
|
457
383
|
self,
|
458
384
|
quantumGateName: Identifier,
|
459
385
|
indexIdentifierList: List[Identifier],
|
460
|
-
parameters:
|
461
|
-
modifiers:
|
386
|
+
parameters: List[Expression] = None,
|
387
|
+
modifiers: Optional[List[QuantumGateModifier]] = None,
|
462
388
|
):
|
463
389
|
self.quantumGateName = quantumGateName
|
464
390
|
self.indexIdentifierList = indexIdentifierList
|
465
|
-
self.parameters = parameters
|
466
|
-
self.modifiers = modifiers
|
391
|
+
self.parameters = parameters or []
|
392
|
+
self.modifiers = modifiers or []
|
467
393
|
|
468
394
|
|
469
395
|
class QuantumBarrier(QuantumInstruction):
|
@@ -472,8 +398,6 @@ class QuantumBarrier(QuantumInstruction):
|
|
472
398
|
: 'barrier' indexIdentifierList
|
473
399
|
"""
|
474
400
|
|
475
|
-
__slots__ = ("indexIdentifierList",)
|
476
|
-
|
477
401
|
def __init__(self, indexIdentifierList: List[Identifier]):
|
478
402
|
self.indexIdentifierList = indexIdentifierList
|
479
403
|
|
@@ -481,8 +405,6 @@ class QuantumBarrier(QuantumInstruction):
|
|
481
405
|
class QuantumReset(QuantumInstruction):
|
482
406
|
"""A built-in ``reset q0;`` statement."""
|
483
407
|
|
484
|
-
__slots__ = ("identifier",)
|
485
|
-
|
486
408
|
def __init__(self, identifier: Identifier):
|
487
409
|
self.identifier = identifier
|
488
410
|
|
@@ -490,8 +412,6 @@ class QuantumReset(QuantumInstruction):
|
|
490
412
|
class QuantumDelay(QuantumInstruction):
|
491
413
|
"""A built-in ``delay[duration] q0;`` statement."""
|
492
414
|
|
493
|
-
__slots__ = ("duration", "qubits")
|
494
|
-
|
495
415
|
def __init__(self, duration: Expression, qubits: List[Identifier]):
|
496
416
|
self.duration = duration
|
497
417
|
self.qubits = qubits
|
@@ -504,8 +424,6 @@ class ProgramBlock(ASTNode):
|
|
504
424
|
| LBRACE(statement | controlDirective) * RBRACE
|
505
425
|
"""
|
506
426
|
|
507
|
-
__slots__ = ("statements",)
|
508
|
-
|
509
427
|
def __init__(self, statements: List[Statement]):
|
510
428
|
self.statements = statements
|
511
429
|
|
@@ -516,8 +434,6 @@ class ReturnStatement(ASTNode): # TODO probably should be a subclass of Control
|
|
516
434
|
: 'return' ( expression | quantumMeasurement )? SEMICOLON;
|
517
435
|
"""
|
518
436
|
|
519
|
-
__slots__ = ("expression",)
|
520
|
-
|
521
437
|
def __init__(self, expression=None):
|
522
438
|
self.expression = expression
|
523
439
|
|
@@ -528,7 +444,7 @@ class QuantumBlock(ProgramBlock):
|
|
528
444
|
: LBRACE ( quantumStatement | quantumLoop )* RBRACE
|
529
445
|
"""
|
530
446
|
|
531
|
-
|
447
|
+
pass
|
532
448
|
|
533
449
|
|
534
450
|
class SubroutineBlock(ProgramBlock):
|
@@ -537,7 +453,7 @@ class SubroutineBlock(ProgramBlock):
|
|
537
453
|
: LBRACE statement* returnStatement? RBRACE
|
538
454
|
"""
|
539
455
|
|
540
|
-
|
456
|
+
pass
|
541
457
|
|
542
458
|
|
543
459
|
class QuantumGateDefinition(Statement):
|
@@ -546,8 +462,6 @@ class QuantumGateDefinition(Statement):
|
|
546
462
|
: 'gate' quantumGateSignature quantumBlock
|
547
463
|
"""
|
548
464
|
|
549
|
-
__slots__ = ("name", "params", "qubits", "body")
|
550
|
-
|
551
465
|
def __init__(
|
552
466
|
self,
|
553
467
|
name: Identifier,
|
@@ -568,16 +482,14 @@ class SubroutineDefinition(Statement):
|
|
568
482
|
returnSignature? subroutineBlock
|
569
483
|
"""
|
570
484
|
|
571
|
-
__slots__ = ("identifier", "arguments", "subroutineBlock")
|
572
|
-
|
573
485
|
def __init__(
|
574
486
|
self,
|
575
487
|
identifier: Identifier,
|
576
488
|
subroutineBlock: SubroutineBlock,
|
577
|
-
arguments=
|
489
|
+
arguments=None, # [ClassicalArgument]
|
578
490
|
):
|
579
491
|
self.identifier = identifier
|
580
|
-
self.arguments = arguments
|
492
|
+
self.arguments = arguments or []
|
581
493
|
self.subroutineBlock = subroutineBlock
|
582
494
|
|
583
495
|
|
@@ -587,7 +499,7 @@ class CalibrationArgument(ASTNode):
|
|
587
499
|
: classicalArgumentList | expressionList
|
588
500
|
"""
|
589
501
|
|
590
|
-
|
502
|
+
pass
|
591
503
|
|
592
504
|
|
593
505
|
class CalibrationDefinition(Statement):
|
@@ -599,17 +511,15 @@ class CalibrationDefinition(Statement):
|
|
599
511
|
;
|
600
512
|
"""
|
601
513
|
|
602
|
-
__slots__ = ("name", "identifierList", "calibrationArgumentList")
|
603
|
-
|
604
514
|
def __init__(
|
605
515
|
self,
|
606
516
|
name: Identifier,
|
607
517
|
identifierList: List[Identifier],
|
608
|
-
calibrationArgumentList:
|
518
|
+
calibrationArgumentList: Optional[List[CalibrationArgument]] = None,
|
609
519
|
):
|
610
520
|
self.name = name
|
611
521
|
self.identifierList = identifierList
|
612
|
-
self.calibrationArgumentList = calibrationArgumentList
|
522
|
+
self.calibrationArgumentList = calibrationArgumentList or []
|
613
523
|
|
614
524
|
|
615
525
|
class BranchingStatement(Statement):
|
@@ -618,8 +528,6 @@ class BranchingStatement(Statement):
|
|
618
528
|
: 'if' LPAREN booleanExpression RPAREN programBlock ( 'else' programBlock )?
|
619
529
|
"""
|
620
530
|
|
621
|
-
__slots__ = ("condition", "true_body", "false_body")
|
622
|
-
|
623
531
|
def __init__(self, condition: Expression, true_body: ProgramBlock, false_body=None):
|
624
532
|
self.condition = condition
|
625
533
|
self.true_body = true_body
|
@@ -639,8 +547,6 @@ class ForLoopStatement(Statement):
|
|
639
547
|
| "[" Range "]"
|
640
548
|
"""
|
641
549
|
|
642
|
-
__slots__ = ("indexset", "parameter", "body")
|
643
|
-
|
644
550
|
def __init__(
|
645
551
|
self,
|
646
552
|
indexset: Union[Identifier, IndexSet, Range],
|
@@ -661,8 +567,6 @@ class WhileLoopStatement(Statement):
|
|
661
567
|
WhileLoop: "while" "(" Expression ")" ProgramBlock
|
662
568
|
"""
|
663
569
|
|
664
|
-
__slots__ = ("condition", "body")
|
665
|
-
|
666
570
|
def __init__(self, condition: Expression, body: ProgramBlock):
|
667
571
|
self.condition = condition
|
668
572
|
self.body = body
|
@@ -671,14 +575,10 @@ class WhileLoopStatement(Statement):
|
|
671
575
|
class BreakStatement(Statement):
|
672
576
|
"""AST node for ``break`` statements. Has no associated information."""
|
673
577
|
|
674
|
-
__slots__ = ()
|
675
|
-
|
676
578
|
|
677
579
|
class ContinueStatement(Statement):
|
678
580
|
"""AST node for ``continue`` statements. Has no associated information."""
|
679
581
|
|
680
|
-
__slots__ = ()
|
681
|
-
|
682
582
|
|
683
583
|
class IOModifier(enum.Enum):
|
684
584
|
"""IO Modifier object"""
|
@@ -690,8 +590,6 @@ class IOModifier(enum.Enum):
|
|
690
590
|
class IODeclaration(ClassicalDeclaration):
|
691
591
|
"""A declaration of an IO variable."""
|
692
592
|
|
693
|
-
__slots__ = ("modifier",)
|
694
|
-
|
695
593
|
def __init__(self, modifier: IOModifier, type_: ClassicalType, identifier: Identifier):
|
696
594
|
super().__init__(type_, identifier)
|
697
595
|
self.modifier = modifier
|
@@ -700,8 +598,6 @@ class IODeclaration(ClassicalDeclaration):
|
|
700
598
|
class DefaultCase(Expression):
|
701
599
|
"""An object representing the `default` special label in switch statements."""
|
702
600
|
|
703
|
-
__slots__ = ()
|
704
|
-
|
705
601
|
|
706
602
|
class SwitchStatementPreview(Statement):
|
707
603
|
"""AST node for the proposed 'switch-case' extension to OpenQASM 3, before the syntax was
|
@@ -709,8 +605,6 @@ class SwitchStatementPreview(Statement):
|
|
709
605
|
|
710
606
|
The stabilized form of the syntax instead uses :class:`.SwitchStatement`."""
|
711
607
|
|
712
|
-
__slots__ = ("target", "cases")
|
713
|
-
|
714
608
|
def __init__(
|
715
609
|
self, target: Expression, cases: Iterable[Tuple[Iterable[Expression], ProgramBlock]]
|
716
610
|
):
|
@@ -725,8 +619,6 @@ class SwitchStatement(Statement):
|
|
725
619
|
cannot be joined with other cases (even though that's meaningless, the V1 syntax permitted it).
|
726
620
|
"""
|
727
621
|
|
728
|
-
__slots__ = ("target", "cases", "default")
|
729
|
-
|
730
622
|
def __init__(
|
731
623
|
self,
|
732
624
|
target: Expression,
|