qiskit 2.1.0rc1__cp39-abi3-macosx_11_0_arm64.whl → 2.1.1__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.
qiskit/VERSION.txt CHANGED
@@ -1 +1 @@
1
- 2.1.0rc1
1
+ 2.1.1
qiskit/__init__.py CHANGED
@@ -50,6 +50,7 @@ if sys.version_info < (3, 10):
50
50
  "Support for running Qiskit with Python 3.9 will be removed in the "
51
51
  "2.3.0 release, which coincides with when Python 3.9 goes end of life.",
52
52
  DeprecationWarning,
53
+ stacklevel=2,
53
54
  )
54
55
 
55
56
  from . import _accelerate
Binary file
@@ -562,11 +562,16 @@ happen incoherently and to collapse any entanglement.
562
562
 
563
563
  Hardware can be instructed to apply a real-time idle period on a given qubit. A scheduled circuit
564
564
  (see :mod:`qiskit.transpiler`) will include all the idle times on qubits explicitly in terms of this
565
- :class:`Delay`.
565
+ :class:`Delay`. :class:`.BoxOp` can also have an explicit duration attached, in its
566
+ :attr:`.BoxOp.duration` field.
566
567
 
567
568
  .. autoclass:: Delay
568
569
  :show-inheritance:
569
570
 
571
+ Delay durations can be specified either with concrete, constant times, or with delayed-resolution
572
+ "duration expressions" built out of :class:`.expr.Stretch` objects. See :ref:`circuit-stretches`
573
+ for more on this.
574
+
570
575
  The :class:`Barrier` instruction can span an arbitrary number of qubits and clbits, and is a no-op
571
576
  in hardware. During transpilation and optimization, however, it blocks any optimizations from
572
577
  "crossing" the barrier; that is, in:
@@ -715,9 +720,9 @@ classes associated to each name.
715
720
  .. autofunction:: get_control_flow_name_mapping
716
721
 
717
722
  These control-flow operations (:class:`IfElseOp`, :class:`WhileLoopOp`,
718
- :class:`SwitchCaseOp` and :class:`ForLoopOp`) all have specific state that defines the branching
719
- conditions and strategies, but contain all the different subcircuit blocks that might be entered in
720
- their :attr:`~ControlFlowOp.blocks` property.
723
+ :class:`SwitchCaseOp`, :class:`ForLoopOp` and :class:`.BoxOp`) all have specific state that defines
724
+ the branching conditions and strategies, but contain all the different subcircuit blocks that might
725
+ be entered in their :attr:`~ControlFlowOp.blocks` property.
721
726
 
722
727
  .. autosummary::
723
728
  :toctree: ../stubs/
@@ -726,6 +731,7 @@ their :attr:`~ControlFlowOp.blocks` property.
726
731
  WhileLoopOp
727
732
  SwitchCaseOp
728
733
  ForLoopOp
734
+ BoxOp
729
735
 
730
736
  The :class:`.SwitchCaseOp` also understands a special value:
731
737
 
@@ -799,6 +805,28 @@ automatically.
799
805
  Consult :ref:`the control-flow construction documentation <circuit-control-flow-methods>` for more
800
806
  information on how to build circuits with control flow.
801
807
 
808
+
809
+ Instruction-local annotations
810
+ -----------------------------
811
+
812
+ .. seealso::
813
+
814
+ :mod:`qiskit.circuit.annotation`
815
+ The module-level discussion of the annotation framework, including how to defined custom
816
+ annotations, and how the system interacts with the compiler and with serialization to other
817
+ formats.
818
+
819
+
820
+ Certain circuit instructions can be "annotated" with instruction-local annotations. As of Qiskit
821
+ 2.1.0, this is limited to :class:`.BoxOp`. All annotations are subclasses of one base
822
+ interface-defining object, but typically represent entirely custom analyses and commands.
823
+
824
+ .. autosummary::
825
+ :toctree: ../stubs
826
+
827
+ Annotation
828
+
829
+
802
830
  Investigating commutation relations
803
831
  -----------------------------------
804
832
 
@@ -823,6 +851,70 @@ are available in the :class:`CommutationChecker`.
823
851
  CommutationChecker
824
852
 
825
853
 
854
+ .. _circuit-stretches:
855
+
856
+ Delayed-resolution scheduling
857
+ -----------------------------
858
+
859
+ Typically, the output of Qiskit's compiler cannot be directly executed on a QPU. First, it is
860
+ likely to pass through some vendor-specific pulse-level compiler, which converts the gates and
861
+ measurements into signals to the controlling electronics of the QPU. While Qiskit's
862
+ :class:`.Target` can represent *some* of the timing constraints that these pulses will have, it is
863
+ generally not entirely complete. This is especially true when dynamic circuits (feed-forward
864
+ operations) are involved; the delays induced by the classical components are often dependent on
865
+ low-level post-optimization details of backend compilers, and cannot be known by Qiskit.
866
+
867
+ In these situations, a user can still exert control over the relative scheduling of pulses, such as
868
+ for dynamical decoupling, by using "stretch" durations. These are constructed by
869
+ :meth:`.QuantumCircuit.add_stretch`, and interact with the classical-expression system described in
870
+ :mod:`qiskit.circuit.classical`, although they are not real-time mutable.
871
+
872
+ For example, we can add stretches and boxes to set up a system where two separate dynamic-decoupling
873
+ sequences are applied to the same qubit, while a pair of other qubits undergoes a delay of unknown
874
+ duration. The two sequences are constrained to have the same length, even though internally the
875
+ concrete DD pulses have differing lengths.
876
+
877
+ .. code-block:: python
878
+
879
+ from qiskit import QuantumCircuit
880
+ from qiskit.circuit.classical import expr
881
+
882
+ qc = QuantumCircuit(3, 3)
883
+ # This sets up three duration "degrees of freedom" that will
884
+ # be resolved later by a backend compiler.
885
+ a = qc.add_stretch("a")
886
+ b = qc.add_stretch("b")
887
+ c = qc.add_stretch("c")
888
+
889
+ # This set of operations involves feed-forward operations that
890
+ # Qiskit cannot know the length of.
891
+ with qc.box():
892
+ qc.h(1)
893
+ qc.cx(1, 2)
894
+ qc.measure([1, 2], [1, 2])
895
+ with qc.if_test(expr.equal(qc.clbits[1], qc.clbits[2])):
896
+ qc.h(1)
897
+
898
+ # While that stuff is happening to qubits (1, 2), we want
899
+ # qubit 0 to do two different DD sequences. The two DD
900
+ # sequences are fixed to be the same length as each other,
901
+ # even though they're both internally stretchy.
902
+ with qc.box(duration=a):
903
+ # Textbook NMRish XX DD.
904
+ qc.delay(b, 0)
905
+ qc.x(0)
906
+ qc.delay(expr.mul(2, b), 0)
907
+ qc.x(0)
908
+ qc.delay(b, 0)
909
+ with qc.box(duration=a):
910
+ # XY4-like DD.
911
+ for _ in range(2):
912
+ qc.delay(c, 0)
913
+ qc.y(0)
914
+ qc.delay(expr.mul(2, c), 0)
915
+ qc.x(0)
916
+ qc.delay(c, 0)
917
+
826
918
  .. _circuit-custom-gates:
