qiskit 1.1.0__cp38-abi3-win_amd64.whl → 1.1.1__cp38-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.
qiskit/VERSION.txt CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.1.1
qiskit/_accelerate.pyd CHANGED
Binary file
@@ -816,10 +816,11 @@ method <https://numpy.org/devdocs/user/basics.interoperability.html#the-array-me
816
816
  ``__array__``. This is used by :meth:`Gate.to_matrix`, and has the signature:
817
817
 
818
818
  .. currentmodule:: None
819
- .. py:method:: __array__(dtype=None, copy=None)
819
+ .. py:method:: object.__array__(dtype=None, copy=None)
820
820
 
821
- Return a Numpy array representing the gate. This can use the gate's :attr:`~Instruction.params`
822
- field, and may assume that these are numeric values (assuming the subclass expects that) and not
821
+ Return a Numpy array representing the gate. This can use the gate's
822
+ :attr:`~qiskit.circuit.Instruction.params` field, and may assume that these are numeric
823
+ values (assuming the subclass expects that) and not
823
824
  :ref:`compile-time parameters <circuit-compile-time-parameters>`.
824
825
 
825
826
  For greatest efficiency, the returned array should default to a dtype of :class:`complex`.
@@ -97,7 +97,7 @@ class PauliFeatureMap(NLocal):
97
97
  >>> from qiskit.circuit.library import EfficientSU2
98
98
  >>> prep = PauliFeatureMap(3, reps=3, paulis=['Z', 'YY', 'ZXZ'])
99
99
  >>> wavefunction = EfficientSU2(3)
