cirq-core 1.6.0.dev20250702211226__py3-none-any.whl → 1.6.0.dev20250704055727__py3-none-any.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.

Potentially problematic release.


This version of cirq-core might be problematic. Click here for more details.

cirq/_version.py CHANGED
@@ -29,4 +29,4 @@ if sys.version_info < (3, 11 - 1, 0): # pragma: no cover
29
29
  'of cirq (e.g. "python -m pip install cirq==1.5.0")'
30
30
  )
31
31
 
32
- __version__ = "1.6.0.dev20250702211226"
32
+ __version__ = "1.6.0.dev20250704055727"
cirq/_version_test.py CHANGED
@@ -3,4 +3,4 @@ import cirq
3
3
 
4
4
 
5
5
  def test_version() -> None:
6
- assert cirq.__version__ == "1.6.0.dev20250702211226"
6
+ assert cirq.__version__ == "1.6.0.dev20250704055727"
@@ -30,7 +30,7 @@ if TYPE_CHECKING:
30
30
  def align_left(
31
31
  circuit: cirq.AbstractCircuit, *, context: cirq.TransformerContext | None = None
32
32
  ) -> cirq.Circuit:
33
- """Align gates to the left of the circuit.
33
+ """Aligns gates to the left of the circuit.
34
34
 
35
35
  Note that tagged operations with tag in `context.tags_to_ignore` will continue to stay in their
36
36
  original position and will not be aligned.