827
919
 
828
920
  Creating custom instructions
@@ -84,6 +84,106 @@ used to pass serializers.
84
84
  .. autoclass:: QPYSerializer
85
85
  .. autoclass:: QPYFromOpenQASM3Serializer
86
86
  .. autoclass:: OpenQASM3Serializer
87
+
88
+
89
+ Examples
90
+ ========
91
+
92
+ A block-collection transpiler pass
93
+ ----------------------------------
94
+
95
+ A principal goal of the annotation framework is to allow custom analyses and commands to be stored
96
+ on circuits in an instruction-local manner, either by the user on entry to the compiler, or for one
97
+ compiler pass to store information for later consumption.
98
+
99
+ For example, we can write a simple transpiler pass that collects runs of single-qubit operations,
100
+ and puts each run into a :class:`.BoxOp`, the calculates the total unitary action and attaches it as
101
+ a custom annotation, so the same analysis does not need to be repeated later, even if the internals
102
+ of each block are optimized.
103
+
104
+ .. code-block:: python
105
+
106
+ from qiskit.circuit import annotation, QuantumCircuit, BoxOp
107
+ from qiskit.quantum_info import Operator
108
+ from qiskit.transpiler import TransformationPass
109
+
110
+ class PerformsUnitary(annotation.Annotation):
111
+ namespace = "unitary"
112
+ def __init__(self, matrix):
113
+ self.matrix = matrix
114
+
115
+ class Collect1qRuns(TransformationPass):
116
+ def run(self, dag):
117
+ for run in dag.collect_1q_runs():
118
+ block = QuantumCircuit(1)
119
+ for node in run:
120
+ block.append(node.op, [0], [])
121
+ box = BoxOp(block, annotations=[PerformsUnitary(Operator(block).data)])
122
+ dag.replace_block_with_op(run, box, {run[0].qargs[0]: 0})
123
+ return dag
124
+
125
+ In order to serialize the annotation to OpenQASM 3, we must define custom logic, since the analysis
126
+ itself is entirely custom. The serialization is separate to the annotation; there may be
127
+ circumstances in which serialization should be done differently.
128
+
129
+ .. code-block:: python
130
+
131
+ import ast
132
+ import numpy as np
133
+
134
+ class Serializer(annotation.OpenQASM3Serializer):
135
+ def dump(self, annotation):
136
+ if annotation.namespace != "unitary":
137
+ return NotImplemented
138
+ line = lambda row: "[" + ", ".join(repr(x) for x in row) + "]"
139
+ return "[" + ", ".join(line(row) for row in annotation.matrix.tolist()) + "]"
140
+
141
+ def load(self, namespace, payload):
142
+ if namespace != "unitary":
143
+ return NotImplemented
144
+ return PerformsUnitary(np.array(ast.literal_eval(payload), dtype=complex))
145
+
146
+ Finally, this can be put together, showing the output OpenQASM 3.
147
+
148
+ .. code-block:: python
149
+
150
+ from qiskit import qasm3
151
+
152
+ qc = QuantumCircuit(3)
153
+ qc.s(0)
154
+ qc.t(0)
155
+ qc.y(1)
156
+ qc.x(1)
157
+ qc.h(2)
158
+ qc.s(2)
159
+ collected = Collect1qRuns()(qc)
160
+
161
+ handlers = {"unitary": Serializer()}
162
+ dumped = qasm3.dumps(collected, annotation_handlers=handlers)
163
+ print(dumped)
164
+
165
+ .. code-block:: openqasm3
166
+
167
+ OPENQASM 3.0;
168
+ include "stdgates.inc";
169
+ qubit[3] q;
170
+ @unitary [[(1+0j), 0j], [0j, (-0.7071067811865475+0.7071067811865475j)]]
171
+ box {
172
+ s q[0];
173
+ t q[0];
174
+ }
175
+ @unitary [[1j, 0j], [0j, -1j]]
176
+ box {
177
+ y q[1];
178
+ x q[1];
179
+ }
180
+ @unitary [[(0.7071067811865475+0j), (0.7071067811865475+0j)], [0.7071067811865475j, \
181
+ -0.7071067811865475j]]
182
+ box {
183
+ h q[2];
184
+ s q[2];
185
+ }
186
+
87
187
  """
88
188
 
89
189
  from __future__ import annotations
@@ -377,7 +377,7 @@ class PiecewiseChebyshevGate(Gate):
377
377
  from qiskit import QuantumCircuit
378
378
  from qiskit.circuit.library.arithmetic import PiecewiseChebyshevGate
379
379
 
380
- f_x, num_state_qubits, degree, breakpoints = lambda x: np.arcsin(1 / x), 2, 2, [2, 4]
380
+ f_x, num_state_qubits, degree, breakpoints = lambda x: np.sin(1 / x), 2, 2, [2, 4]
381
381
  pw_approximation = PiecewiseChebyshevGate(f_x, num_state_qubits, degree, breakpoints)
382
382
 
383
383
  qc = QuantumCircuit(pw_approximation.num_qubits)
@@ -98,7 +98,7 @@ class ZZFeatureMap(PauliFeatureMap):
98
98
  @deprecate_func(
99
99
  since="2.1",
100
100
  additional_msg=(
101
- "Use the z_feature_map function as a replacement. Note that this will no longer "
101
+ "Use the zz_feature_map function as a replacement. Note that this will no longer "
102
102
  "return a BlueprintCircuit, but just a plain QuantumCircuit."
103
103
  ),
104
104
  removal_timeline="in Qiskit 3.0",
@@ -174,6 +174,7 @@ def quantum_volume(
174
174
  `arXiv:1811.12926 <https://arxiv.org/abs/1811.12926>`__
175
175
  """
176
176
  if isinstance(seed, np.random.Generator):
177
- seed = seed.integers(0, dtype=np.uint64)
177
+ max_value = np.iinfo(np.int64).max
178
+ seed = seed.integers(max_value, dtype=np.int64)
178
179
  depth = depth or num_qubits
179
180
  return QuantumCircuit._from_circuit_data(qv_rs(num_qubits, depth, seed))