100
- >>> classifier = prep.compose(wavefunction
100
+ >>> classifier = prep.compose(wavefunction)
101
101
  >>> classifier.num_parameters
102
102
  27
103
103
  >>> classifier.count_ops()
@@ -110,7 +110,7 @@ class TwoLocal(NLocal):
110
110
 
111
111
  >>> entangler_map = [[0, 3], [0, 2]] # entangle the first and last two-way
112
112
  >>> two = TwoLocal(4, [], 'cry', entangler_map, reps=1)
113
- >>> circuit = two + two
113
+ >>> circuit = two.compose(two)
114
114
  >>> print(circuit.decompose().draw()) # note, that the parameters are the same!
115
115
  q_0: ─────■───────────■───────────■───────────■──────
116
116
  │ │ │ │
@@ -439,6 +439,9 @@ class ParameterExpression:
439
439
  raise TypeError("could not cast expression to int") from exc
440
440
 
441
441
  def __hash__(self):
442
+ if not self._parameter_symbols:
443
+ # For fully bound expressions, fall back to the underlying value
444
+ return hash(self.numeric())
442
445
  return hash((self._parameter_keys, self._symbol_expr))
443
446
 
444
447
  def __copy__(self):
@@ -50,11 +50,10 @@ class ParameterVectorElement(Parameter):
50
50
  class ParameterVector:
51
51
  """ParameterVector class to quickly generate lists of parameters."""
52
52
 
53
- __slots__ = ("_name", "_params", "_size", "_root_uuid")
53
+ __slots__ = ("_name", "_params", "_root_uuid")
54
54
 
55
55
  def __init__(self, name, length=0):
56
56
  self._name = name
57
- self._size = length
58
57
  self._root_uuid = uuid4()
59
58
  root_uuid_int = self._root_uuid.int
60
59
  self._params = [
@@ -76,32 +75,38 @@ class ParameterVector:
76
75
  return self._params.index(value)
77
76
 
78
77
  def __getitem__(self, key):
79
- if isinstance(key, slice):
80
- start, stop, step = key.indices(self._size)
81
- return self.params[start:stop:step]
82
-
83
- if key > self._size:
84
- raise IndexError(f"Index out of range: {key} > {self._size}")
85
78
  return self.params[key]
86
79
 
87
80
  def __iter__(self):
88
- return iter(self.params[: self._size])
81
+ return iter(self.params)
89
82
 
90
83
  def __len__(self):
91
- return self._size
84
+ return len(self._params)
92
85
 
93
86
  def __str__(self):
94
- return f"{self.name}, {[str(item) for item in self.params[: self._size]]}"
87
+ return f"{self.name}, {[str(item) for item in self.params]}"
95
88
 
96
89
  def __repr__(self):
97
90
  return f"{self.__class__.__name__}(name={self.name}, length={len(self)})"
98
91
 
99
92
  def resize(self, length):
100
- """Resize the parameter vector.
101
-
102
- If necessary, new elements are generated. If length is smaller than before, the
103
- previous elements are cached and not re-generated if the vector is enlarged again.
93
+ """Resize the parameter vector. If necessary, new elements are generated.
94
+
95
+ Note that the UUID of each :class:`.Parameter` element will be generated
96
+ deterministically given the root UUID of the ``ParameterVector`` and the index
97
+ of the element. In particular, if a ``ParameterVector`` is resized to
98
+ be smaller and then later resized to be larger, the UUID of the later
99
+ generated element at a given index will be the same as the UUID of the
100
+ previous element at that index.
104
101
  This is to ensure that the parameter instances do not change.
102
+
103
+ >>> from qiskit.circuit import ParameterVector
104
+ >>> pv = ParameterVector("theta", 20)
105
+ >>> elt_19 = pv[19]
106
+ >>> rv.resize(10)
107
+ >>> rv.resize(20)
108
+ >>> pv[19] == elt_19
109
+ True
105
110
  """
106
111
  if length > len(self._params):
107
112
  root_uuid_int = self._root_uuid.int
@@ -111,4 +116,5 @@ class ParameterVector:
111
116
  for i in range(len(self._params), length)
112
117
  ]
113
118
  )
114
- self._size = length
119
+ else:
120
+ del self._params[length:]
@@ -45,7 +45,7 @@ from qiskit.circuit.parameter import Parameter
45
45
  from qiskit.circuit.exceptions import CircuitError
46
46
  from . import _classical_resource_map
47
47
  from ._utils import sort_parameters
48
- from .controlflow import ControlFlowOp
48
+ from .controlflow import ControlFlowOp, _builder_utils
49
49
  from .controlflow.builder import CircuitScopeInterface, ControlFlowBuilderBlock
50
50
  from .controlflow.break_loop import BreakLoopOp, BreakLoopPlaceholder
51
51
  from .controlflow.continue_loop import ContinueLoopOp, ContinueLoopPlaceholder
@@ -3307,6 +3307,9 @@ class QuantumCircuit:
3307
3307
  ) -> int:
3308
3308
  """Return circuit depth (i.e., length of critical path).
3309
3309
 
3310
+ .. warning::
3311
+ This operation is not well defined if the circuit contains control-flow operations.
3312
+
3310
3313
  Args:
3311
3314
  filter_function: A function to decide which instructions count to increase depth.
3312
3315
  Should take as a single positional input a :class:`CircuitInstruction`.
@@ -3332,59 +3335,40 @@ class QuantumCircuit:
3332
3335
 
3333
3336
  assert qc.depth(lambda instr: len(instr.qubits) > 1) == 1
3334
3337
  """
3335
- # Assign each bit in the circuit a unique integer
3336
- # to index into op_stack.
3337
- bit_indices: dict[Qubit | Clbit, int] = {
3338
- bit: idx for idx, bit in enumerate(self.qubits + self.clbits)
3338
+ obj_depths = {
3339
+ obj: 0 for objects in (self.qubits, self.clbits, self.iter_vars()) for obj in objects
3339
3340
  }
3340
3341
 
3341
- # If no bits, return 0
3342
- if not bit_indices:
3343
- return 0
3342
+ def update_from_expr(objects, node):
3343
+ for var in expr.iter_vars(node):
3344
+ if var.standalone:
3345
+ objects.add(var)
3346
+ else:
3347
+ objects.update(_builder_utils.node_resources(var).clbits)
3344
3348
 
3345
- # A list that holds the height of each qubit
3346
- # and classical bit.
3347
- op_stack = [0] * len(bit_indices)
3348
-
3349
- # Here we are playing a modified version of
3350
- # Tetris where we stack gates, but multi-qubit
3351
- # gates, or measurements have a block for each
3352
- # qubit or cbit that are connected by a virtual
3353
- # line so that they all stacked at the same depth.
3354
- # Conditional gates act on all cbits in the register
3355
- # they are conditioned on.
3356
- # The max stack height is the circuit depth.
3357
3349
  for instruction in self._data:
3358
- levels = []
3359
- reg_ints = []
3360
- for ind, reg in enumerate(instruction.qubits + instruction.clbits):
3361
- # Add to the stacks of the qubits and
3362
- # cbits used in the gate.
3363
- reg_ints.append(bit_indices[reg])
3364
- if filter_function(instruction):
3365
- levels.append(op_stack[reg_ints[ind]] + 1)
3366
- else:
3367
- levels.append(op_stack[reg_ints[ind]])
3368
- # Assuming here that there is no conditional
3369
- # snapshots or barriers ever.
3370
- if getattr(instruction.operation, "condition", None):
3371
- # Controls operate over all bits of a classical register
3372
- # or over a single bit
3373
- if isinstance(instruction.operation.condition[0], Clbit):
3374
- condition_bits = [instruction.operation.condition[0]]
3350
+ objects = set(itertools.chain(instruction.qubits, instruction.clbits))
3351
+ if (condition := getattr(instruction.operation, "condition", None)) is not None:
3352
+ objects.update(_builder_utils.condition_resources(condition).clbits)
3353
+ if isinstance(condition, expr.Expr):
3354
+ update_from_expr(objects, condition)
3375
3355
  else:
3376
- condition_bits = instruction.operation.condition[0]
3377
- for cbit in condition_bits:
3378
- idx = bit_indices[cbit]
3379
- if idx not in reg_ints:
3380
- reg_ints.append(idx)
3381
- levels.append(op_stack[idx] + 1)
3382
-
3383
- max_level = max(levels)
3384
- for ind in reg_ints:
3385
- op_stack[ind] = max_level
3386
-
3387
- return max(op_stack)
3356
+ objects.update(_builder_utils.condition_resources(condition).clbits)
3357
+ elif isinstance(instruction.operation, SwitchCaseOp):
3358
+ update_from_expr(objects, expr.lift(instruction.operation.target))
3359
+ elif isinstance(instruction.operation, Store):
3360
+ update_from_expr(objects, instruction.operation.lvalue)
3361
+ update_from_expr(objects, instruction.operation.rvalue)
3362
+
3363
+ # If we're counting this as adding to depth, do so. If not, it still functions as a
3364
+ # data synchronisation point between the objects (think "barrier"), so the depths still
3365
+ # get updated to match the current max over the affected objects.
3366
+ new_depth = max((obj_depths[obj] for obj in objects), default=0)
3367
+ if filter_function(instruction):
3368
+ new_depth += 1
3369
+ for obj in objects:
3370
+ obj_depths[obj] = new_depth
3371
+ return max(obj_depths.values(), default=0)
3388
3372
 
3389
3373
  def width(self) -> int:
3390
3374
  """Return number of qubits plus clbits in circuit.
@@ -544,7 +544,7 @@ class DAGCircuit:
544
544
 
545
545
  def remove_qregs(self, *qregs):
546
546
  """
547
- Remove classical registers from the circuit, leaving underlying bits
547
+ Remove quantum registers from the circuit, leaving underlying bits
548
548
  in place.
549
549
 
550
550
  Raises:
@@ -153,12 +153,12 @@ Here is an example of how a sampler is used.
153
153
  # collect 128 shots from the Bell circuit
154
154
  job = sampler.run([bell], shots=128)
155
155
  job_result = job.result()
156
- print(f"The primitive-job finished with result {job_result}"))
156
+ print(f"The primitive-job finished with result {job_result}")
157
157
 
158
158
  # run a sampler job on the parameterized circuits
159
- job2 = sampler.run([(pqc, theta1), (pqc2, theta2)]
159
+ job2 = sampler.run([(pqc, theta1), (pqc2, theta2)])
160
160
  job_result = job2.result()
161
- print(f"The primitive-job finished with result {job_result}"))
161
+ print(f"The primitive-job finished with result {job_result}")
162
162
 
163
163
 
164
164
  Overview of EstimatorV1
@@ -214,7 +214,7 @@ Here is an example of how the estimator is used.
214
214
  # calculate [ <psi1(theta1)|H1|psi1(theta1)> ]
215
215
  job = estimator.run([psi1], [H1], [theta1])
216
216
  job_result = job.result() # It will block until the job finishes.
217
- print(f"The primitive-job finished with result {job_result}"))
217
+ print(f"The primitive-job finished with result {job_result}")
218
218
 
219
219
  # calculate [ <psi1(theta1)|H1|psi1(theta1)>,
220
220
  # <psi2(theta2)|H2|psi2(theta2)>,
@@ -88,12 +88,6 @@ class BackendV1(Backend, ABC):
88
88
  This next bit is necessary just because autosummary generally won't summarise private
89
89
  methods; changing that behaviour would have annoying knock-on effects through all the
90
90
  rest of the documentation, so instead we just hard-code the automethod directive.
91
-
92
- In addition to the public abstract methods, subclasses should also implement the following
93
- private methods:
94
-
95
- .. automethod:: _default_options
96
- :noindex:
97
91
  """
98
92
  self._configuration = configuration
99
93
  self._options = self._default_options()
qiskit/pulse/builder.py CHANGED
@@ -74,8 +74,8 @@ a pulse:
74
74
 
75
75
  The builder initializes a :class:`.pulse.Schedule`, ``pulse_prog``
76
76
  and then begins to construct the program within the context. The output pulse
77
- schedule will survive after the context is exited and can be transpiled and executed like a
78
- normal Qiskit schedule using ``backend.run(transpile(pulse_prog, backend))``.
77
+ schedule will survive after the context is exited and can be used like a
78
+ normal Qiskit schedule.
79
79
 
80
80
  Pulse programming has a simple imperative style. This leaves the programmer
81
81
  to worry about the raw experimental physics of pulse programming and not
qiskit/qasm2/parse.py CHANGED
@@ -16,6 +16,8 @@ import dataclasses
16
16
  import math
17
17
  from typing import Iterable, Callable
18
18
 
19
+ import numpy as np
20
+
19
21
  from qiskit.circuit import (
20
22
  Barrier,
21
23
  CircuitInstruction,
@@ -30,6 +32,7 @@ from qiskit.circuit import (
30
32
  Reset,
31
33
  library as lib,
32
34
  )
35
+ from qiskit.quantum_info import Operator
33
36
  from qiskit._accelerate.qasm2 import (
34
37
  OpCode,
35
38
  UnaryOpCode,
@@ -315,6 +318,11 @@ class _DefinedGate(Gate):
315
318
  raise ValueError(f"received invalid bytecode to build gate: {op}")
316
319
  self._definition = qc
317
320
 
321
+ def __array__(self, dtype=None, copy=None):
322
+ if copy is False:
323
+ raise ValueError("unable to avoid copy while creating an array as requested")
324
+ return np.asarray(Operator(self.definition), dtype=dtype)
325
+
318
326
  # It's fiddly to implement pickling for PyO3 types (the bytecode stream), so instead if we need
319
327
  # to pickle ourselves, we just eagerly create the definition and pickle that.
320
328
 
qiskit/qasm3/exporter.py CHANGED
@@ -837,7 +837,7 @@ class QASM3Builder:
837
837
  statements.append(self.build_if_statement(instruction))
838
838
  elif isinstance(instruction.operation, SwitchCaseOp):
839
839
  statements.extend(self.build_switch_statement(instruction))
840
- else: # pragma: no cover
840
+ else:
841
841
  raise RuntimeError(f"unhandled control-flow construct: {instruction.operation}")
842
842
  continue
843
843
  # Build the node, ignoring any condition.
@@ -1130,7 +1130,7 @@ def _build_ast_type(type_: types.Type) -> ast.ClassicalType:
1130
1130
  return ast.BoolType()
1131
1131
  if type_.kind is types.Uint:
1132
1132
  return ast.UintType(type_.width)
1133
- raise RuntimeError(f"unhandled expr type '{type_}'") # pragma: no cover
1133
+ raise RuntimeError(f"unhandled expr type '{type_}'")
1134
1134
 
1135
1135
 
1136
1136
  class _ExprBuilder(expr.ExprVisitor[ast.Expression]):
qiskit/qpy/__init__.py CHANGED
@@ -127,7 +127,7 @@ with. The following table lists the QPY versions that were supported in every
127
127
  Qiskit (and qiskit-terra prior to Qiskit 1.0.0) release going back to the introduction
128
128
  of QPY in qiskit-terra 0.18.0.
129
129
 
130
- .. list-table: QPY Format Version History
130
+ .. list-table:: QPY Format Version History
131
131
  :header-rows: 1
132
132
 
133
133
  * - Qiskit (qiskit-terra for < 1.0.0) version
@@ -138,7 +138,7 @@ of QPY in qiskit-terra 0.18.0.
138
138
  - 12
139
139
  * - 1.0.2
140
140
  - 10, 11
141
- - 12
141
+ - 11
142
142
  * - 1.0.1
143
143
  - 10, 11
144
144
  - 11
@@ -45,7 +45,7 @@ def _write_parameter_vec(file_obj, obj):
45
45
  struct.pack(
46
46
  formats.PARAMETER_VECTOR_ELEMENT_PACK,
47
47
  len(name_bytes),
48
- obj._vector._size,
48
+ len(obj._vector),
49
49
  obj.uuid.bytes,
50
50
  obj._index,
51
51
  )
@@ -54,7 +54,7 @@ class SparsePauliOp(LinearOp):
54
54
  :class:`~qiskit.quantum_info.Operator` in terms of N-qubit
55
55
  :class:`~qiskit.quantum_info.PauliList` and complex coefficients.
56
56
 
57
- It can be used for performing operator arithmetic for hundred of qubits
57
+ It can be used for performing operator arithmetic for hundreds of qubits
58
58
  if the number of non-zero Pauli basis terms is sufficiently small.
59
59
 
60
60
  The Pauli basis components are stored as a
@@ -104,15 +104,21 @@ class VF2Layout(AnalysisPass):
104
104
  limit on the number of trials will be set.
105
105
  target (Target): A target representing the backend device to run ``VF2Layout`` on.
106
106
  If specified it will supersede a set value for ``properties`` and
107
- ``coupling_map``.
107
+ ``coupling_map`` if the :class:`.Target` contains connectivity constraints. If the value
108
+ of ``target`` models an ideal backend without any constraints then the value of
109
+ ``coupling_map``
110
+ will be used.
108
111
 
109
112
  Raises:
110
113
  TypeError: At runtime, if neither ``coupling_map`` or ``target`` are provided.
111
114
  """
112
115
  super().__init__()
113
116
  self.target = target
114
- if target is not None:
115
- self.coupling_map = self.target.build_coupling_map()
117
+ if (
118
+ target is not None
119
+ and (target_coupling_map := self.target.build_coupling_map()) is not None
120
+ ):
121
+ self.coupling_map = target_coupling_map
116
122
  else:
117
123
  self.coupling_map = coupling_map
118
124
  self.properties = properties
@@ -145,7 +151,7 @@ class VF2Layout(AnalysisPass):
145
151
  )
146
152
  # Filter qubits without any supported operations. If they don't support any operations
147
153
  # They're not valid for layout selection
148
- if self.target is not None:
154
+ if self.target is not None and self.target.qargs is not None:
149
155
  has_operations = set(itertools.chain.from_iterable(self.target.qargs))
150
156
  to_remove = set(range(len(cm_nodes))).difference(has_operations)
151
157
  if to_remove:
@@ -145,7 +145,7 @@ def score_layout(
145
145
  def build_average_error_map(target, properties, coupling_map):
146
146
  """Build an average error map used for scoring layouts pre-basis translation."""
147
147
  num_qubits = 0
148
- if target is not None:
148
+ if target is not None and target.qargs is not None:
149
149
  num_qubits = target.num_qubits
150
150
  avg_map = ErrorMap(len(target.qargs))
151
151
  elif coupling_map is not None:
@@ -157,7 +157,7 @@ def build_average_error_map(target, properties, coupling_map):
157
157
  # object
158
158
  avg_map = ErrorMap(0)
159
159
  built = False
160
- if target is not None:
160
+ if target is not None and target.qargs is not None:
161
161
  for qargs in target.qargs:
162
162
  if qargs is None:
163
163
  continue
@@ -99,8 +99,34 @@ def generate_preset_pass_manager(
99
99
  This function is used to quickly generate a preset pass manager. A preset pass
100
100
  manager are the default pass managers used by the :func:`~.transpile`
101
101
  function. This function provides a convenient and simple method to construct
102
- a standalone :class:`~.PassManager` object that mirrors what the transpile
102
+ a standalone :class:`~.PassManager` object that mirrors what the :func:`~.transpile`
103
+ function internally builds and uses.
103
104
 
105
+ The target constraints for the pass manager construction can be specified through a :class:`.Target`
106
+ instance, a :class:`.BackendV1` or :class:`.BackendV2` instance, or via loose constraints
107
+ (``basis_gates``, ``inst_map``, ``coupling_map``, ``backend_properties``, ``instruction_durations``,
108
+ ``dt`` or ``timing_constraints``).
109
+ The order of priorities for target constraints works as follows: if a ``target``
110
+ input is provided, it will take priority over any ``backend`` input or loose constraints.
111
+ If a ``backend`` is provided together with any loose constraint
112
+ from the list above, the loose constraint will take priority over the corresponding backend
113
+ constraint. This behavior is independent of whether the ``backend`` instance is of type
114
+ :class:`.BackendV1` or :class:`.BackendV2`, as summarized in the table below. The first column
115
+ in the table summarizes the potential user-provided constraints, and each cell shows whether
116
+ the priority is assigned to that specific constraint input or another input
117
+ (`target`/`backend(V1)`/`backend(V2)`).
118
+
119
+ ============================ ========= ======================== =======================
120
+ User Provided target backend(V1) backend(V2)
121
+ ============================ ========= ======================== =======================
122
+ **basis_gates** target basis_gates basis_gates
123
+ **coupling_map** target coupling_map coupling_map
124
+ **instruction_durations** target instruction_durations instruction_durations
125
+ **inst_map** target inst_map inst_map
126
+ **dt** target dt dt
127
+ **timing_constraints** target timing_constraints timing_constraints
128
+ **backend_properties** target backend_properties backend_properties
129
+ ============================ ========= ======================== =======================
104
130
 
105
131
  Args:
106
132
  optimization_level (int): The optimization level to generate a
@@ -890,7 +890,7 @@ class Target(Mapping):
890
890
  return False
891
891
  if qargs not in self._gate_map[operation_name]:
892
892
  return False
893
- return getattr(self._gate_map[operation_name][qargs], "_calibration") is not None
893
+ return getattr(self._gate_map[operation_name][qargs], "_calibration", None) is not None
894
894
 
895
895
  def get_calibration(
896
896
  self,
@@ -40,7 +40,7 @@ from typing import Dict, List, Union, Optional
40
40
 
41
41
  from qiskit import pulse
42
42
  from qiskit.providers import BackendConfigurationError
43
- from qiskit.providers.backend import Backend
43
+ from qiskit.providers.backend import Backend, BackendV2
44
44
 
45
45
 
46
46
  class DrawerBackendInfo(ABC):
@@ -106,40 +106,67 @@ class OpenPulseBackendInfo(DrawerBackendInfo):
106
106
  Returns:
107
107
  OpenPulseBackendInfo: New configured instance.
108
108
  """
109
- configuration = backend.configuration()
110
- defaults = backend.defaults()
111
-
112
- # load name
113
- name = backend.name()
114
-
115
- # load cycle time
116
- dt = configuration.dt
117
-
118
- # load frequencies
119
109
  chan_freqs = {}
120
-
121
- chan_freqs.update(
122
- {pulse.DriveChannel(qind): freq for qind, freq in enumerate(defaults.qubit_freq_est)}
123
- )
124
- chan_freqs.update(
125
- {pulse.MeasureChannel(qind): freq for qind, freq in enumerate(defaults.meas_freq_est)}
126
- )
127
- for qind, u_lo_mappers in enumerate(configuration.u_channel_lo):
128
- temp_val = 0.0 + 0.0j
129
- for u_lo_mapper in u_lo_mappers:
130
- temp_val += defaults.qubit_freq_est[u_lo_mapper.q] * u_lo_mapper.scale
131
- chan_freqs[pulse.ControlChannel(qind)] = temp_val.real
132
-
133
- # load qubit channel mapping
134
110
  qubit_channel_map = defaultdict(list)
135
- for qind in range(configuration.n_qubits):
136
- qubit_channel_map[qind].append(configuration.drive(qubit=qind))
137
- qubit_channel_map[qind].append(configuration.measure(qubit=qind))
138
- for tind in range(configuration.n_qubits):
111
+
112
+ if hasattr(backend, "configuration") and hasattr(backend, "defaults"):
113
+ configuration = backend.configuration()
114
+ defaults = backend.defaults()
115
+
116
+ name = configuration.backend_name
117
+ dt = configuration.dt
118
+
119
+ # load frequencies
120
+ chan_freqs.update(
121
+ {
122
+ pulse.DriveChannel(qind): freq
123
+ for qind, freq in enumerate(defaults.qubit_freq_est)
124
+ }
125
+ )
126
+ chan_freqs.update(
127
+ {
128
+ pulse.MeasureChannel(qind): freq
129
+ for qind, freq in enumerate(defaults.meas_freq_est)
130
+ }
131
+ )
132
+ for qind, u_lo_mappers in enumerate(configuration.u_channel_lo):
133
+ temp_val = 0.0 + 0.0j
134
+ for u_lo_mapper in u_lo_mappers:
135
+ temp_val += defaults.qubit_freq_est[u_lo_mapper.q] * u_lo_mapper.scale
136
+ chan_freqs[pulse.ControlChannel(qind)] = temp_val.real
137
+
138
+ # load qubit channel mapping
139
+ for qind in range(configuration.n_qubits):
140
+ qubit_channel_map[qind].append(configuration.drive(qubit=qind))
141
+ qubit_channel_map[qind].append(configuration.measure(qubit=qind))
142
+ for tind in range(configuration.n_qubits):
143
+ try:
144
+ qubit_channel_map[qind].extend(configuration.control(qubits=(qind, tind)))
145
+ except BackendConfigurationError:
146
+ pass
147
+ elif isinstance(backend, BackendV2):
148
+ # Pure V2 model doesn't contain channel frequency information.
149
+ name = backend.name
150
+ dt = backend.dt
151
+
152
+ # load qubit channel mapping
153
+ for qind in range(backend.num_qubits):
154
+ # channels are NotImplemented by default so we must catch arbitrary error.
155
+ try:
156
+ qubit_channel_map[qind].append(backend.drive_channel(qind))
157
+ except Exception: # pylint: disable=broad-except
158
+ pass
139
159
  try:
140
- qubit_channel_map[qind].extend(configuration.control(qubits=(qind, tind)))
141
- except BackendConfigurationError:
160
+ qubit_channel_map[qind].append(backend.measure_channel(qind))
161
+ except Exception: # pylint: disable=broad-except
142
162
  pass
163
+ for tind in range(backend.num_qubits):
164
+ try:
165
+ qubit_channel_map[qind].extend(backend.control_channel(qubits=(qind, tind)))
166
+ except Exception: # pylint: disable=broad-except
167
+ pass
168
+ else:
169
+ raise RuntimeError("Backend object not yet supported")
143
170
 
144
171
  return OpenPulseBackendInfo(
145
172
  name=name, dt=dt, channel_frequency_map=chan_freqs, qubit_channel_map=qubit_channel_map
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: qiskit
3
- Version: 1.1.0
3
+ Version: 1.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,6 +1,6 @@
1
- qiskit/VERSION.txt,sha256=bKLjNWAUJBMx-ys5lCj8ojxVjj89Qo7c9PVusP6QcGk,7
1
+ qiskit/VERSION.txt,sha256=dMjc2JXhJypCdsbOugtKCo2X_3sayRGbj3p4aF5cRbE,7
2
2
  qiskit/__init__.py,sha256=PTwlA7M5Dus-K_dduuXXJ67b1oKWVPe2CO5ajl48wuE,5205
3
- qiskit/_accelerate.pyd,sha256=hvMCZHWgt3-zQSbl68ix_0myK8V1cXMJXaTpsQY6HJI,4397056
3
+ qiskit/_accelerate.pyd,sha256=9Ds12pyIx0b5dPRRpIoMltrtktrDoOexJE9uJ3vTNqk,4185088
4
4
  qiskit/_numpy_compat.py,sha256=RkmlmU5qD-3lSt_tgnNtdj7h6Kvz8VfYWY5izxLySV0,2887
5
5
  qiskit/exceptions.py,sha256=UamBNQmDJTx6ruzmj7iXgcsrBcvkfE-bZ4TH2-K_ngw,5772
6
6
  qiskit/user_config.py,sha256=9CH_kB-b5hr2FwRJAY6SYeaPuMn6l5stZGAJ_DqDH3c,9413
@@ -10,7 +10,7 @@ qiskit/assembler/assemble_circuits.py,sha256=HX6w6kRRkDiWrPVIjMGI6M5OPmu7AYtH7sX
10
10
  qiskit/assembler/assemble_schedules.py,sha256=2H_qYFs9BuZ2-14N6y_hwSnRJhc7XvjlyRfPEt-Bu34,16024
11
11
  qiskit/assembler/disassemble.py,sha256=PejiCw2wSCxIWDjWLJCAFXGJXJiL3ziIe61yEbHeTu8,12525
12
12
  qiskit/assembler/run_config.py,sha256=xVw70UASYS5jGtac6mSK6iKCkAzn3Nux6rksbZ2eC6E,2538
13
- qiskit/circuit/__init__.py,sha256=aKYL_AonI_MH73zFntlFFscRpS62vOaczMKG0ltrBMA,59748
13
+ qiskit/circuit/__init__.py,sha256=M58Xx7V2LdYsrUOyy05rA114ZqlIaD8LS-osvgm7ouE,59774
14
14
  qiskit/circuit/_classical_resource_map.py,sha256=cmB2ZvY7_r9uxBdWjnYKUguQErVrm6DB6IXt5i75Yno,7132
15
15
  qiskit/circuit/_standard_gates_commutations.py,sha256=Y9S2xI_SNSJ3OMiZQl7qRe5HsFeNK0M28coATKJ4-UQ,89014
16
16
  qiskit/circuit/_utils.py,sha256=LVSo5VKNyz-mhUet4KSR99V2vRPpAFcU-YeDFSZc3Ew,7107
@@ -33,10 +33,10 @@ qiskit/circuit/instructionset.py,sha256=xYT7kxTVKLoBE_OOwIpl5w46kvXJLouFLUiBQJwM
33
33
  qiskit/circuit/measure.py,sha256=kSmG-pF_yeT3lgAYsDO6SMcSmszPApeuLNM_EHWp0Ck,1514
34
34
  qiskit/circuit/operation.py,sha256=EJd_2FCv1jTNhk8Gr95vQ8-01tbxvN8Bfp29LnuBLuw,2086
35
35
  qiskit/circuit/parameter.py,sha256=CpRLDEFHqHBwF0otXs9vqdtfpFg0dpa3f8CP9qarG-U,7101
36
- qiskit/circuit/parameterexpression.py,sha256=kqJFbOHEaH0202cAcfzcHMs9cWH--hozqmLYBVHX4hE,23691
36
+ qiskit/circuit/parameterexpression.py,sha256=8I388AZIPm5QL6zwM2OJQx36Px9Oah8ugzpKh1K4SBI,23851
37
37
  qiskit/circuit/parametertable.py,sha256=cR1rmaDO4DLya8TSjYOlgwn3p_RGmEXreD2ZdggQuiU,10096
38
- qiskit/circuit/parametervector.py,sha256=ADqDsapodXlNldJ80zzrpsEVotQtOp_7ux08oK1mPQY,3694
39
- qiskit/circuit/quantumcircuit.py,sha256=ktO40He6A4PIz5yg-m2IzVEDoZMZPsRliDp-VixuBXY,299898
38
+ qiskit/circuit/parametervector.py,sha256=wDs0v8j3D66xovwF5j46WKV50GmHZqL8WBfs4kjznbE,3955
39
+ qiskit/circuit/quantumcircuit.py,sha256=8kji5Kwaj4tNxaCNyPdzr2ezftPg3ECE-6XR-0Bh59c,299578
40
40
  qiskit/circuit/quantumcircuitdata.py,sha256=4Uxn0UBVvDPy5T1wqQ0sLqkbRm9oV1qWK2kQ0aQLveE,5131
41
41
  qiskit/circuit/quantumregister.py,sha256=l0GNoPpOO-cY2PK7oTr4CJeVbnMV_voEdyrcBXXbCTY,2109
42
42
  qiskit/circuit/register.py,sha256=LxDOATHKWEvXO-eQ7roWqtABVbQ-nsyI93kHHkWCiSo,8718
@@ -112,7 +112,7 @@ qiskit/circuit/library/boolean_logic/quantum_or.py,sha256=TPuBnFFTq73iirb4NG10O9
112
112
  qiskit/circuit/library/boolean_logic/quantum_xor.py,sha256=EfSMyh-6bRWdPybhllHu3DTGDPkqdvoBbn9ta023xnI,2382
113
113
  qiskit/circuit/library/data_preparation/__init__.py,sha256=8Se7T5ulK9w4UiwaBRDutXw-qCXu4ckiUcoLWo4C6-c,2302
114
114
  qiskit/circuit/library/data_preparation/initializer.py,sha256=PKuJxkUhWnLdLPIgSdvwZlsUE3UmyRqZDmweeb9KuWU,4134
115
- qiskit/circuit/library/data_preparation/pauli_feature_map.py,sha256=VM51q5S86ZT8TwKBRjUOkIZ75PUZZadE1OL8WDqTyB4,12900
115
+ qiskit/circuit/library/data_preparation/pauli_feature_map.py,sha256=no7p1BZQO57kdjkZK42j-Rv1yg4yYlFKjPRBliLDGbA,12901
116
116
  qiskit/circuit/library/data_preparation/state_preparation.py,sha256=e5W3Mi3irGh5XZlOxwWtPuKxgPWAKR-8cySzRxJ3iCU,17788
117
117
  qiskit/circuit/library/data_preparation/z_feature_map.py,sha256=Fgf0b9JcIJOjswC8Ov0ozDH3fd25-iMu_HiuQjhUxSM,6451
118
118
  qiskit/circuit/library/data_preparation/zz_feature_map.py,sha256=vVXgWdrdowqK_-Y0Dbf00dLiniIP0hgcs0whvTWHkQk,6523
@@ -141,7 +141,7 @@ qiskit/circuit/library/n_local/n_local.py,sha256=tBKBZSZJZoeEgqAB_2Cy6NNcImJxSoL
141
141
  qiskit/circuit/library/n_local/pauli_two_design.py,sha256=nePU6ghb16nAHQ4oJIDuy7iZTDd6zStavfEs1hD2pxE,6280
142
142
  qiskit/circuit/library/n_local/qaoa_ansatz.py,sha256=Wm_T1kpCAV6azHyIP0O2lWqzeMSM7f3_hXbAN_fRGbo,11623
143
143
  qiskit/circuit/library/n_local/real_amplitudes.py,sha256=XhmlA9TUnhIzapzK0b9_3re-RMKUKbO_SvADcIaGN4s,14316
144
- qiskit/circuit/library/n_local/two_local.py,sha256=xBH9NyLIjdzGKmA2OpXzzI-Cp4n8hhgZM2mjYyv1BYg,17018
144
+ qiskit/circuit/library/n_local/two_local.py,sha256=Hn-a-RwDxK1iU2ouR0FFVL1YERdpaxKzrSQh-PsYUNo,17025
145
145
  qiskit/circuit/library/standard_gates/__init__.py,sha256=gdy7ltiXjf-hYMtDoNRsk3LfCA5fnhGmoTy0pTzxhj0,3846
146
146
  qiskit/circuit/library/standard_gates/dcx.py,sha256=g9TMsMuoMq0aXLO5rFw5VrDUL2vL6owAsA_7Lvh_VNc,2491
147
147
  qiskit/circuit/library/standard_gates/ecr.py,sha256=VbuvPkJYDhPFeo1CFHdmeETDsO2198ZUGxWU5DCPQ0I,4811
@@ -270,7 +270,7 @@ qiskit/converters/dagdependency_to_circuit.py,sha256=4Wcdt78M5FkVTJbCiFozaTbnyUf
270
270
  qiskit/converters/dagdependency_to_dag.py,sha256=kOekDX-6ixJxmIDnpQfAtSX-llDZBDO1MPe1SuFY7Zo,1664
271
271
  qiskit/dagcircuit/__init__.py,sha256=28PM2IY8dnLbOFsWnNJ8qYh8bmJNs9mRqfCJLXZDx6Q,1236
272
272
  qiskit/dagcircuit/collect_blocks.py,sha256=yVavjvZku5ff__n0DZQw_EtY9AqW5N5v-Ke3UrF7PYA,16868
273
- qiskit/dagcircuit/dagcircuit.py,sha256=ZyxlKu0oz6OjwBjQLlOV1v3-eedNHn8RxHaVJAjrGZM,105921
273
+ qiskit/dagcircuit/dagcircuit.py,sha256=-iU9hdvz1K3gSn_IUCmE3cFoQKlsSNj-FaCDheX3ZYA,105919
274
274
  qiskit/dagcircuit/dagdependency.py,sha256=6SzV_U_bRFw8lMARcs5cR7hXRnAxW-XILHJZ7MwQLws,24593
275
275
  qiskit/dagcircuit/dagdependency_v2.py,sha256=7qzS6HD6cxZdUdV8J3afixx7QRZsYb9OxEgSk5Tvlyw,25767
276
276
  qiskit/dagcircuit/dagdepnode.py,sha256=IYk05RDg2yl2Sq8eHD2jpfUywOihwWbsMysbbeVidXM,5419
@@ -282,7 +282,7 @@ qiskit/passmanager/compilation_status.py,sha256=wfmBWuaJxjzi5WZP3e6rKGLXEnee7AL5
282
282
  qiskit/passmanager/exceptions.py,sha256=oeYTNpgIr9TLGXUqyvSgHEBPQYvWrn4jTvZeFG4ZnbI,647
283
283
  qiskit/passmanager/flow_controllers.py,sha256=MSEInSYu13wg4xSnAwa9RO2B_GaC9sHIwolqP9eNnE0,4037
284
284
  qiskit/passmanager/passmanager.py,sha256=f5C2lkT1mNLwF1SeHxgiPDUjtRtMCuElwIcO00Dl1Xo,12068
285
- qiskit/primitives/__init__.py,sha256=52GpkR0F3h7bz75eIzSh1zcMpXpw7OdlC8vlLKJxuY0,17410
285
+ qiskit/primitives/__init__.py,sha256=EIRcDdeTqUixoZrp-v_zmuSoDcQU4nFkgl5bx_SDKUw,17408
286
286
  qiskit/primitives/backend_estimator.py,sha256=x1PORGLQeUbCeBH9rYtYHK3xpzHQ-S5dGjxufpj8i9I,18912
287
287
  qiskit/primitives/backend_estimator_v2.py,sha256=RuxWHuf46bEiF6v02q2sqfXMUf_-vf-_oX5vi7LVnJU,17799
288
288
  qiskit/primitives/backend_sampler.py,sha256=VqHJLVLOO-Wa3GVfxfZi82edp_WV69S0Krjj8e6DCsw,8020
@@ -315,7 +315,7 @@ qiskit/primitives/containers/sampler_pub.py,sha256=LQgkp3X_ERyrYTSwX_cecqLVWZU4v
315
315
  qiskit/primitives/containers/sampler_pub_result.py,sha256=fkMyYsQPwDD-6FVfeVk06E2m81DyXjm5tZHju7y0wrk,2864
316
316
  qiskit/primitives/containers/shape.py,sha256=RMAXIMhNLiwt1WhvJbSvsyPYGgf-K5bT28fUXVMM02I,4028
317
317
  qiskit/providers/__init__.py,sha256=PwugFS2IaQTFm8hJUIEBLlkH-u2WxxaX4jhCSTV2DV8,36266
318
- qiskit/providers/backend.py,sha256=HQJxEB_ov2x70fRCWDZCVh2R-M-2IiQbB3nmGfgHKmY,25351
318
+ qiskit/providers/backend.py,sha256=ZGNjvguCJ6BQNDRS7m-rMJrFJlqk3OASO5yEp-ALJys,25157
319
319
  qiskit/providers/backend_compat.py,sha256=88kTdcXbZ_u10e1TNr0JQBZDQx91ApIAzgQw3NVkkHw,19179
320
320
  qiskit/providers/exceptions.py,sha256=-bvWhJW0KXjIamvZP3xyUnlGovIr_eoFO5hQxy2_zQE,1214
321
321
  qiskit/providers/job.py,sha256=WVWt5KznhzEHwMJ-BxXcSjI-YpUGA5lxWMy7tEbsElM,5195
@@ -371,7 +371,7 @@ qiskit/providers/models/backendstatus.py,sha256=HtmjmOaWDk_IFnG3hz_10vXo-Zi94o6H
371
371
  qiskit/providers/models/jobstatus.py,sha256=tbWUMxGV4QkW1w2894XKsj5R-QO9NNrNBScraJRqL5E,2013
372
372
  qiskit/providers/models/pulsedefaults.py,sha256=OVV8GiDvxZYxdLPA_SIHM4PDTwsVJvdUrDMELLR8JRA,10774
373
373
  qiskit/pulse/__init__.py,sha256=qTnVoMBAx8QAnULuc1xl6737gzyZ_zPQQKPaNJka1sY,4019
374
- qiskit/pulse/builder.py,sha256=WOTWq0ooDIdwIBb5HiCaFsPJ9Dsz8YFriPxG8duYgdU,73311
374
+ qiskit/pulse/builder.py,sha256=hyuOgbyRHnn3iSK7L4i3Mbrm9Q9sfdJeu05XP5eO5JY,73238
375
375
  qiskit/pulse/calibration_entries.py,sha256=uNXGUZRLbBWFEPC5-P5WT0O0r3Fw0ufavQ-OpNvpkgU,14234
376
376
  qiskit/pulse/channels.py,sha256=YqCVqTcGr1INqZRWSBZq3-adgAWPBJVRNLG_P11OQvM,7660
377
377
  qiskit/pulse/configuration.py,sha256=9dqg1EOZ8iuc4G5_L7wysapnYc300ZHJE6xWk94kc6A,8122
@@ -413,12 +413,12 @@ qiskit/qasm/libs/dummy/stdgates.inc,sha256=2AlDwtsjKDozEEfmXLN9ae1Dfy6rMC9-1Za9a
413
413
  qiskit/qasm2/__init__.py,sha256=KnBPjbtzQX_csz-ml90YwrP5EcyD-IDVRaDgAP56O4k,25768
414
414
  qiskit/qasm2/exceptions.py,sha256=MxBVJ6OQOPsJV2c5qjPDRZ7TRoK2jFAFFP9iytB7HzI,950
415
415
  qiskit/qasm2/export.py,sha256=3wBWrH4ixSvqEhSVnxmgW-xwf9jVELXfXRjSQ0Oe_jk,13651
416
- qiskit/qasm2/parse.py,sha256=oYoGmBa7nQT_sviuYi07iuzCcDcYgh5rWgIagvNSnbI,17519
416
+ qiskit/qasm2/parse.py,sha256=sLBSnk29FouJNx7IsWfPSSRUw-GdyZwrhJqXzl6WT7U,17819
417
417
  qiskit/qasm3/__init__.py,sha256=8rMz61K4rTXwJFYgG2mjfcNXKPn3H9L69yqpezBaecA,13603
418
418
  qiskit/qasm3/ast.py,sha256=-QSKUyRBVT2rRh5nRBUnC98YG3uBr0wNqr0CgsiiZLU,16632
419
419
  qiskit/qasm3/exceptions.py,sha256=dlLYUf4zVG1L4ccvXG0MVtzzcIYqshjBejWRz031ykQ,936
420
420
  qiskit/qasm3/experimental.py,sha256=cwIF1YlMzZPvR2BgY3n1D6-TqNTko83Y-qzuKO4c8vw,2062
421
- qiskit/qasm3/exporter.py,sha256=vXvPwClQ0vRm-PRJQMNdPIMhiCRnyOtx6CgVurRcEvY,55089
421
+ qiskit/qasm3/exporter.py,sha256=7EPCdTZ312HgqK-kNykXxMM7LGLybsWE5cwyk8GyBD4,55049
422
422
  qiskit/qasm3/printer.py,sha256=r6V_XHHjlurzTKxCxzNuo9e1NOXvooTsVHNMXeRnwQE,22356
423
423
  qiskit/qobj/__init__.py,sha256=xQxWIQ7MUJ0Ovo24Ii2JeUKtzeS4jcIhe2FecQZAJ4U,2024
424
424
  qiskit/qobj/common.py,sha256=kDAZYND6HpgNeiXP4BpX_-Rv4TXiSNLzm1tHVwZOlKs,2180
@@ -428,7 +428,7 @@ qiskit/qobj/utils.py,sha256=WktCR0agE6LPP9tStWmXRsCJjvMFy7-RzKb-45s9ip8,934
428
428
  qiskit/qobj/converters/__init__.py,sha256=eouPijW91tEX8ptE86TbAOYw53VWNC8lqZpxe4O8LKY,709
429
429
  qiskit/qobj/converters/lo_config.py,sha256=RdG3GsVDH0s2iKsRyWD4o1dql_RcBD0QGKlMUnrI1ZM,6630
430
430
  qiskit/qobj/converters/pulse_instruction.py,sha256=-Gv997JTgESSfCtlezBjTeVSVQFryBPvP5tzPQdthds,30973
431
- qiskit/qpy/__init__.py,sha256=BQuxRwjuMx24kh_fThECCOi_u2xTEoP0gaD1XByBQmk,58100
431
+ qiskit/qpy/__init__.py,sha256=N5HEforbnQRZh_jehEod2HRDN2fgQOSnhFSJOpaMJH0,58101
432
432
  qiskit/qpy/common.py,sha256=kKc8VZQP2wzezcYOG0aReyi_HupTFr99z_sNXqIGQOk,10593
433
433
  qiskit/qpy/exceptions.py,sha256=BX1ILW35oUPDmotmttybw2bY1IvUwziOVpsf7z_mIkY,1900
434
434
  qiskit/qpy/formats.py,sha256=kxItULKeSVP70rjUjzERSmA1bq19mMJijOwRVOdJEq8,11663
@@ -437,7 +437,7 @@ qiskit/qpy/type_keys.py,sha256=i1l-be3tSjQMbcCkJEMUF2xBEz4BNazPtIwVmp96Bno,16331
437
437
  qiskit/qpy/binary_io/__init__.py,sha256=kBTRGy5cJdiDk-X1CSjSEpgLV-i_xT0IqcmI1a_AhOY,1109
438
438
  qiskit/qpy/binary_io/circuits.py,sha256=clQwvu38kErdX3sSBS6JtSP2oFPO6nRSrVPhK9oP9WU,58434
439
439
  qiskit/qpy/binary_io/schedules.py,sha256=FB90J0rGviR2PnNWRHwMxvpeC-7jdV9UW4mzgBlLfLw,24549
440
- qiskit/qpy/binary_io/value.py,sha256=B794HhcnXnB1K2eShgSEvEdxe5v3Ln17rm-_Cwpxe2g,29302
440
+ qiskit/qpy/binary_io/value.py,sha256=aftPBM6jOo9ctkf8oJn5tlk5p7Y05zfM3UEqfbH2NTA,29301
441
441
  qiskit/quantum_info/__init__.py,sha256=n8hLJIMlnYnxOAGHxF1bkd4q_CRGphhYIqhic1FYjMo,3497
442
442
  qiskit/quantum_info/quaternion.py,sha256=7GfudivfOREo-XrL-lnNkaqOF_-Sy9yEu8IkfAUOA2I,5076
443
443
  qiskit/quantum_info/random.py,sha256=N9f6Vgo_oWf03xbV3drM6Pmi0jWw7w2SC6hpO5BQiaE,941
@@ -484,7 +484,7 @@ qiskit/quantum_info/operators/symplectic/pauli.py,sha256=T9kgBSYOLoukFlduipcfenY
484
484
  qiskit/quantum_info/operators/symplectic/pauli_list.py,sha256=-NOxF9sDxHPGFRONi_D-TCaq-hP6tXWUMqO_AnvduHs,47436
485
485
  qiskit/quantum_info/operators/symplectic/pauli_utils.py,sha256=mK4Unq150o-Mxz90OxZKEFH_ViQuMFpLYRbuYJEWFmE,1342
486
486
  qiskit/quantum_info/operators/symplectic/random.py,sha256=YNzT-f_3Y4h0GVzpaFcZWF1O-Rwi9fW37wVRHaO65Rc,9161
487
- qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py,sha256=fxBwLSSulOd_n0r7XGwqauxxO4cm-1rfm288Entp6Jo,48091
487
+ qiskit/quantum_info/operators/symplectic/sparse_pauli_op.py,sha256=UhMhsv6iu-UhSnG7et7CyFynwDVDVmniBb8W_nUyTuc,48092
488
488
  qiskit/quantum_info/operators/utils/__init__.py,sha256=lzQzcOH2CG2pPKkGT54lMIUTres_kprzbmMTVrI646c,724
489
489
  qiskit/quantum_info/operators/utils/anti_commutator.py,sha256=rTJvRxRxK1-CvCABRD0dE8e0OSDXPiA_0wV_IahhzAs,1013
490
490
  qiskit/quantum_info/operators/utils/commutator.py,sha256=xGwTSrqUvlt93VLdKknmxx4xRKtHRAYmovRY-364gWk,993
@@ -598,7 +598,7 @@ qiskit/transpiler/instruction_durations.py,sha256=MDapHK_QWKFnas8PtcUUP_Q2Z7JUxo
598
598
  qiskit/transpiler/layout.py,sha256=-HDL9VFBgwN5OQcoRUJWXizalr9XaoSA0JIBULr_YAA,28818
599
599
  qiskit/transpiler/passmanager.py,sha256=KakI7BZyCt0WfU1yVstlqPeyCRGgyTSUFRJdZxmd3TM,20687
600
600
  qiskit/transpiler/passmanager_config.py,sha256=kFsJ6EdGtAmoRxWJW4Cb4__fWX7OrTv4SccwWsrxgj4,9413
601
- qiskit/transpiler/target.py,sha256=SP4Eqg14egtKc5v1T68-opYirw36htHTbzKY9a_K_EY,73649
601
+ qiskit/transpiler/target.py,sha256=mBdgzixGnMCIBfTQlkCu2WunDwdGjIomunELSUVOKC0,73655
602
602
  qiskit/transpiler/timing_constraints.py,sha256=YMwO31Im7h0Wxgu11ZPyp5uy60l5Ys24Oepa66M4sD8,2441
603
603
  qiskit/transpiler/passes/__init__.py,sha256=avKaK0s0H9uJY_-NSpXQ_CHkwN6jb588P2bJpsfi4o4,8032
604
604
  qiskit/transpiler/passes/analysis/__init__.py,sha256=ygrX-YFaHzfMLqf53ftQ-2DXO4_4PwSEOHkYZkOuMXg,898
@@ -638,9 +638,9 @@ qiskit/transpiler/passes/layout/sabre_layout.py,sha256=-IsKcnhNd6ipyfFLUt8Pm5xRl
638
638
  qiskit/transpiler/passes/layout/sabre_pre_layout.py,sha256=UGKRc_D4PQQxwdVrdf0enKl2FhREDeEUIGUaF7QHINM,9275
639
639
  qiskit/transpiler/passes/layout/set_layout.py,sha256=mnRg2YdQ_u64pqDLpXox-pOYn--68UuXgM-6lKdBhHs,2576
640
640
  qiskit/transpiler/passes/layout/trivial_layout.py,sha256=E4JV8B_aomdILUNorxvFN_memUJ2oR3apGtXHnJNSRQ,2445
641
- qiskit/transpiler/passes/layout/vf2_layout.py,sha256=zpyTRwEGtCi2Hl3hKDXl1npTIa6vO5IlcFq0luhs_So,11863
641
+ qiskit/transpiler/passes/layout/vf2_layout.py,sha256=JhuLg3r6AUgiEUnZ8Kycl4ccUYCle1UTNBG7O49GgZY,12230
642
642
  qiskit/transpiler/passes/layout/vf2_post_layout.py,sha256=apt6L42IpQLi21ZMZcrlgVs_1hD7_elyZ_rA3-YBWgI,20103
643
- qiskit/transpiler/passes/layout/vf2_utils.py,sha256=dzuiy9vlOSQx5pEnV3tYGM9lNuMKjT0X_898mE8Egwg,11033
643
+ qiskit/transpiler/passes/layout/vf2_utils.py,sha256=ok8rT51qziNzFXyOOJIDhVHt4VywymnRiIWJY8oyXT0,11091
644
644
  qiskit/transpiler/passes/optimization/__init__.py,sha256=_qFlllN45SqoGGDz8nFXOat4U7EmP2NzRsAgOPj2-UA,2067
645
645
  qiskit/transpiler/passes/optimization/_gate_extension.py,sha256=FAizDJc9m0y1blUd28qZK0rCKDeiK48fOvYh1lghAZ0,3386
646
646
  qiskit/transpiler/passes/optimization/collect_1q_runs.py,sha256=JGzjVY_TdtNAST8ZSrjtg6fEFj8UVEGATneuGlx-DtQ,1145
@@ -739,7 +739,7 @@ qiskit/transpiler/passes/utils/minimum_point.py,sha256=B4mjyZmKQcMQoTA8bhLbIPXXt
739
739
  qiskit/transpiler/passes/utils/remove_barriers.py,sha256=6tt0RX7mFpHubyQe22uSVSEMQJm-IAqIaXIibjBloUw,1463
740
740
  qiskit/transpiler/passes/utils/remove_final_measurements.py,sha256=VWFXt3_IhmuS7XgxKJodL2WdEOdhfgxtRmxGnUFN6jA,4831
741
741
  qiskit/transpiler/passes/utils/unroll_forloops.py,sha256=mkjucqYOXyfJpCT3dtXUMJeiEUoi6NegGfAubXmmZRo,3201
742
- qiskit/transpiler/preset_passmanagers/__init__.py,sha256=BZea_OE81DKw_3EjgwDzsdljuzNOXk5B9YDlCgDjtMo,13171
742
+ qiskit/transpiler/preset_passmanagers/__init__.py,sha256=wcHVUBLRxSl_f4z_uXvVjfqHcQGVkm4ni3U1EwKih60,15276
743
743
  qiskit/transpiler/preset_passmanagers/builtin_plugins.py,sha256=tHt9yWaOpjFqJ7zl6iAioScPlwJ8PtYhSNc3aUr_Iqs,41096
744
744
  qiskit/transpiler/preset_passmanagers/common.py,sha256=HDSbsy9-9plLLihY8jRgv7qXb2DfilYcD3vu5vBhoDk,26558
745
745
  qiskit/transpiler/preset_passmanagers/level0.py,sha256=sW9M7wxJwR0lDkjRcJzV7LQXA53rDgXmLyRWDWhSerM,4395
@@ -783,7 +783,7 @@ qiskit/visualization/circuit/styles/iqp.json,sha256=aQPwtgjjO9YH10g37pfp65CzH9tA
783
783
  qiskit/visualization/circuit/styles/textbook.json,sha256=-2PK89N8_nTIQ_1FfdSbwvLar1HY75xwmQ_Ey3ehJ0A,4081
784
784
  qiskit/visualization/pulse_v2/__init__.py,sha256=DM6NXc90jzLxrLXmLV3UMPCkqy9PwtBbdLp8qoWm8R8,710
785
785
  qiskit/visualization/pulse_v2/core.py,sha256=nnmIUvGEfVrZDH8DYVsKDmJZRLQOJ_zQpgBCpicvj8Y,34412
786
- qiskit/visualization/pulse_v2/device_info.py,sha256=_cSHAOrIlBFQ7a19EPZ-WmA2j55Y5FJ3mZu4N0R7OA8,5788
786
+ qiskit/visualization/pulse_v2/device_info.py,sha256=BDMuwbDVLD2Io9aQdGMx-9ShtnQgl_5fhtqrTA5KR1Y,7197
787
787
  qiskit/visualization/pulse_v2/drawings.py,sha256=nAHNBYaA_aMgW0H52DALOUzNBEcUBlP5edhqJrMN0D0,9791
788
788
  qiskit/visualization/pulse_v2/events.py,sha256=ntqeacv0r_OVA8XvIDuR8E75PGvAdauGWnoL3wMe4wQ,10644
789
789
  qiskit/visualization/pulse_v2/interface.py,sha256=hsjsu971lb6rciNa_zKSVmM4GGyQL84IC1yjqj-jbAA,25122
@@ -810,9 +810,9 @@ qiskit/visualization/timeline/types.py,sha256=jtpipQWUpahayNPQYKUst4GG6BqauovO0q
810
810
  qiskit/visualization/timeline/plotters/__init__.py,sha256=Klg9a1cSUIQhc815g8OpnD5vO1hcI51L9KlFfKzcuRg,588
811
811
  qiskit/visualization/timeline/plotters/base_plotter.py,sha256=taRkL2ZbyorRUEf6nJS8egdzKW2eznQ3w5oBLtMG_U8,1805
812
812
  qiskit/visualization/timeline/plotters/matplotlib.py,sha256=WwLfEm3-fS8BQMxwExmiIpcwvt7IAak4pYyTGNFZdbI,7144
813
- qiskit-1.1.0.dist-info/LICENSE.txt,sha256=pUbmRuPr1gJTTTWZu2c8UmNSntz-pDdKfGR-86NRkok,11619
814
- qiskit-1.1.0.dist-info/METADATA,sha256=m22DIzgTXLM4AygLse6FcLKPtCzeKDyCKyahafpzjs4,13130
815
- qiskit-1.1.0.dist-info/WHEEL,sha256=Aavq5XXl58tL6bL-VsXq6M2KHwSF4I7YrvRYfeAzm5A,100
816
- qiskit-1.1.0.dist-info/entry_points.txt,sha256=uQCOTD4Z3t6tvAzZ5Ql1hwGTDdKvYWfW93C8oTvYH80,3301
817
- qiskit-1.1.0.dist-info/top_level.txt,sha256=_vjFXLv7qrHyJJOC2-JXfG54o4XQygW9GuQPxgtSt9Q,7
818
- qiskit-1.1.0.dist-info/RECORD,,
813
+ qiskit-1.1.1.dist-info/LICENSE.txt,sha256=pUbmRuPr1gJTTTWZu2c8UmNSntz-pDdKfGR-86NRkok,11619
814
+ qiskit-1.1.1.dist-info/METADATA,sha256=RxYcmOaofompo7DYm5qLD9HexRyPJ7NsGnmES6_XYfk,13130
815
+ qiskit-1.1.1.dist-info/WHEEL,sha256=Aavq5XXl58tL6bL-VsXq6M2KHwSF4I7YrvRYfeAzm5A,100
816
+ qiskit-1.1.1.dist-info/entry_points.txt,sha256=uQCOTD4Z3t6tvAzZ5Ql1hwGTDdKvYWfW93C8oTvYH80,3301
817
+ qiskit-1.1.1.dist-info/top_level.txt,sha256=_vjFXLv7qrHyJJOC2-JXfG54o4XQygW9GuQPxgtSt9Q,7
818
+ qiskit-1.1.1.dist-info/RECORD,,
File without changes