@@ -62,7 +62,7 @@ def align_left(
62
62
  def align_right(
63
63
  circuit: cirq.AbstractCircuit, *, context: cirq.TransformerContext | None = None
64
64
  ) -> cirq.Circuit:
65
- """Align gates to the right of the circuit.
65
+ """Aligns gates to the right of the circuit.
66
66
 
67
67
  Note that tagged operations with tag in `context.tags_to_ignore` will continue to stay in their
68
68
  original position and will not be aligned.
@@ -61,7 +61,7 @@ def _pauli_up_to_global_phase(gate: ops.Gate) -> ops.Pauli | None:
61
61
  def _validate_dd_sequence(dd_sequence: tuple[ops.Gate, ...]) -> None:
62
62
  """Validates a given dynamical decoupling sequence.
63
63
 
64
- The sequence should only consists of Pauli gates and is essentially an identity gate.
64
+ The sequence should only consist of Pauli gates and is essentially an identity gate.
65
65
 
66
66
  Args:
67
67
  dd_sequence: Input dynamical sequence to be validated.
@@ -82,7 +82,7 @@ def _validate_dd_sequence(dd_sequence: tuple[ops.Gate, ...]) -> None:
82
82
 
83
83
  if not protocols.equal_up_to_global_phase(product, np.eye(2)):
84
84
  raise ValueError(
85
- 'Invalid dynamical decoupling sequence. Expect sequence production equals'
85
+ 'Invalid dynamical decoupling sequence. Expect sequence product equals'
86
86
  f' identity up to a global phase, got {product}.'.replace('\n', ' ')
87
87
  )
88
88
 
@@ -208,13 +208,13 @@ def add_dynamical_decoupling(
208
208
  single_qubit_gate_moments_only: bool = True,
209
209
  ) -> cirq.Circuit:
210
210
  """Adds dynamical decoupling gate operations to a given circuit.
211
- This transformer might add new moments thus change structure of the original circuit.
211
+ This transformer might add new moments and thus change the structure of the original circuit.
212
212
 
213
213
  Args:
214
214
  circuit: Input circuit to transform.
215
215
  context: `cirq.TransformerContext` storing common configurable options for transformers.
216
216
  schema: Dynamical decoupling schema name or a dynamical decoupling sequence.
217
- If a schema is specified, provided dynamical decouping sequence will be used.
217
+ If a schema is specified, the provided dynamical decoupling sequence will be used.
218
218
  Otherwise, customized dynamical decoupling sequence will be applied.
219
219
  single_qubit_gate_moments_only: If set True, dynamical decoupling operation will only be
220
220
  added in single-qubit gate moments.
@@ -236,7 +236,7 @@ def test_pull_through_h_gate_case2(single_qubit_gate_moments_only: bool):
236
236
  ([X], 'Invalid dynamical decoupling sequence. Expect more than one gates.'),
237
237
  (
238
238
  [X, Y],
239
- 'Invalid dynamical decoupling sequence. Expect sequence production equals identity'
239
+ 'Invalid dynamical decoupling sequence. Expect sequence product equals identity'
240
240
  ' up to a global phase, got',
241
241
  ),
242
242
  (
@@ -191,7 +191,7 @@ def test_do_not_decompose_no_compile():
191
191
  assert_equal_mod_empty(c, cirq.expand_composite(c, context=context))
192
192
 
193
193
 
194
- def test_expands_composite_recursively_preserving_structur():
194
+ def test_expands_composite_recursively_preserving_structure():
195
195
  q = cirq.LineQubit.range(2)
196
196
  c_nested = cirq.FrozenCircuit(
197
197
  cirq.SWAP(*q[:2]), cirq.SWAP(*q[:2]).with_tags("ignore"), cirq.SWAP(*q[:2])
@@ -172,7 +172,7 @@ def _all_possible_datastore_states(
172
172
  keys: Iterable[tuple[cirq.MeasurementKey, int]],
173
173
  measurement_qubits: dict[cirq.MeasurementKey, list[tuple[cirq.Qid, ...]]],
174
174
  ) -> Iterable[cirq.ClassicalDataStoreReader]:
175
- """The cartesian product of all possible DataStore states for the given keys."""
175
+ """The Cartesian product of all possible DataStore states for the given keys."""
176
176
  # First we get the list of all possible values. So if we have a key mapped to qubits of shape
177
177
  # (2, 2) and a key mapped to a qutrit, the possible measurement values are:
178
178
  # [((0, 0), (0,)),
@@ -185,7 +185,7 @@ def _sweep_on_symbols(sweep: Sweep, symbols: set[sympy.Symbol]) -> Sweep:
185
185
  def _calc_phxz_sweeps(
186
186
  symbolized_circuit: cirq.Circuit, resolved_circuits: list[cirq.Circuit]
187
187
  ) -> Sweep:
188
- """Return the phxz sweep of the symbolized_circuit on resolved_circuits.
188
+ """Returns the phxz sweep of the symbolized_circuit on resolved_circuits.
189
189
 
190
190
  Raises:
191
191
  ValueError: Structural mismatch: A `resolved_circuit` contains an unexpected gate type.
@@ -246,7 +246,7 @@ def merge_single_qubit_gates_to_phxz_symbolized(
246
246
  Args:
247
247
  circuit: Input circuit to transform. It will not be modified.
248
248
  context: `cirq.TransformerContext` storing common configurable options for transformers.
249
- sweep: Sweep of the symbols in the input circuit, updated Sweep will be returned
249
+ sweep: Sweep of the symbols in the input circuit. An updated Sweep will be returned
250
250
  based on the transformation.
251
251
  atol: Absolute tolerance to angle error. Larger values allow more negligible gates to be
252
252
  dropped, smaller values increase accuracy.
@@ -280,7 +280,7 @@ def merge_single_qubit_gates_to_phxz_symbolized(
280
280
  remaining_symbols: set[sympy.Symbol] = set(
281
281
  protocols.parameter_symbols(circuit) - single_qubit_gate_symbols
282
282
  )
283
- # If all single qubit gates are not parameterized, call the nonparamerized version of
283
+ # If all single qubit gates are not parameterized, call the non-parameterized version of
284
284
  # the transformer.
285
285
  if not single_qubit_gate_symbols:
286
286
  return (merge_single_qubit_gates_to_phxz(circuit, context=context, atol=atol), sweep)
@@ -287,7 +287,7 @@ class TestMergeSingleQubitGatesSymbolized(TestCase):
287
287
  )
288
288
  assert_optimizes(output_circuit, expected)
289
289
 
290
- # Check the unitaries are preserved for each set of sweep paramerization.
290
+ # Check the unitaries are preserved for each set of sweep parameterization.
291
291
  for old_resolver, new_resolver in zip(sweep, new_sweep):
292
292
  cirq.testing.assert_circuits_have_same_unitary_given_final_permutation(
293
293
  cirq.resolve_parameters(input_circuit, old_resolver),
@@ -310,7 +310,7 @@ class TestMergeSingleQubitGatesSymbolized(TestCase):
310
310
  new_circuit, new_sweep = cirq.merge_single_qubit_gates_to_phxz_symbolized(
311
311
  old_circuit, sweep=old_sweep
312
312
  )
313
- # Check the unitaries are preserved for each set of sweep paramerization.
313
+ # Check the unitaries are preserved for each set of sweep parameterization.
314
314
  for old_resolver, new_resolver in zip(old_sweep, new_sweep):
315
315
  cirq.testing.assert_circuits_have_same_unitary_given_final_permutation(
316
316
  cirq.resolve_parameters(old_circuit[0:-1], old_resolver),
@@ -36,7 +36,7 @@ class DepolarizingNoiseTransformer:
36
36
 
37
37
  Attrs:
38
38
  p: The probability with which to add noise.
39
- target_gate: Add depolarizing nose after this type of gate
39
+ target_gate: Add depolarizing noise after this type of gate
40
40
  """
41
41
 
42
42
  def __init__(
@@ -88,7 +88,7 @@ class DepolarizingNoiseTransformer:
88
88
  rng = np.random.default_rng()
89
89
  target_gate = self.target_gate
90
90
 
91
- # add random Pauli gates with probability p after each of the specified gate
91
+ # add random Pauli gates with probability p after each specified gate
92
92
  assert target_gate.num_qubits() == 2, "`target_gate` must be a two-qubit gate."
93
93
  paulis = [ops.I, ops.X, ops.Y, ops.Z]
94
94
  new_moments = []
@@ -46,9 +46,9 @@ def _decompose_operations_to_target_gateset(
46
46
  """Decomposes every operation to `gateset` using `cirq.decompose` and `decomposer`.
47
47
 
48
48
  This transformer attempts to decompose every operation `op` in the given circuit to `gateset`
49
- using `cirq.decompose` protocol with `decomposer` used as an intercepting decomposer. This
50
- ensures that `op` is recursively decomposed using implicitly defined known decompositions
51
- (eg: in `_decompose_` magic method on the gaet class) till either `decomposer` knows how to
49
+ using the `cirq.decompose` protocol with `decomposer` used as an intercepting decomposer. This
50
+ ensures that `op` is recursively decomposed using implicitly defined known decompositions (e.g.
51
+ in the `_decompose_` magic method on the gate class) until either `decomposer` knows how to
52
52
  decompose the given operation or the given operation belongs to `gateset`.
53
53
 
54
54
  Args:
@@ -58,7 +58,7 @@ def map_clean_and_borrowable_qubits(
58
58
  This transformer uses the `QubitManager` provided in the input to:
59
59
  - Allocate clean ancilla qubits by delegating to `qm.qalloc` for all `CleanQubit`s.
60
60
  - Allocate dirty qubits for all `BorrowableQubit` types via the following two steps:
61
- 1. First analyse the input circuit and check if there are any suitable system qubits
61
+ 1. First analyze the input circuit and check if there are any suitable system qubits
62
62
  that can be borrowed, i.e. ones which do not have any overlapping operations
63
63
  between circuit[start_index : end_index] where `(start_index, end_index)` is the
64
64
  lifespan of temporary borrowable qubit under consideration. If yes, borrow the system
@@ -84,7 +84,7 @@ def map_clean_and_borrowable_qubits(
84
84
  circuit: Input `cirq.Circuit` containing temporarily allocated
85
85
  `CleanQubit`/`BorrowableQubit`s.
86
86
  qm: An instance of `cirq.QubitManager` specifying the strategy to use for allocating /
87
- / deallocating new ancilla qubits to replace the temporary qubits.
87
+ deallocating new ancilla qubits to replace the temporary qubits.
88
88
 
89
89
  Returns:
90
90
  An updated `cirq.Circuit` with all `CleanQubit`/`BorrowableQubit` mapped to either existing
@@ -34,8 +34,8 @@ class RandomizedMeasurements:
34
34
  For more details on the randomized measurement toolbox see https://arxiv.org/abs/2203.11374
35
35
 
36
36
  Args:
37
- subsystem: The specific subsystem (e.g qubit index) to measure in random basis
38
- rest of the qubits are measured in the computational basis
37
+ subsystem: The specific subsystem (e.g., qubit index) to measure in a random basis.
38
+ The rest of the qubits are measured in the computational basis.
39
39
  """
40
40
  self.subsystem = subsystem
41
41
 
@@ -48,9 +48,9 @@ class RandomizedMeasurements:
48
48
  context: transformer_api.TransformerContext | None = None,
49
49
  ) -> cirq.Circuit:
50
50
  """Apply the transformer to the given circuit. Given an input circuit returns
51
- a new circuit with the pre-measurement unitaries and measurements gates added.
52
- to the qubits in the subsystem provided.If no subsystem is specified in the
53
- construction of this class it defaults to measuring all the qubits in the
51
+ a new circuit with the pre-measurement unitaries and measurement gates added
52
+ to the qubits in the subsystem provided. If no subsystem is specified in the
53
+ construction of this class, it defaults to measuring all the qubits in the
54
54
  randomized bases.
55
55
 
56
56
  Args:
@@ -138,7 +138,7 @@ def _pauli_basis_rotation(rng: np.random.Generator) -> cirq.Gate:
138
138
 
139
139
 
140
140
  def _single_qubit_clifford(rng: np.random.Generator) -> cirq.Gate:
141
- """Randomly generate a single-qubit Clifford rotation.
141
+ """Randomly generates a single-qubit Clifford rotation.
142
142
 
143
143
  Args:
144
144
  rng: Random number generator
@@ -156,7 +156,7 @@ def _single_qubit_clifford(rng: np.random.Generator) -> cirq.Gate:
156
156
 
157
157
 
158
158
  def _single_qubit_cue(rng: np.random.Generator) -> cirq.Gate:
159
- """Randomly generate a CUE gate.
159
+ """Randomly generates a CUE gate.
160
160
 
161
161
  Args:
162
162
  rng: Random number generator
@@ -164,7 +164,7 @@ def _stratify_circuit(
164
164
  new_moments += [[] for _ in range(num_classes)]
165
165
  new_moments[time_index].append(op)
166
166
 
167
- # Update qubit, measurment key, and control key moments.
167
+ # Update qubit, measurement key, and control key moments.
168
168
  for qubit in op.qubits:
169
169
  qubit_time_index[qubit] = time_index
170
170
  for key in protocols.measurement_key_objs(op):
@@ -75,7 +75,7 @@ def symbolize_single_qubit_gates_by_indexed_tags(
75
75
  """
76
76
 
77
77
  def _map_func(op: cirq.Operation, _):
78
- """Maps an op with tag `{tag_prefix}_i` to a symbolzied `PhasedXZGate(xi,zi,ai)`."""
78
+ """Maps an op with tag `{tag_prefix}_i` to a symbolized `PhasedXZGate(xi,zi,ai)`."""
79
79
  tags: set[Hashable] = set(op.tags)
80
80
  tag_id: None | int = None
81
81
  for tag in tags:
@@ -85,12 +85,12 @@ def remove_tags(
85
85
  target_tags = target_tags or set()
86
86
 
87
87
  def _map_func(op: cirq.Operation, _) -> cirq.OP_TREE:
88
- remaing_tags = set()
88
+ remaining_tags = set()
89
89
  for tag in op.tags:
90
90
  if not remove_if(tag) and tag not in target_tags:
91
- remaing_tags.add(tag)
91
+ remaining_tags.add(tag)
92
92
 
93
- return op.untagged.with_tags(*remaing_tags)
93
+ return op.untagged.with_tags(*remaining_tags)
94
94
 
95
95
  return transformer_primitives.map_operations(
96
96
  circuit, _map_func, deep=context.deep if context else False
@@ -88,8 +88,8 @@ class TransformerLogger:
88
88
 
89
89
  The logger assumes that
90
90
  - Transformers are run sequentially.
91
- - Nested transformers are allowed, in which case the behavior would be similar to a
92
- doing a depth first search on the graph of transformers -- i.e. the top level transformer
91
+ - Nested transformers are allowed, in which case the behavior would be similar to
92
+ doing a depth-first search on the graph of transformers -- i.e. the top level transformer
93
93
  would end (i.e. receive a `register_final` call) once all nested transformers (i.e. all
94
94
  `register_initial` calls received while the top level transformer was active) have
95
95
  finished (i.e. corresponding `register_final` calls have also been received).
@@ -125,7 +125,7 @@ def _map_operations_impl(
125
125
  resulting optree spans more than 1 moment, it's either wrapped in a tagged circuit
126
126
  operation and inserted in-place in the same moment (if `wrap_in_circuit_op` is True)
127
127
  OR the mapped operations are inserted directly in the circuit, preserving moment
128
- strucutre. The effect is equivalent to (but much faster) a two-step approach of first
128
+ structure. The effect is equivalent to (but much faster) a two-step approach of first
129
129
  wrapping the operations in a circuit operation and then calling `cirq.unroll_circuit_op`
130
130
  to unroll the corresponding circuit ops.
131
131
  deep: If true, `map_func` will be recursively applied to circuits wrapped inside
@@ -364,13 +364,13 @@ def merge_operations(
364
364
  """Merges operations in a circuit by calling `merge_func` iteratively on operations.
365
365
 
366
366
  Two operations op1 and op2 are merge-able if
367
- - There is no other operations between op1 and op2 in the circuit
367
+ - There is no other operation between op1 and op2 in the circuit
368
368
  - is_subset(op1.qubits, op2.qubits) or is_subset(op2.qubits, op1.qubits)
369
369
 
370
370
  The `merge_func` is a callable which, given two merge-able operations
371
371
  op1 and op2, decides whether they should be merged into a single operation
372
372
  or not. If not, it should return None, else it should return the single merged
373
- operations `op`.
373
+ operation `op`.
374
374
 
375
375
  The method iterates on the input circuit moment-by-moment from left to right and attempts
376
376
  to repeatedly merge each operation in the latest moment with all the corresponding merge-able
@@ -383,7 +383,7 @@ def merge_operations(
383
383
 
384
384
  The number of calls to `merge_func` is O(N), where N = Total no. of operations, because:
385
385
  - Every time the `merge_func` returns a new operation, the number of operations in the
386
- circuit reduce by 1 and hence this can happen at most O(N) times
386
+ circuit reduces by 1 and hence this can happen at most O(N) times
387
387
  - Every time the `merge_func` returns None, the current operation is inserted into the
388
388
  frontier and we go on to process the next operation, which can also happen at-most
389
389
  O(N) times.
@@ -501,7 +501,7 @@ def merge_operations_to_circuit_op(
501
501
  Args:
502
502
  circuit: Input circuit to apply the transformations on. The input circuit is not mutated.
503
503
  can_merge: Callable to determine whether a new operation `right_op` can be merged into an
504
- existing connected component of operations `left_ops` based on boolen returned by
504
+ existing connected component of operations `left_ops` based on boolean returned by
505
505
  `can_merge(left_ops, right_op)`.
506
506
  tags_to_ignore: Tagged operations marked any of `tags_to_ignore` will not be considered as
507
507
  potential candidates for any connected component.
@@ -771,7 +771,7 @@ def unroll_circuit_op_greedy_frontier(
771
771
  def toggle_tags(circuit: CIRCUIT_TYPE, tags: Sequence[Hashable], *, deep: bool = False):
772
772
  """Toggles tags applied on each operation in the circuit, via `op.tags ^= tags`
773
773
 
774
- For every operations `op` in the input circuit, the tags on `op` are replaced by a symmetric
774
+ For every operation `op` in the input circuit, the tags on `op` are replaced by a symmetric
775
775
  difference of `op.tags` and `tags` -- this is useful in scenarios where you mark a small subset
776
776
  of operations with a specific tag and then toggle the set of marked operations s.t. every
777
777
  marked operation is now unmarked and vice versa.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cirq-core
3
- Version: 1.6.0.dev20250702211226
3
+ Version: 1.6.0.dev20250704055727
4
4
  Summary: A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
5
5
  Home-page: http://github.com/quantumlib/cirq
6
6
  Author: The Cirq Developers
@@ -4,8 +4,8 @@ cirq/_compat_test.py,sha256=emXpdD5ZvwLRlFAoQB8YatmZyU3b4e9jg6FppMTUhkU,33900
4
4
  cirq/_doc.py,sha256=BrnoABo1hk5RgB3Cgww4zLHUfiyFny0F1V-tOMCbdaU,2909
5
5
  cirq/_import.py,sha256=ixBu4EyGl46Ram2cP3p5eZVEFDW5L2DS-VyTjz4N9iw,8429
6
6
  cirq/_import_test.py,sha256=oF4izzOVZLc7NZ0aZHFcGv-r01eiFFt_JORx_x7_D4s,1089
7
- cirq/_version.py,sha256=NblDX4inxmdzZB7Fya19QCXRKT4-5brcbUwEeA5P-70,1278
8
- cirq/_version_test.py,sha256=MEkxBto_F4gVJFCgeOaRTa8SrCpmCyK4rGLAh4rPlK0,155
7
+ cirq/_version.py,sha256=ltAARhzmu2HtZslCS-K9-1ss9CI78GeMklfm56ceZyY,1278
8
+ cirq/_version_test.py,sha256=4SVKxY_gj0pg5G42TMre_BEGoJ_5pRiLF1s1QLAxDd0,155
9
9
  cirq/conftest.py,sha256=wSDKNdIQRDfLnXvOCWD3erheOw8JHRhdfQ53EyTUIXg,1239
10
10
  cirq/json_resolver_cache.py,sha256=hYyG53VJeV61X0oukK5ndZYega8lkL2FyaL1m0j6h5M,13556
11
11
  cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
@@ -1051,47 +1051,47 @@ cirq/testing/test_data/test_module_missing_json_test_data/__init__.py,sha256=47D
1051
1051
  cirq/testing/test_data/test_module_missing_testspec/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1052
1052
  cirq/testing/test_data/test_module_missing_testspec/json_test_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1053
1053
  cirq/transformers/__init__.py,sha256=B4ijV7PR4bN_QBswNqpAehIWTjXuaRMeyccrWz4Gw4w,7285
1054
- cirq/transformers/align.py,sha256=2uLjN5B4wNC661IGbwG5NKb-GSAW93pFCtPxuJkc6fs,3339
1054
+ cirq/transformers/align.py,sha256=95iI2sIil7V02hRPaXB-wG_eiMb5yF6ffUZU3fHmPP4,3341
1055
1055
  cirq/transformers/align_test.py,sha256=X4ysJuemqqOeKix2rO9SlwF4CBQzEYbgiqgZmlMxbsQ,7722
1056
1056
  cirq/transformers/drop_empty_moments.py,sha256=uZJG9FpUNyA1Mi0xLDuVuhj_siZhPZ1_s08Ry9xQ-1M,1535
1057
1057
  cirq/transformers/drop_empty_moments_test.py,sha256=h6Pji0z0o9KOB7fnSHseWpIAhzvxWurF_flg9XWm_YI,1959
1058
1058
  cirq/transformers/drop_negligible_operations.py,sha256=eP2dP_n0BYlr8aZ1wnD8YWsqCtwN0l0O6p45RbXEpfM,2097
1059
1059
  cirq/transformers/drop_negligible_operations_test.py,sha256=32mS4QQ8tiH3wBAAgbUU8LgwWDmvreRVEDZML_kgxyo,3859
1060
- cirq/transformers/dynamical_decoupling.py,sha256=0FcSdAukav3Acw2sk-B1po5LiV4dx6egcS9F2YGSuIs,15044
1061
- cirq/transformers/dynamical_decoupling_test.py,sha256=VeKlzaab_3fPDMiPaPihgvlbOWiJFflppMplSj0tfIo,44731
1060
+ cirq/transformers/dynamical_decoupling.py,sha256=nVYH0vNIflfnB-gp8awMb0xv8lo_FYkeMJNBoBtCUQg,15053
1061
+ cirq/transformers/dynamical_decoupling_test.py,sha256=UXYBxc_8lnq-pqMBgj5qhPEXnYv6bccMjiIBtEMTGTQ,44728
1062
1062
  cirq/transformers/eject_phased_paulis.py,sha256=ZeVEh614OihWZtHyaBBtgpWj_dUxQGXDzf4NmBlzbeM,14725
1063
1063
  cirq/transformers/eject_phased_paulis_test.py,sha256=AOMmOq3fWFGm2_qDyocjtF9fK7GAhC0kF550mkjtPx4,15791
1064
1064
  cirq/transformers/eject_z.py,sha256=3u0Q0WGGAxmZuPnyiU4q04gJMnY--0nvhF4eotnSl9k,5803
1065
1065
  cirq/transformers/eject_z_test.py,sha256=mKa-xViF9ZyuJpHWeqmYfPHL-3AGNTTfe0yHaXYHRZ8,13226
1066
1066
  cirq/transformers/expand_composite.py,sha256=jDuipLc-9uYKGogQ7HAH0NLg5qb1uhdxh1nFWBYWkPk,2402
1067
- cirq/transformers/expand_composite_test.py,sha256=bc18zBuo_7yAzkfIv8scfl_6s-NaGXOX8Rrw34oiJE0,8676
1067
+ cirq/transformers/expand_composite_test.py,sha256=l-4EZqj0CN9NJJRYSvvAYLkIvQ9t2YAPtkCnuKs-KJU,8677
1068
1068
  cirq/transformers/insertion_sort.py,sha256=LtuLQmoA1uWyraPqQ7_QZdkf_vAk75V5HIHvnk4GIZo,2613
1069
1069
  cirq/transformers/insertion_sort_test.py,sha256=E4unAfvPrTE73zI7OnZ8vWq5BUXYpPYjUw2zuq1a_vw,1231
1070
- cirq/transformers/measurement_transformers.py,sha256=crAYKGK90drr_3GEh5t8-Z87eSE8v6uH9Xcn0OfjpOs,19496
1070
+ cirq/transformers/measurement_transformers.py,sha256=JXB-hpCmLD4oVA4Y8hAFL4khowPVlwKsmuDVlgLC_4o,19496
1071
1071
  cirq/transformers/measurement_transformers_test.py,sha256=mJKYFqqMwZnD8KXVM1tmF2kcIZXkkZKlfOU9XbGxYpQ,29019
1072
1072
  cirq/transformers/merge_k_qubit_gates.py,sha256=v9vY3f52S9QR7D_Om4APSZ65rwJH6Z7g6Gf3pD_9H3I,4380
1073
1073
  cirq/transformers/merge_k_qubit_gates_test.py,sha256=523FmfCC7mGX_zecGaQ2tgdqBvMGiMinwJMIfKBgG8E,14016
1074
- cirq/transformers/merge_single_qubit_gates.py,sha256=jQsO2mTagm4nmLoD0rk-FP4un80D3RJtxBBgAVTyQYg,13664
1075
- cirq/transformers/merge_single_qubit_gates_test.py,sha256=48U_X4fWZ3BZiFI14kZL6T9TPaHSwfVIPrQWnnTABl0,18076
1076
- cirq/transformers/noise_adding.py,sha256=ZBS-015Kc-BnoO-lMXfEGpCXbPu4whVgTXIB-E16ApQ,4476
1074
+ cirq/transformers/merge_single_qubit_gates.py,sha256=p452ZsVPcxQSBwbjcT1H0OOPinb37DAIHxNjphEwvGk,13671
1075
+ cirq/transformers/merge_single_qubit_gates_test.py,sha256=ZIJmpi2rGNSGEu0xY3zRS7gFJbX6-zyGrIsaqGrL5jI,18080
1076
+ cirq/transformers/noise_adding.py,sha256=T7lpo5DOiVEieDOD_AId49xAVd5Z7Rq17cNGbxOrOLA,4470
1077
1077
  cirq/transformers/noise_adding_test.py,sha256=nHOoKUPBBOkWF6A_JhIO6-G0AuFkLKBCxH7e2BOem9M,2171
1078
- cirq/transformers/optimize_for_target_gateset.py,sha256=QThizLtkzvZpUK-LG77ixuZXghDyWGNn6yHkNrzYR3o,7206
1078
+ cirq/transformers/optimize_for_target_gateset.py,sha256=8jEOazQmnDsHEXJhdRDzIWVLYuAwy3EIByqpq7_VTVg,7216
1079
1079
  cirq/transformers/optimize_for_target_gateset_test.py,sha256=6xu7bDUf2CifMGFvutXT_CI2Wu_FSeucg6tcXHEeOZw,19574
1080
- cirq/transformers/qubit_management_transformers.py,sha256=jHgtn-Z8LRx5iiiQxd-mZVg4HkXq9spO_Tm_AvRyaHk,9433
1080
+ cirq/transformers/qubit_management_transformers.py,sha256=uLSwYrJ62REI8WCslClRiKQdNE7mLD48L5bhINHRY34,9431
1081
1081
  cirq/transformers/qubit_management_transformers_test.py,sha256=QjrEx3jC1AG4YGD2VdHW59SRW1icQ-pJc3zAMkJqAvE,14051
1082
- cirq/transformers/randomized_measurements.py,sha256=J4c9ZwYRDJ2_X_QzXWds4Qe0t9ZL4Xt2XQed27Z3QuA,5709
1082
+ cirq/transformers/randomized_measurements.py,sha256=pbftgY2ctVMOoJHPBq96ruW0hkcNustLo6_d_eQvyPc,5725
1083
1083
  cirq/transformers/randomized_measurements_test.py,sha256=ZfD8QW9Iy7NfidA1Iez9DUuT9HuzyEzFpHF1JNffE-I,2817
1084
- cirq/transformers/stratify.py,sha256=-Kl9y508gRi84Jwh-ZvLAerdpqPBmhAdknxXfVhcUK0,10452
1084
+ cirq/transformers/stratify.py,sha256=vrQjnDHb54Yu3IJz0FO1uLRX2QD1o7wI3UDPeRUsTVo,10453
1085
1085
  cirq/transformers/stratify_test.py,sha256=X4h2KMc82N3G6d_qLIP0HTsrDWerWgEXTH_WBPN8nd0,15257
1086
- cirq/transformers/symbolize.py,sha256=F4ky19Fd81recaSpmvldCmAjbmlEnf9-WxUexAYy9As,3992
1086
+ cirq/transformers/symbolize.py,sha256=5gVjtxJ5C0EpxSlGMTsU6VNwGfJfFosuPNgZOofQ1Wo,3992
1087
1087
  cirq/transformers/symbolize_test.py,sha256=IF92t0r_mhC48tmCCVJqykXD6ms166n6XfbcSRTrJbY,2243
1088
1088
  cirq/transformers/synchronize_terminal_measurements.py,sha256=lORajz_Qd1RC3baNdrqo5xJcqEWgwPHUfY0VaHk6lxI,3825
1089
1089
  cirq/transformers/synchronize_terminal_measurements_test.py,sha256=sOmAYP3jXSUbUSJO5KKgkLPDWCWxPLUcRTSZ48HaDrA,7858
1090
- cirq/transformers/tag_transformers.py,sha256=s0146ylk0Kxh8NULQhRy7PAzCSRNYVPyEnuMYUxWxWw,3504
1090
+ cirq/transformers/tag_transformers.py,sha256=xGTEe9_H857Zd-GJ_g1tlCz_zH3kWKGBq38Zzoi1klU,3510
1091
1091
  cirq/transformers/tag_transformers_test.py,sha256=PqIcYFgiLU7VgC1EHkFYhxNCf0D9zKDCZ_Gwtnykkt4,3439
1092
- cirq/transformers/transformer_api.py,sha256=Jv1bcAjBlJz36Pu-6Ye8kIQ_gVjEkpjMoVvLWjcrenk,16826
1092
+ cirq/transformers/transformer_api.py,sha256=3Cwf_HI9QuRxcmoDvq3vLUMmbyS9-XI927hH9yUlpK0,16824
1093
1093
  cirq/transformers/transformer_api_test.py,sha256=vz_zTDPJIfjfqORGKCxeAs3U1F3X2dFNbe50o79uY-4,13273
1094
- cirq/transformers/transformer_primitives.py,sha256=sNEWuWpCwtKVphdzQdgOKg9aLUGkNO7389Pc9OY4lOg,36522
1094
+ cirq/transformers/transformer_primitives.py,sha256=U7eN9UQ3YpW6D8UPJTHxsSO4ERpZxRxt14rqbMTk71Q,36521
1095
1095
  cirq/transformers/transformer_primitives_test.py,sha256=QAayPS74Ro4TTol-IOPnd7S49DKhvXYmWci0nOsk05A,41712
1096
1096
  cirq/transformers/analytical_decompositions/__init__.py,sha256=Rw7X6hPh14k-cDTcdWI7fQu8v5oU9d1vHuwulUBv-8o,3694
1097
1097
  cirq/transformers/analytical_decompositions/clifford_decomposition.py,sha256=sH7nesFWgYOWEl0UCUAmx6zsFQG0ibeQZpq7Imx38MY,6743
@@ -1220,8 +1220,8 @@ cirq/work/sampler.py,sha256=rxbMWvrhu3gfNSBjZKozw28lLKVvBAS_1EGyPdYe8Xg,19041
1220
1220
  cirq/work/sampler_test.py,sha256=SsMrRvLDYELyOAWLKISjkdEfrBwLYWRsT6D8WrsLM3Q,13533
1221
1221
  cirq/work/zeros_sampler.py,sha256=Fs2JWwq0n9zv7_G5Rm-9vPeHUag7uctcMOHg0JTkZpc,2371
1222
1222
  cirq/work/zeros_sampler_test.py,sha256=lQLgQDGBLtfImryys2HzQ2jOSGxHgc7-koVBUhv8qYk,3345
1223
- cirq_core-1.6.0.dev20250702211226.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1224
- cirq_core-1.6.0.dev20250702211226.dist-info/METADATA,sha256=wI4Zgjv5MEkZeh0f_f3ALw--BH4ALr4vcaBEV3pOB_U,4857
1225
- cirq_core-1.6.0.dev20250702211226.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1226
- cirq_core-1.6.0.dev20250702211226.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1227
- cirq_core-1.6.0.dev20250702211226.dist-info/RECORD,,
1223
+ cirq_core-1.6.0.dev20250704055727.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1224
+ cirq_core-1.6.0.dev20250704055727.dist-info/METADATA,sha256=axtZ-qHpQmIh8UMQU0U2bOCG5OAB4lJyB-bg9xiFDOQ,4857
1225
+ cirq_core-1.6.0.dev20250704055727.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1226
+ cirq_core-1.6.0.dev20250704055727.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1227
+ cirq_core-1.6.0.dev20250704055727.dist-info/RECORD,,