@@ -683,8 +683,8 @@ class ParameterExpression:
683
683
  sympy_binds = {}
684
684
  for old, new in inst.binds.items():
685
685
  if isinstance(new, ParameterExpression):
686
- new = new.name
687
- sympy_binds[old.name] = new
686
+ new = new.sympify()
687
+ sympy_binds[old.sympify()] = new
688
688
  output = output.subs(sympy_binds, simultaneous=True)
689
689
  continue
690
690
 
@@ -4810,7 +4810,7 @@ class QuantumCircuit:
4810
4810
  target._name_update()
4811
4811
 
4812
4812
  if isinstance(parameters, collections.abc.Mapping):
4813
- raw_mapping = parameters if flat_input else self._unroll_param_dict(parameters)
4813
+ raw_mapping = parameters if flat_input else self._unroll_param_dict(parameters, strict)
4814
4814
  if strict and (
4815
4815
  extras := [
4816
4816
  parameter for parameter in raw_mapping if not self.has_parameter(parameter)
@@ -4833,7 +4833,7 @@ class QuantumCircuit:
4833
4833
  return self._data.has_control_flow_op()
4834
4834
 
4835
4835
  def _unroll_param_dict(
4836
- self, parameter_binds: Mapping[Parameter, ParameterValueType]
4836
+ self, parameter_binds: Mapping[Parameter, ParameterValueType], strict: bool = True
4837
4837
  ) -> Mapping[Parameter, ParameterValueType]:
4838
4838
  out = {}
4839
4839
  for parameter, value in parameter_binds.items():
@@ -4845,7 +4845,10 @@ class QuantumCircuit:
4845
4845
  )
4846
4846
  out.update(zip(parameter, value))
4847
4847
  elif isinstance(parameter, str):
4848
- out[self.get_parameter(parameter)] = value
4848
+ if strict:
4849
+ out[self.get_parameter(parameter)] = value
4850
+ if not strict and self.has_parameter(parameter):
4851
+ out[self.get_parameter(parameter)] = value
4849
4852
  else:
4850
4853
  out[parameter] = value
4851
4854
  return out
@@ -36,7 +36,18 @@ Exceptions
36
36
 
37
37
  .. autoexception:: DAGCircuitError
38
38
  .. autoexception:: DAGDependencyError
39
+
40
+ Utilities
41
+ =========
42
+
43
+ .. autosummary::
44
+ :toctree: ../stubs/
45
+
46
+ BlockCollapser
47
+ BlockCollector
48
+ BlockSplitter
39
49
  """
50
+ from .collect_blocks import BlockCollapser, BlockCollector, BlockSplitter
40
51
  from .dagcircuit import DAGCircuit
41
52
  from .dagnode import DAGNode, DAGOpNode, DAGInNode, DAGOutNode
42
53
  from .dagdepnode import DAGDepNode
@@ -17,11 +17,12 @@ from __future__ import annotations
17
17
 
18
18
  from collections.abc import Iterable, Callable
19
19
 
20
- from qiskit.dagcircuit import DAGDepNode
21
-
22
20
  from qiskit.circuit import QuantumCircuit, CircuitInstruction, ClassicalRegister, Bit
23
21
  from qiskit.circuit.controlflow import condition_resources
24
- from . import DAGOpNode, DAGCircuit, DAGDependency
22
+ from qiskit.dagcircuit.dagcircuit import DAGCircuit
23
+ from qiskit.dagcircuit.dagdependency import DAGDependency
24
+ from qiskit.dagcircuit.dagnode import DAGOpNode
25
+ from qiskit.dagcircuit.dagdepnode import DAGDepNode
25
26
  from .exceptions import DAGCircuitError
26
27
 
27
28
 
@@ -338,15 +339,18 @@ def split_block_into_layers(block: list[DAGOpNode | DAGDepNode]):
338
339
 
339
340
  class BlockCollapser:
340
341
  """This class implements various strategies of consolidating blocks of nodes
341
- in a DAG (direct acyclic graph). It works both with the
342
- :class:`~qiskit.dagcircuit.DAGCircuit` and
343
- :class:`~qiskit.dagcircuit.DAGDependency` DAG representations.
342
+ in a DAG (direct acyclic graph). It works both with
343
+ the :class:`~qiskit.dagcircuit.DAGCircuit`
344
+ and :class:`~qiskit.dagcircuit.DAGDependency` DAG representations.
344
345
  """
345
346
 
346
347
  def __init__(self, dag):
347
348
  """
348
349
  Args:
349
350
  dag (Union[DAGCircuit, DAGDependency]): The input DAG.
351
+
352
+ Raises:
353
+ DAGCircuitError: the input object is not a DAG.
350
354
  """
351
355
 
352
356
  self.dag = dag
@@ -174,6 +174,7 @@ def _for_loop_eq(node1, node2, bit_indices1, bit_indices2):
174
174
  def _box_eq(node1, node2, bit_indices1, bit_indices2):
175
175
  return (
176
176
  (node1.op.duration == node2.op.duration)
177
+ and (node1.op.unit == node2.op.unit)
177
178
  and (
178
179
  _circuit_to_dag(node1.op.blocks[0], node1.qargs, node1.cargs, bit_indices1)
179
180
  == _circuit_to_dag(node2.op.blocks[0], node2.qargs, node2.cargs, bit_indices2)
@@ -601,9 +601,9 @@ class BitArray(ShapedMixin):
601
601
 
602
602
  Args:
603
603
  observables: The observable(s) to take the expectation value of.
604
- Must have a shape broadcastable with with this bit array and
605
- the same number of qubits as the number of bits of this bit array.
606
- The observables must be diagonal (I, Z, 0 or 1) too.
604
+ Must have a shape broadcastable with with this bit array and
605
+ the same number of qubits as the number of bits of this bit array.
606
+ The observables must be diagonal (I, Z, 0 or 1) too.
607
607
 
608
608
  Returns:
609
609
  An array of expectation values whose shape is the broadcast shape of ``observables``
@@ -91,6 +91,7 @@ Optimizations
91
91
  Split2QUnitaries
92
92
  RemoveIdentityEquivalent
93
93
  ContractIdleWiresInControlFlow
94
+ OptimizeCliffordT
94
95
 
95
96
  Scheduling
96
97
  =============
@@ -48,11 +48,11 @@ class ApplyLayout(TransformationPass):
48
48
  TranspilerError: if no layout is found in ``property_set`` or no full physical qubits.
49
49
  """
50
50
  layout = self.property_set["layout"]
51
- if not layout:
51
+ if layout is None:
52
52
  raise TranspilerError(
53
53
  "No 'layout' is found in property_set. Please run a Layout pass in advance."
54
54
  )
55
- if len(layout) != (1 + max(layout.get_physical_bits())):
55
+ if len(layout) != (1 + max(layout.get_physical_bits(), default=-1)):
56
56
  raise TranspilerError("The 'layout' must be full (with ancilla).")
57
57
 
58
58
  post_layout = self.property_set["post_layout"]
@@ -1254,7 +1254,9 @@ class MCXSynthesis2DirtyKG24(HighLevelSynthesisPlugin):
1254
1254
  return None
1255
1255
 
1256
1256
  num_ctrl_qubits = high_level_object.num_ctrl_qubits
1257
- num_dirty_ancillas = options.get("num_dirty_ancillas", 0)
1257
+ num_dirty_ancillas = options.get("num_dirty_ancillas", 0) + options.get(
1258
+ "num_clean_ancillas", 0
1259
+ )
1258
1260
 
1259
1261
  if num_dirty_ancillas < 2:
1260
1262
  return None
@@ -1338,7 +1340,9 @@ class MCXSynthesis1DirtyKG24(HighLevelSynthesisPlugin):
1338
1340
  return None
1339
1341
 
1340
1342
  num_ctrl_qubits = high_level_object.num_ctrl_qubits
1341
- num_dirty_ancillas = options.get("num_dirty_ancillas", 0)
1343
+ num_dirty_ancillas = options.get("num_dirty_ancillas", 0) + options.get(
1344
+ "num_clean_ancillas", 0
1345
+ )
1342
1346
 
1343
1347
  if num_dirty_ancillas < 1:
1344
1348
  return None
@@ -1966,7 +1970,34 @@ class PauliEvolutionSynthesisRustiq(HighLevelSynthesisPlugin):
1966
1970
  # actual PauliEvolutionGate
1967
1971
  return None
1968
1972
 
1969
- algo = high_level_object.synthesis
1973
+ from qiskit.quantum_info import SparsePauliOp, SparseObservable
1974
+
1975
+ # The synthesis function synth_pauli_network_rustiq does not support SparseObservables,
1976
+ # so we need to convert them to SparsePauliOps.
1977
+ if isinstance(high_level_object.operator, SparsePauliOp):
1978
+ pauli_op = high_level_object.operator
1979
+
1980
+ elif isinstance(high_level_object.operator, SparseObservable):
1981
+ pauli_op = SparsePauliOp.from_sparse_observable(high_level_object.operator)
1982
+
1983
+ elif isinstance(high_level_object.operator, list):
1984
+ pauli_op = []
1985
+ for op in high_level_object.operator:
1986
+ if isinstance(op, SparseObservable):
1987
+ pauli_op.append(SparsePauliOp.from_sparse_observable(op))
1988
+ else:
1989
+ pauli_op.append(op)
1990
+
1991
+ else:
1992
+ raise TranspilerError("Invalid PauliEvolutionGate.")
1993
+
1994
+ evo = PauliEvolutionGate(
1995
+ pauli_op,
1996
+ time=high_level_object.time,
1997
+ label=high_level_object.label,
1998
+ synthesis=high_level_object.synthesis,
1999
+ )
2000
+ algo = evo.synthesis
1970
2001
 
1971
2002
  if not isinstance(algo, ProductFormula):
1972
2003
  warnings.warn(
@@ -1980,9 +2011,8 @@ class PauliEvolutionSynthesisRustiq(HighLevelSynthesisPlugin):
1980
2011
  if "preserve_order" in options:
1981
2012
  algo.preserve_order = options["preserve_order"]
1982
2013
 
1983
- num_qubits = high_level_object.num_qubits
1984
- pauli_network = algo.expand(high_level_object)
1985
-
2014
+ num_qubits = evo.num_qubits
2015
+ pauli_network = algo.expand(evo)
1986
2016
  optimize_count = options.get("optimize_count", True)
1987
2017
  preserve_order = options.get("preserve_order", True)
1988
2018
  upto_clifford = options.get("upto_clifford", False)
@@ -361,6 +361,10 @@ Unitary Synthesis Plugins
361
361
  :no-inherited-members:
362
362
  :no-special-members:
363
363
 
364
+ .. automodule:: qiskit.transpiler.passes.synthesis.clifford_unitary_synth_plugin
365
+ :no-inherited-members:
366
+ :no-special-members:
367
+
364
368
 
365
369
  High Level Synthesis
366
370
  --------------------
@@ -159,6 +159,13 @@ class Target(BaseTarget):
159
159
  angle :class:`~qiskit.circuit.library.RXGate` while ``rx`` will get the
160
160
  parameterized :class:`~qiskit.circuit.library.RXGate`.
161
161
 
162
+ This class can be queried via the mapping protocol, using the
163
+ instruction's name as a key. You can modify any property for an
164
+ instruction via the :meth:`.update_instruction_properties` method.
165
+ Modification via the mapping protocol or mutating the attributes of
166
+ a :class:`.InstructionProperties` object is **not** supported and
167
+ doing so will invalidate the internal state of the object.
168
+
162
169
  .. note::
163
170
 
164
171
  This class assumes that qubit indices start at 0 and are a contiguous
@@ -167,7 +174,7 @@ class Target(BaseTarget):
167
174
 
168
175
  .. note::
169
176
 
170
- This class only supports additions of gates, qargs, and qubits.
177
+ This class only supports additions of gates, qargs, and properties.
171
178
  If you need to remove one of these the best option is to iterate over
172
179
  an existing object and create a new subset (or use one of the methods
173
180
  to do this). The object internally caches different views and these
@@ -373,7 +380,13 @@ class Target(BaseTarget):
373
380
  self._instruction_schedule_map = None
374
381
 
375
382
  def update_instruction_properties(self, instruction, qargs, properties):
376
- """Update the property object for an instruction qarg pair already in the Target
383
+ """Update the property object for an instruction qarg pair already in the Target.
384
+
385
+ For ease of access, a user is able to obtain the mapping between an instruction's
386
+ applicable qargs and its instruction properties via the mapping protocol (using ``__getitem__``),
387
+ with the instruction's name as the key. This method is the only way to
388
+ modify/update the properties of an instruction in the ``Target``. Usage of the mapping protocol
389
+ for modifications is not supported.
377
390
 
378
391
  Args:
379
392
  instruction (str): The instruction name to update
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qiskit
3
- Version: 2.1.0rc1
3
+ Version: 2.1.1
4
4
  Summary: An open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives.
5
5
  Author-email: Qiskit Development Team <qiskit@us.ibm.com>
6
6
  License: Apache 2.0
@@ -1,10 +1,16 @@
1
+ qiskit-2.1.1.dist-info/RECORD,,
2
+ qiskit-2.1.1.dist-info/WHEEL,sha256=ABbCLNyMOjk3G47ycAleK7GxTLgTblZV1QN66WnLOkk,134
3
+ qiskit-2.1.1.dist-info/entry_points.txt,sha256=LgecGP9Htt6gU4ye0nHfANDekQtXNqWb3I8DtkhSGGg,6787
4
+ qiskit-2.1.1.dist-info/top_level.txt,sha256=_vjFXLv7qrHyJJOC2-JXfG54o4XQygW9GuQPxgtSt9Q,7
5
+ qiskit-2.1.1.dist-info/METADATA,sha256=RCShuNmGcrLYc2oX2cluUcaeZQ6XfIyZd3tug1WapIg,12881
6
+ qiskit-2.1.1.dist-info/licenses/LICENSE.txt,sha256=IXrBXbzaJ4LgBPUVKIbYR5iMY2eqoMT8jDVTY8Ib0iQ,11416
1
7
  qiskit/version.py,sha256=MiraFeJt5GQEspFyvP3qJedHen2C1e8dNEttzg0u7YU,2498
2
- qiskit/__init__.py,sha256=gXlX5vytSCaDsGRwN0917xZwsvZMOZATDYv7nHtDjKY,8234
3
- qiskit/_accelerate.abi3.so,sha256=q0YprPNgZUcvG_Dmo3OW26EC4nS_30ZkPDaLekp8CfE,11697440
8
+ qiskit/__init__.py,sha256=2hYX4-3IYwKs91dhsSzmh8u6LRkYU41LhQdaM39p-ZE,8256
9
+ qiskit/_accelerate.abi3.so,sha256=ltXnxvTsB6ZrdqAiwAoD-_1FWf9W7W6ZfkMwXFlWEWw,11732032
4
10
  qiskit/user_config.py,sha256=3ez0XDwu0WKnjdHB-LNk4XRTQl9Eu-WgqkXOC771pTs,10325
5
11
  qiskit/_numpy_compat.py,sha256=ZlnDTF2KBTKcVF489ZuxoBk6r9KLsMuhAlozFhOn0a8,2815
6
12
  qiskit/exceptions.py,sha256=78bbfww9680_v4CaNgepavY5DwGTN7_j47Ckob3lLPM,5619
7
- qiskit/VERSION.txt,sha256=D47LgxjJrudnt4tEIW1Bog8x2pJo2Yxsjf5m9HLH6GE,9
13
+ qiskit/VERSION.txt,sha256=ez_ycfE3PPuX6eUzSXlOFFDzeU5MB4jFSiBgx1ltqCE,6
8
14
  qiskit/visualization/circuit_visualization.py,sha256=6R-A96Uwb_RZOovsSB0LGVsC7lP5IhtLNp6VP2yVBwE,698
9
15
  qiskit/visualization/counts_visualization.py,sha256=Gy-rPzK5lWVMmX7ZSYUlAFvxcnlI59ym_5LnfJkSHSQ,16979
10
16
  qiskit/visualization/pass_manager_visualization.py,sha256=hJIvex7i-DQuOOq73TbPMzsQZDOaoElqrJO000v51ck,10972
@@ -56,9 +62,9 @@ qiskit/transpiler/basepasses.py,sha256=ecLZAg1lCHb58EMufMTJsZTQBUFDL6AFufjcII2jV
56
62
  qiskit/transpiler/passmanager.py,sha256=sYcP_7B3wwfbpuUSAAZiPBCuHu9tCSHDWDWQXPYtggw,21179
57
63
  qiskit/transpiler/passmanager_config.py,sha256=hAgKVbYbFOCQ1dCyh1SLX_MOc9BjTOPoadH2W4WVdRs,7447
58
64
  qiskit/transpiler/exceptions.py,sha256=ZxZk41x0T3pCcaEsDmpDg25SwIbCLQ6T1D-V54vwb1A,1710
59
- qiskit/transpiler/target.py,sha256=XeLYvQ3fdhWFkM4vAJRjoXX8L9PMj23FjzufMUgHm5c,40962
65
+ qiskit/transpiler/target.py,sha256=aIVg90Kcf37IvCFs5pjs5PbSq3WLTRaPaHXMaygIs8s,41802
60
66
  qiskit/transpiler/instruction_durations.py,sha256=b2LPBdNRB6TJ6zEGfiYe9oFvil0v5q8Vtp1Vpcpcwwo,10412
61
- qiskit/transpiler/passes/__init__.py,sha256=tlw9VzM5IDPsB0lgdG92R3MXx3PxSKkBRtgT_jj3h1E,7143
67
+ qiskit/transpiler/passes/__init__.py,sha256=eKoDdAdm7EfNnmMzIT_hSO_KlpwdUKMq3W3fsAuQOOk,7164
62
68
  qiskit/transpiler/passes/analysis/dag_longest_path.py,sha256=bOUWUR_2Y91pyvtXjEmAQxSgWyXaqo3XhSysn-3L-4E,957
63
69
  qiskit/transpiler/passes/analysis/num_tensor_factors.py,sha256=KK5DcFja8JsO0pfYvmYGnyEAPMZPYUTJpT9xWhwiYWI,950
64
70
  qiskit/transpiler/passes/analysis/__init__.py,sha256=zFkmqBW9ZfrVg0Ol6krRE7D0h-S5sF89qkfDdW_t5Eg,875
@@ -97,7 +103,7 @@ qiskit/transpiler/passes/layout/dense_layout.py,sha256=eA-ASTs2igO26T5IJwRo55LQq
97
103
  qiskit/transpiler/passes/layout/disjoint_utils.py,sha256=cgcCIxg5S1-S3wcuq9bytF8YHR79hSI_fOOuQ5Uf1z8,2270
98
104
  qiskit/transpiler/passes/layout/sabre_pre_layout.py,sha256=-jTQvS5fn1mbjFNf_ZpmLlyk_qm8Ki9XcmMhrgZn5-Q,9430
99
105
  qiskit/transpiler/passes/layout/csp_layout.py,sha256=J_IHZIYsZkEw0M5WcP-Rub9o6McJbYKyhycaxsMgPU4,5421
100
- qiskit/transpiler/passes/layout/apply_layout.py,sha256=lexxyqnZXK4w8lAWn2bfGO9qclpm0tiCKALZ8HDkF_g,5640
106
+ qiskit/transpiler/passes/layout/apply_layout.py,sha256=C0FHcngUS2Ep7IczqwV1B5CzfCdznBAxwiiHfcJE7Js,5656
101
107
  qiskit/transpiler/passes/layout/vf2_post_layout.py,sha256=p8qAG1KQ8fn0ruGpleBgnCnFtA0ae8h-AhyZ--TjUZI,17286
102
108
  qiskit/transpiler/passes/layout/trivial_layout.py,sha256=vLtp3gr4-KRrEwtw2NEVrY5LKuFrMKOY0Cr7LhdoMBs,2379
103
109
  qiskit/transpiler/passes/optimization/optimize_swap_before_measure.py,sha256=lAhs8RbLAMua2sJ5xQlMU1C8vJfa_n2y4zoqnoQAgVc,3024
@@ -156,9 +162,9 @@ qiskit/transpiler/passes/utils/barrier_before_final_measurements.py,sha256=1N8OM
156
162
  qiskit/transpiler/passes/utils/fixed_point.py,sha256=AiwkNvu-SLHvodddJRKfFEl7FPC62u1f3CB9lRne9eY,1773
157
163
  qiskit/transpiler/passes/synthesis/clifford_unitary_synth_plugin.py,sha256=5G3m9fi8iAlMM6vFdXlslqkpXqAxKVb07YfEZ9t1aWI,3532
158
164
  qiskit/transpiler/passes/synthesis/solovay_kitaev_synthesis.py,sha256=9Uxy6oh3H4-vKaGRGf_A6s4z5FeKJ4KmAn7n007NigA,12447
159
- qiskit/transpiler/passes/synthesis/hls_plugins.py,sha256=ZCrUK6gtv5T9Kcu1ufodyeAnfhIoATsGltZKhlpZLZM,89488
165
+ qiskit/transpiler/passes/synthesis/hls_plugins.py,sha256=k-4tvt0XnuA-Nhx-pfh54-wGx7oGi2JM30Kx0yxnsz0,90679
160
166
  qiskit/transpiler/passes/synthesis/__init__.py,sha256=W_8NiMU1IJJcgfEsBoWa4vJ9BkktLjevxRb0K54663A,993
161
- qiskit/transpiler/passes/synthesis/plugin.py,sha256=VppNWxqyI4lNo6qnIbnulAB74Og7LLNXXt7teh50Kt4,30966
167
+ qiskit/transpiler/passes/synthesis/plugin.py,sha256=TGC8hJS5dA9xhQVLMYoY7lJCpL3J6Jj9XaAXoZDJKV0,31098
162
168
  qiskit/transpiler/passes/synthesis/linear_functions_synthesis.py,sha256=Q1r-52HMETK_7iWTMmJKGU39rNws-MrmGDHh7TgQVj4,1407
163
169
  qiskit/transpiler/passes/synthesis/high_level_synthesis.py,sha256=8RgceAqPgTJYCc5uBhQpyfWr39hF6EHd2HKyUMTawdY,19932
164
170
  qiskit/transpiler/passes/synthesis/unitary_synthesis.py,sha256=U0JZOEuVCjAfeCk4jkrBLuwQ6wppP6zAMTA6A57VTAg,18999
@@ -219,7 +225,7 @@ qiskit/qasm2/parse.py,sha256=zaCMS0xX45MpVlNGS_4PN2acMDyw-nuJhAoxdcWEBMI,18556
219
225
  qiskit/circuit/store.py,sha256=3s_Xala9bdnw79Ya145EnNu_zDACCDLrESx7YmtIOEw,3171
220
226
  qiskit/circuit/measure.py,sha256=eJZ_cRyOyogSyo2eQD8I0Q3uJ1QKZk1w9fTIyJzebhk,1811
221
227
  qiskit/circuit/parametertable.py,sha256=6sT2UO-U4MoHoz-w6UabDgdAZtpqdVfmJ-gb1uyVbqg,3269
222
- qiskit/circuit/annotation.py,sha256=TjfTe7H0sME9tnPampVcL3CKdV-NQPUMECeG8RNBkXw,17558
228
+ qiskit/circuit/annotation.py,sha256=w6_rCQnoXSIkU2R7KxCMuhzAYSrV8SlfBrp-B9KyLIo,20708
223
229
  qiskit/circuit/commutation_checker.py,sha256=TqxY7LuB7dqfFb7mPnXzRfkXKd8MXiyWKOp61bzIn6M,4895
224
230
  qiskit/circuit/_classical_resource_map.py,sha256=V_rYxYKSEp8sIraKGILSCIgkeINd14ZumWuSURJGA6s,7269
225
231
  qiskit/circuit/parametervector.py,sha256=2YfNejcpqiKPHFOVQP7MME3jqSRrjpXcBBQ7HCuqumA,4767
@@ -227,10 +233,10 @@ qiskit/circuit/annotated_operation.py,sha256=9TPDzb_iFHjz1Qb-zekywdwD2FIe1J2kZM1
227
233
  qiskit/circuit/barrier.py,sha256=4dhN4lie1DhcHrlwi5OJ8ghJ_xmdb75PDzmEm173vKk,1586
228
234
  qiskit/circuit/reset.py,sha256=ZN1fPET4Lqsw8N03kyp4JVdM6auxnsiS1Hy_u_JHn24,1196
229
235
  qiskit/circuit/duration.py,sha256=_nN8cP9vjjurDXu74a_wiFOsP7bDmDcQgbjmzkQadGo,2439
230
- qiskit/circuit/__init__.py,sha256=dlAjPmv5RhWIKKzucqPgehiGPN4e2xoqpi8hLOdOFfs,62197
236
+ qiskit/circuit/__init__.py,sha256=vICDD3M3gZKNkmAyjZNwUCHjht8RHbqU3bmoF6dYH0g,65885
231
237
  qiskit/circuit/operation.py,sha256=5SrIb_ap6EVKRHMNud5t-Iu7RU3Hz_KFSFjUUfHuf9w,2077
232
238
  qiskit/circuit/_add_control.py,sha256=I8tmfyUfR_D0YMKOsrYIR0XTHavI2Yben3V59b8lD0Y,11817
233
- qiskit/circuit/parameterexpression.py,sha256=GoCBRkNiksn9ejMesAUz8pgEu3iycpgRxiYfGDoAtdo,28413
239
+ qiskit/circuit/parameterexpression.py,sha256=27Tqr7VXYxjgzcfMzkT3UX-FxYHaEl8CY8QX7Q1Pulc,28423
234
240
  qiskit/circuit/delay.py,sha256=PcJ2DFo4HaFxr8BAoHEsH3gsVxb_G5N9Ai3DnB1uuuk,6583
235
241
  qiskit/circuit/twirling.py,sha256=HmpR4EzfKEkI5hW50gstzg2S6f464jF6MbtGquyGbG8,6213
236
242
  qiskit/circuit/gate.py,sha256=YPmZEWYDmsheKjSLOYg2GgYGqJEMnKUM5ngisA_n3oQ,10171
@@ -239,7 +245,7 @@ qiskit/circuit/singleton.py,sha256=NCs1BeOkFwThKU3GIyT3AwW8Z81aW_jCoRemYswii7Q,3
239
245
  qiskit/circuit/controlledgate.py,sha256=AimgMwjGI5xnr13-1pzJJix7B5bfBaOhDfRJ4eFSYyo,9792
240
246
  qiskit/circuit/exceptions.py,sha256=QoT6kFuoVLe6lWUlTKkSMWufVtyfDCgaUe1kyv79WAY,691
241
247
  qiskit/circuit/equivalence_library.py,sha256=7f2T6c7sbDWaVQNVALNJL0olLVFZmHgA9xzcy7_FdDQ,708
242
- qiskit/circuit/quantumcircuit.py,sha256=efnU3b3M0DTn0DvsBvZKM4tUkbzGcncjjRDLkgly2Rs,323325
248
+ qiskit/circuit/quantumcircuit.py,sha256=x3NyUO5a3jHvSyZOwwLDSDFjCmCC-vJXqJE6z0KKw6A,323513
243
249
  qiskit/circuit/_standard_gates_commutations.py,sha256=1E6i6Atz3PkHGpguFFfTOcD9ffXCncCE1Jx6AlafMww,99006
244
250
  qiskit/circuit/instruction.py,sha256=jWu4tCkrKoXaePFVrObgMebLhRO_Zb4wXT4f7QB38BY,20884
245
251
  qiskit/circuit/equivalence.py,sha256=8KmspRNLHbMx3OYG76ESA5_nXZJRDfvoDb3mhy7eV4A,3436
@@ -256,7 +262,7 @@ qiskit/circuit/library/graph_state.py,sha256=trwjzOzATVTa6vMnfjdVfknQtbMXg79bOL_
256
262
  qiskit/circuit/library/iqp.py,sha256=d1QWeyF_AaToE9N1xCos4Kwp2sS6TdjWTZl17jJ_2U8,6112
257
263
  qiskit/circuit/library/fourier_checking.py,sha256=B3EOoLvLaLoGqp_I6l6XcDE2XK7wGLl7v6Vxx1MlxWQ,6406
258
264
  qiskit/circuit/library/__init__.py,sha256=_7FYcalYqgpA10NPTHzXXKhrzLlksgLY9i1EkxSohpE,25512
259
- qiskit/circuit/library/quantum_volume.py,sha256=dtd0B8Og7ds_OFF4QQ4VM8MlD0rixLSnTMTms8kPseE,7311
265
+ qiskit/circuit/library/quantum_volume.py,sha256=DWRWqNeiO0E_50XLFce1npeyntp1miE2o5HKxSnmyR4,7361
260
266
  qiskit/circuit/library/phase_estimation.py,sha256=4PIYeoshsTlWNBcXYMCFwNCf-kamTK_iGrNWA98Kwvc,6610
261
267
  qiskit/circuit/library/overlap.py,sha256=7LjlpPO7lQgNyZB1WCP5jKF-WYfe8kDcBuMC1YOoV8E,7166
262
268
  qiskit/circuit/library/grover_operator.py,sha256=VjNqwQ8MPYoc2Z6ngZ293QoYOLbOT74SYr0D0fdOzl8,28490
@@ -285,7 +291,7 @@ qiskit/circuit/library/basis_change/__init__.py,sha256=JFOleW2bg9vOFdWs2RbrFDpUP
285
291
  qiskit/circuit/library/data_preparation/state_preparation.py,sha256=YifBW_HCP5Jj4ndBAAmmJho687DVOfKmQLOk-MkA1d8,14134
286
292
  qiskit/circuit/library/data_preparation/pauli_feature_map.py,sha256=l6ldD4SRrRfODV45ZJZVCsTTJNtEHZaBkMZL2eIWRSE,32948
287
293
  qiskit/circuit/library/data_preparation/__init__.py,sha256=LZbf6BAV4JDDlD83b-0og5SDeQGPKQas0qOid87n06g,2456
288
- qiskit/circuit/library/data_preparation/_zz_feature_map.py,sha256=gQHtT5ftbhreNRKa08SHYcoFXjuN9hspo0nGjhXf-qI,7016
294
+ qiskit/circuit/library/data_preparation/_zz_feature_map.py,sha256=pjS8Hn7TXG6BaGiYXLp1UrUd1iOLjrfhr9DQvqXojoI,7017
289
295
  qiskit/circuit/library/data_preparation/initializer.py,sha256=HBUHg-8KfJTEGzbO47rKqKtx5hWPnObVxREScgHx8Fk,4437
290
296
  qiskit/circuit/library/data_preparation/_z_feature_map.py,sha256=MAabXV7w_8tQy3Wdbhytr3LwX-x28VxCCXVsIwodWQk,6719
291
297
  qiskit/circuit/library/boolean_logic/quantum_xor.py,sha256=MD15OdsCkXU-NB_Aln_Xvn-es3qEMnd4YYjWIfHefgA,5456
@@ -293,7 +299,7 @@ qiskit/circuit/library/boolean_logic/__init__.py,sha256=qww1AAl07NvNvz15GOvuj15G
293
299
  qiskit/circuit/library/boolean_logic/quantum_and.py,sha256=pJk2eMFLDk0bJH9kqaU-BtcEBYuPtNWe4DTdlDxmy9Y,8224
294
300
  qiskit/circuit/library/boolean_logic/inner_product.py,sha256=Sz_OXPDF4qFVn3TtE9EOFN7Er92T6ZP00RwOZGUDz50,5431
295
301
  qiskit/circuit/library/boolean_logic/quantum_or.py,sha256=k425IrSDtDtH6zVu09kEeN8TF2qxmT-yj7-dTA-9qx8,8075
296
- qiskit/circuit/library/arithmetic/piecewise_chebyshev.py,sha256=8fTZPUZXxS3Hax0KrMC0NIok1eCpYsfhyLNuJZJCiZQ,19482
302
+ qiskit/circuit/library/arithmetic/piecewise_chebyshev.py,sha256=96734kELTdaXe_QnYdLM7S56ZtY719nOxEU4MJB2Zsg,19479
297
303
  qiskit/circuit/library/arithmetic/exact_reciprocal.py,sha256=XTfydNy0veTks3mRnbsq_7wtTYLRGOzBLsPxxvrOnAI,5317
298
304
  qiskit/circuit/library/arithmetic/quadratic_form.py,sha256=wt3MR7VGqywzsozyNhqhakdyVJHh3mDJk8KZm1YU2jc,14543
299
305
  qiskit/circuit/library/arithmetic/integer_comparator.py,sha256=cuwXfNcRSxcViEeb3jS4hGJhPoSwtKqzMCj1gK6oOKc,6674
@@ -476,13 +482,13 @@ qiskit/converters/dagdependency_to_circuit.py,sha256=hBbcGS37UjgV3pCvKn20cPKJeVG
476
482
  qiskit/converters/dag_to_circuit.py,sha256=cryxjYwHdDJmKD5IlteXGBiorfufS_ColziOE4-gfqs,2922
477
483
  qiskit/converters/dag_to_dagdependency_v2.py,sha256=6dUYmBovXxZt3Ka-O2jWRT5PAYw0KWsBan1OqD85-is,1441
478
484
  qiskit/converters/dag_to_dagdependency.py,sha256=KUB5KtUs5n_hBy_FJXbPBISnWasLL8HqL4pwRAiiZ-k,1778
479
- qiskit/dagcircuit/collect_blocks.py,sha256=dmFr3sFIWTsqdC0I_rc2siNYD6dFCjCabT_3jRUv2jE,16964
485
+ qiskit/dagcircuit/collect_blocks.py,sha256=JUp0rWzLB9bi2tFKE4hOHepJRAEoMD1curnUpJXGvig,17157
480
486
  qiskit/dagcircuit/dagdependency.py,sha256=12UExCdmyNPEHItjde9mHLveEcMBhZc5COvc6VAL7PQ,23083
481
487
  qiskit/dagcircuit/dagdepnode.py,sha256=gdZAyL9eZQPTMj4ZDKxz_bXd57QJbRB3RIi-dhBkHH0,5255
482
488
  qiskit/dagcircuit/dagdependency_v2.py,sha256=idiwpCFwktngNjDgBNKUJzj_DYM2xenpRN0OH0ZA90o,22148
483
- qiskit/dagcircuit/__init__.py,sha256=_EqnZKmQ3CdSov9QQDTSYcV21NKMluxy-YKluO9llPE,1192
489
+ qiskit/dagcircuit/__init__.py,sha256=2lsl-xcOwgV9FuDwHcgBPIMSwr4UfVslnTPCRRIW0S4,1382
484
490
  qiskit/dagcircuit/exceptions.py,sha256=Jy8-MnQBLRphHwwE1PAeDfj9HOY70qp7r0k1sC_CiZE,1234
485
- qiskit/dagcircuit/dagnode.py,sha256=4rJ1BwEbas_pXu9lYv62I3rVUUxy-OxoBgAq2WCl0AA,6839
491
+ qiskit/dagcircuit/dagnode.py,sha256=hidpSXBYCUGahqca7WNDKcSHeyfjkT_d_kV_mi8MoiM,6884
486
492
  qiskit/dagcircuit/dagcircuit.py,sha256=5Q-E4j-SmDU3ysdW50Iw5Wdww94HaSW3JZ8ov1XslKo,1041
487
493
  qiskit/utils/units.py,sha256=uIu9F3cVgF7DdPPypTplO_DvZFhrPt7ZzF3Y_7i_bac,4123
488
494
  qiskit/utils/deprecation.py,sha256=vCVqW_xcFupFWjR1zPAaalGuH5QrhRnwzE4xq5BJzzA,15603
@@ -596,7 +602,7 @@ qiskit/primitives/containers/bindings_array.py,sha256=Rm3h_F6DQNtHqfQlb_N0Wuc_b_
596
602
  qiskit/primitives/containers/__init__.py,sha256=KT3UeYEkPel9vCyYwQeVmsgovX9wqCr0PZqGlnPU3UE,924
597
603
  qiskit/primitives/containers/estimator_pub.py,sha256=hr4B-q4cctt32NT_DLWDM7Q_zeMxR-qbGkYWljXsVSQ,8130
598
604
  qiskit/primitives/containers/sampler_pub_result.py,sha256=LIU3h3C5-fdnVwtTaWKM-7LurtFLfeaHF5yNSiR9O04,2790
599
- qiskit/primitives/containers/bit_array.py,sha256=te957FO6FCq1zZgDXRufxxew3eiXMI6sq4X8fTbd4NA,32113
605
+ qiskit/primitives/containers/bit_array.py,sha256=i28MEr3iGgX2QK2rKOjTaGHBDBv62xx8_Rp6OPTGZSQ,32125
600
606
  qiskit/primitives/containers/shape.py,sha256=x1efHbvXKMGDfANboE3UGVK08uNVxWj2koxYc3YSgHI,3866
601
607
  qiskit/primitives/containers/pub_result.py,sha256=IIM3jKczU2N4appeY1kh0BftssVD4LcwhbD2J791DTQ,1420
602
608
  qiskit/primitives/containers/observables_array.py,sha256=3yJgiBxTajS_69Z6yaiWyuylypbfvhh2NA0mjJWq9ZY,14601
@@ -691,9 +697,3 @@ qiskit/quantum_info/states/densitymatrix.py,sha256=Xc21mIvH2WM-u_XxMbQImjgzGILH8
691
697
  qiskit/quantum_info/states/quantum_state.py,sha256=v__EAFkAu2aJwafAfaVDce5_525fTkTrTaJdrdQhAr0,17774
692
698
  qiskit/compiler/__init__.py,sha256=oDzbHDFJQlrjnwsRZFfJJ5m_2ioDP6untCZP-8S_2os,802
693
699
  qiskit/compiler/transpiler.py,sha256=vuobTz2HqV4H-fJ54_E8ZrxAYtOClg0lqR3SJ2b7-BU,18048
694
- qiskit-2.1.0rc1.dist-info/RECORD,,
695
- qiskit-2.1.0rc1.dist-info/WHEEL,sha256=ABbCLNyMOjk3G47ycAleK7GxTLgTblZV1QN66WnLOkk,134
696
- qiskit-2.1.0rc1.dist-info/entry_points.txt,sha256=LgecGP9Htt6gU4ye0nHfANDekQtXNqWb3I8DtkhSGGg,6787
697
- qiskit-2.1.0rc1.dist-info/top_level.txt,sha256=_vjFXLv7qrHyJJOC2-JXfG54o4XQygW9GuQPxgtSt9Q,7
698
- qiskit-2.1.0rc1.dist-info/METADATA,sha256=LcIfyZkd8opLJ2Q37ZSMMCpo5RzjDng6DTxz4QjTrAk,12884
699
- qiskit-2.1.0rc1.dist-info/licenses/LICENSE.txt,sha256=IXrBXbzaJ4LgBPUVKIbYR5iMY2eqoMT8jDVTY8Ib0iQ,11416