cirq-core 1.5.0.dev20250104153038__py3-none-any.whl → 1.5.0.dev20250106184334__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 +1 -1
- cirq/_version_test.py +1 -1
- cirq/circuits/circuit_operation.py +32 -17
- cirq/circuits/circuit_operation_test.py +38 -25
- cirq/ops/classically_controlled_operation_test.py +70 -60
- cirq/protocols/json_test_data/CircuitOperation.json +6 -3
- cirq/protocols/json_test_data/CircuitOperation.repr_inward +4 -2
- {cirq_core-1.5.0.dev20250104153038.dist-info → cirq_core-1.5.0.dev20250106184334.dist-info}/METADATA +1 -1
- {cirq_core-1.5.0.dev20250104153038.dist-info → cirq_core-1.5.0.dev20250106184334.dist-info}/RECORD +12 -12
- {cirq_core-1.5.0.dev20250104153038.dist-info → cirq_core-1.5.0.dev20250106184334.dist-info}/LICENSE +0 -0
- {cirq_core-1.5.0.dev20250104153038.dist-info → cirq_core-1.5.0.dev20250106184334.dist-info}/WHEEL +0 -0
- {cirq_core-1.5.0.dev20250104153038.dist-info → cirq_core-1.5.0.dev20250106184334.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
|
@@ -89,7 +89,7 @@ class CircuitOperation(ops.Operation):
|
|
|
89
89
|
repetition_ids: Optional[Sequence[str]] = None,
|
|
90
90
|
parent_path: Tuple[str, ...] = (),
|
|
91
91
|
extern_keys: FrozenSet['cirq.MeasurementKey'] = frozenset(),
|
|
92
|
-
use_repetition_ids: bool =
|
|
92
|
+
use_repetition_ids: Optional[bool] = None,
|
|
93
93
|
repeat_until: Optional['cirq.Condition'] = None,
|
|
94
94
|
):
|
|
95
95
|
"""Initializes a CircuitOperation.
|
|
@@ -120,7 +120,8 @@ class CircuitOperation(ops.Operation):
|
|
|
120
120
|
use_repetition_ids: When True, any measurement key in the subcircuit
|
|
121
121
|
will have its path prepended with the repetition id for each
|
|
122
122
|
repetition. When False, this will not happen and the measurement
|
|
123
|
-
key will be repeated.
|
|
123
|
+
key will be repeated. When None, default to False unless the caller
|
|
124
|
+
passes `repetition_ids` explicitly.
|
|
124
125
|
repeat_until: A condition that will be tested after each iteration of
|
|
125
126
|
the subcircuit. The subcircuit will repeat until condition returns
|
|
126
127
|
True, but will always run at least once, and the measurement key
|
|
@@ -156,6 +157,8 @@ class CircuitOperation(ops.Operation):
|
|
|
156
157
|
# Ensure that the circuit is invertible if the repetitions are negative.
|
|
157
158
|
self._repetitions = repetitions
|
|
158
159
|
self._repetition_ids = None if repetition_ids is None else list(repetition_ids)
|
|
160
|
+
if use_repetition_ids is None:
|
|
161
|
+
use_repetition_ids = repetition_ids is not None
|
|
159
162
|
self._use_repetition_ids = use_repetition_ids
|
|
160
163
|
if isinstance(self._repetitions, float):
|
|
161
164
|
if math.isclose(self._repetitions, round(self._repetitions)):
|
|
@@ -263,7 +266,7 @@ class CircuitOperation(ops.Operation):
|
|
|
263
266
|
'repetition_ids': self.repetition_ids,
|
|
264
267
|
'parent_path': self.parent_path,
|
|
265
268
|
'extern_keys': self._extern_keys,
|
|
266
|
-
'use_repetition_ids': self.use_repetition_ids,
|
|
269
|
+
'use_repetition_ids': True if 'repetition_ids' in changes else self.use_repetition_ids,
|
|
267
270
|
'repeat_until': self.repeat_until,
|
|
268
271
|
**changes,
|
|
269
272
|
}
|
|
@@ -448,11 +451,9 @@ class CircuitOperation(ops.Operation):
|
|
|
448
451
|
args += f'param_resolver={proper_repr(self.param_resolver)},\n'
|
|
449
452
|
if self.parent_path:
|
|
450
453
|
args += f'parent_path={proper_repr(self.parent_path)},\n'
|
|
451
|
-
if self.
|
|
454
|
+
if self.use_repetition_ids:
|
|
452
455
|
# Default repetition_ids need not be specified.
|
|
453
456
|
args += f'repetition_ids={proper_repr(self.repetition_ids)},\n'
|
|
454
|
-
if not self.use_repetition_ids:
|
|
455
|
-
args += 'use_repetition_ids=False,\n'
|
|
456
457
|
if self.repeat_until:
|
|
457
458
|
args += f'repeat_until={self.repeat_until!r},\n'
|
|
458
459
|
indented_args = args.replace('\n', '\n ')
|
|
@@ -477,14 +478,15 @@ class CircuitOperation(ops.Operation):
|
|
|
477
478
|
args.append(f'params={self.param_resolver.param_dict}')
|
|
478
479
|
if self.parent_path:
|
|
479
480
|
args.append(f'parent_path={self.parent_path}')
|
|
480
|
-
if self.
|
|
481
|
-
|
|
482
|
-
|
|
481
|
+
if self.use_repetition_ids:
|
|
482
|
+
if self.repetition_ids != self._default_repetition_ids():
|
|
483
|
+
args.append(f'repetition_ids={self.repetition_ids}')
|
|
484
|
+
else:
|
|
485
|
+
# Default repetition_ids need not be specified.
|
|
486
|
+
args.append(f'loops={self.repetitions}, use_repetition_ids=True')
|
|
483
487
|
elif self.repetitions != 1:
|
|
484
|
-
#
|
|
488
|
+
# Add loops if not using repetition_ids.
|
|
485
489
|
args.append(f'loops={self.repetitions}')
|
|
486
|
-
if not self.use_repetition_ids:
|
|
487
|
-
args.append('no_rep_ids')
|
|
488
490
|
if self.repeat_until:
|
|
489
491
|
args.append(f'until={self.repeat_until}')
|
|
490
492
|
if not args:
|
|
@@ -529,10 +531,9 @@ class CircuitOperation(ops.Operation):
|
|
|
529
531
|
'measurement_key_map': self.measurement_key_map,
|
|
530
532
|
'param_resolver': self.param_resolver,
|
|
531
533
|
'repetition_ids': self.repetition_ids,
|
|
534
|
+
'use_repetition_ids': self.use_repetition_ids,
|
|
532
535
|
'parent_path': self.parent_path,
|
|
533
536
|
}
|
|
534
|
-
if not self.use_repetition_ids:
|
|
535
|
-
resp['use_repetition_ids'] = False
|
|
536
537
|
if self.repeat_until:
|
|
537
538
|
resp['repeat_until'] = self.repeat_until
|
|
538
539
|
return resp
|
|
@@ -566,7 +567,10 @@ class CircuitOperation(ops.Operation):
|
|
|
566
567
|
# Methods for constructing a similar object with one field modified.
|
|
567
568
|
|
|
568
569
|
def repeat(
|
|
569
|
-
self,
|
|
570
|
+
self,
|
|
571
|
+
repetitions: Optional[IntParam] = None,
|
|
572
|
+
repetition_ids: Optional[Sequence[str]] = None,
|
|
573
|
+
use_repetition_ids: Optional[bool] = None,
|
|
570
574
|
) -> 'CircuitOperation':
|
|
571
575
|
"""Returns a copy of this operation repeated 'repetitions' times.
|
|
572
576
|
Each repetition instance will be identified by a single repetition_id.
|
|
@@ -577,6 +581,10 @@ class CircuitOperation(ops.Operation):
|
|
|
577
581
|
defaults to the length of `repetition_ids`.
|
|
578
582
|
repetition_ids: List of IDs, one for each repetition. If unset,
|
|
579
583
|
defaults to `default_repetition_ids(repetitions)`.
|
|
584
|
+
use_repetition_ids: If given, this specifies the value for `use_repetition_ids`
|
|
585
|
+
of the resulting circuit operation. If not given, we enable ids if
|
|
586
|
+
`repetition_ids` is not None, and otherwise fall back to
|
|
587
|
+
`self.use_repetition_ids`.
|
|
580
588
|
|
|
581
589
|
Returns:
|
|
582
590
|
A copy of this operation repeated `repetitions` times with the
|
|
@@ -591,6 +599,9 @@ class CircuitOperation(ops.Operation):
|
|
|
591
599
|
ValueError: Unexpected length of `repetition_ids`.
|
|
592
600
|
ValueError: Both `repetitions` and `repetition_ids` are None.
|
|
593
601
|
"""
|
|
602
|
+
if use_repetition_ids is None:
|
|
603
|
+
use_repetition_ids = True if repetition_ids is not None else self.use_repetition_ids
|
|
604
|
+
|
|
594
605
|
if repetitions is None:
|
|
595
606
|
if repetition_ids is None:
|
|
596
607
|
raise ValueError('At least one of repetitions and repetition_ids must be set')
|
|
@@ -604,7 +615,7 @@ class CircuitOperation(ops.Operation):
|
|
|
604
615
|
expected_repetition_id_length: int = np.abs(repetitions)
|
|
605
616
|
|
|
606
617
|
if repetition_ids is None:
|
|
607
|
-
if
|
|
618
|
+
if use_repetition_ids:
|
|
608
619
|
repetition_ids = default_repetition_ids(expected_repetition_id_length)
|
|
609
620
|
elif len(repetition_ids) != expected_repetition_id_length:
|
|
610
621
|
raise ValueError(
|
|
@@ -617,7 +628,11 @@ class CircuitOperation(ops.Operation):
|
|
|
617
628
|
|
|
618
629
|
# The eventual number of repetitions of the returned CircuitOperation.
|
|
619
630
|
final_repetitions = protocols.mul(self.repetitions, repetitions)
|
|
620
|
-
return self.replace(
|
|
631
|
+
return self.replace(
|
|
632
|
+
repetitions=final_repetitions,
|
|
633
|
+
repetition_ids=repetition_ids,
|
|
634
|
+
use_repetition_ids=use_repetition_ids,
|
|
635
|
+
)
|
|
621
636
|
|
|
622
637
|
def __pow__(self, power: IntParam) -> 'cirq.CircuitOperation':
|
|
623
638
|
return self.repeat(power)
|
|
@@ -294,15 +294,15 @@ def test_repeat(add_measurements: bool, use_default_ids_for_initial_rep: bool) -
|
|
|
294
294
|
op_with_reps: Optional[cirq.CircuitOperation] = None
|
|
295
295
|
rep_ids = []
|
|
296
296
|
if use_default_ids_for_initial_rep:
|
|
297
|
-
op_with_reps = op_base.repeat(initial_repetitions)
|
|
298
297
|
rep_ids = ['0', '1', '2']
|
|
299
|
-
|
|
298
|
+
op_with_reps = op_base.repeat(initial_repetitions, use_repetition_ids=True)
|
|
300
299
|
else:
|
|
301
300
|
rep_ids = ['a', 'b', 'c']
|
|
302
301
|
op_with_reps = op_base.repeat(initial_repetitions, rep_ids)
|
|
303
|
-
|
|
304
|
-
|
|
302
|
+
assert op_base**initial_repetitions != op_with_reps
|
|
303
|
+
assert (op_base**initial_repetitions).replace(repetition_ids=rep_ids) == op_with_reps
|
|
305
304
|
assert op_with_reps.repetitions == initial_repetitions
|
|
305
|
+
assert op_with_reps.use_repetition_ids
|
|
306
306
|
assert op_with_reps.repetition_ids == rep_ids
|
|
307
307
|
assert op_with_reps.repeat(1) is op_with_reps
|
|
308
308
|
|
|
@@ -436,6 +436,7 @@ def test_parameterized_repeat_side_effects():
|
|
|
436
436
|
op = cirq.CircuitOperation(
|
|
437
437
|
cirq.FrozenCircuit(cirq.X(q).with_classical_controls('c'), cirq.measure(q, key='m')),
|
|
438
438
|
repetitions=sympy.Symbol('a'),
|
|
439
|
+
use_repetition_ids=True,
|
|
439
440
|
)
|
|
440
441
|
|
|
441
442
|
# Control keys can be calculated because they only "lift" if there's a matching
|
|
@@ -689,7 +690,6 @@ cirq.CircuitOperation(
|
|
|
689
690
|
),
|
|
690
691
|
),
|
|
691
692
|
]),
|
|
692
|
-
use_repetition_ids=False,
|
|
693
693
|
)"""
|
|
694
694
|
)
|
|
695
695
|
op7 = cirq.CircuitOperation(
|
|
@@ -706,7 +706,6 @@ cirq.CircuitOperation(
|
|
|
706
706
|
cirq.measure(cirq.LineQubit(0), key=cirq.MeasurementKey(name='a')),
|
|
707
707
|
),
|
|
708
708
|
]),
|
|
709
|
-
use_repetition_ids=False,
|
|
710
709
|
repeat_until=cirq.KeyCondition(cirq.MeasurementKey(name='a')),
|
|
711
710
|
)"""
|
|
712
711
|
)
|
|
@@ -737,6 +736,7 @@ def test_json_dict():
|
|
|
737
736
|
'param_resolver': op.param_resolver,
|
|
738
737
|
'parent_path': op.parent_path,
|
|
739
738
|
'repetition_ids': None,
|
|
739
|
+
'use_repetition_ids': False,
|
|
740
740
|
}
|
|
741
741
|
|
|
742
742
|
|
|
@@ -843,6 +843,26 @@ def test_decompose_loops_with_measurements():
|
|
|
843
843
|
circuit = cirq.FrozenCircuit(cirq.H(a), cirq.CX(a, b), cirq.measure(a, b, key='m'))
|
|
844
844
|
base_op = cirq.CircuitOperation(circuit)
|
|
845
845
|
|
|
846
|
+
op = base_op.with_qubits(b, a).repeat(3)
|
|
847
|
+
expected_circuit = cirq.Circuit(
|
|
848
|
+
cirq.H(b),
|
|
849
|
+
cirq.CX(b, a),
|
|
850
|
+
cirq.measure(b, a, key=cirq.MeasurementKey.parse_serialized('m')),
|
|
851
|
+
cirq.H(b),
|
|
852
|
+
cirq.CX(b, a),
|
|
853
|
+
cirq.measure(b, a, key=cirq.MeasurementKey.parse_serialized('m')),
|
|
854
|
+
cirq.H(b),
|
|
855
|
+
cirq.CX(b, a),
|
|
856
|
+
cirq.measure(b, a, key=cirq.MeasurementKey.parse_serialized('m')),
|
|
857
|
+
)
|
|
858
|
+
assert cirq.Circuit(cirq.decompose_once(op)) == expected_circuit
|
|
859
|
+
|
|
860
|
+
|
|
861
|
+
def test_decompose_loops_with_measurements_use_rep_ids():
|
|
862
|
+
a, b = cirq.LineQubit.range(2)
|
|
863
|
+
circuit = cirq.FrozenCircuit(cirq.H(a), cirq.CX(a, b), cirq.measure(a, b, key='m'))
|
|
864
|
+
base_op = cirq.CircuitOperation(circuit, use_repetition_ids=True)
|
|
865
|
+
|
|
846
866
|
op = base_op.with_qubits(b, a).repeat(3)
|
|
847
867
|
expected_circuit = cirq.Circuit(
|
|
848
868
|
cirq.H(b),
|
|
@@ -999,7 +1019,9 @@ def test_keys_under_parent_path():
|
|
|
999
1019
|
op3 = cirq.with_key_path_prefix(op2, ('C',))
|
|
1000
1020
|
assert cirq.measurement_key_names(op3) == {'C:B:A'}
|
|
1001
1021
|
op4 = op3.repeat(2)
|
|
1002
|
-
assert cirq.measurement_key_names(op4) == {'C:B:
|
|
1022
|
+
assert cirq.measurement_key_names(op4) == {'C:B:A'}
|
|
1023
|
+
op4_rep = op3.repeat(2).replace(use_repetition_ids=True)
|
|
1024
|
+
assert cirq.measurement_key_names(op4_rep) == {'C:B:0:A', 'C:B:1:A'}
|
|
1003
1025
|
|
|
1004
1026
|
|
|
1005
1027
|
def test_mapped_circuit_preserves_moments():
|
|
@@ -1077,12 +1099,8 @@ def test_mapped_circuit_allows_repeated_keys():
|
|
|
1077
1099
|
def test_simulate_no_repetition_ids_both_levels(sim):
|
|
1078
1100
|
q = cirq.LineQubit(0)
|
|
1079
1101
|
inner = cirq.Circuit(cirq.measure(q, key='a'))
|
|
1080
|
-
middle = cirq.Circuit(
|
|
1081
|
-
|
|
1082
|
-
)
|
|
1083
|
-
outer_subcircuit = cirq.CircuitOperation(
|
|
1084
|
-
middle.freeze(), repetitions=2, use_repetition_ids=False
|
|
1085
|
-
)
|
|
1102
|
+
middle = cirq.Circuit(cirq.CircuitOperation(inner.freeze(), repetitions=2))
|
|
1103
|
+
outer_subcircuit = cirq.CircuitOperation(middle.freeze(), repetitions=2)
|
|
1086
1104
|
circuit = cirq.Circuit(outer_subcircuit)
|
|
1087
1105
|
result = sim.run(circuit)
|
|
1088
1106
|
assert result.records['a'].shape == (1, 4, 1)
|
|
@@ -1092,10 +1110,10 @@ def test_simulate_no_repetition_ids_both_levels(sim):
|
|
|
1092
1110
|
def test_simulate_no_repetition_ids_outer(sim):
|
|
1093
1111
|
q = cirq.LineQubit(0)
|
|
1094
1112
|
inner = cirq.Circuit(cirq.measure(q, key='a'))
|
|
1095
|
-
middle = cirq.Circuit(
|
|
1096
|
-
|
|
1097
|
-
middle.freeze(), repetitions=2, use_repetition_ids=False
|
|
1113
|
+
middle = cirq.Circuit(
|
|
1114
|
+
cirq.CircuitOperation(inner.freeze(), repetitions=2, use_repetition_ids=True)
|
|
1098
1115
|
)
|
|
1116
|
+
outer_subcircuit = cirq.CircuitOperation(middle.freeze(), repetitions=2)
|
|
1099
1117
|
circuit = cirq.Circuit(outer_subcircuit)
|
|
1100
1118
|
result = sim.run(circuit)
|
|
1101
1119
|
assert result.records['0:a'].shape == (1, 2, 1)
|
|
@@ -1106,10 +1124,10 @@ def test_simulate_no_repetition_ids_outer(sim):
|
|
|
1106
1124
|
def test_simulate_no_repetition_ids_inner(sim):
|
|
1107
1125
|
q = cirq.LineQubit(0)
|
|
1108
1126
|
inner = cirq.Circuit(cirq.measure(q, key='a'))
|
|
1109
|
-
middle = cirq.Circuit(
|
|
1110
|
-
|
|
1127
|
+
middle = cirq.Circuit(cirq.CircuitOperation(inner.freeze(), repetitions=2))
|
|
1128
|
+
outer_subcircuit = cirq.CircuitOperation(
|
|
1129
|
+
middle.freeze(), repetitions=2, use_repetition_ids=True
|
|
1111
1130
|
)
|
|
1112
|
-
outer_subcircuit = cirq.CircuitOperation(middle.freeze(), repetitions=2)
|
|
1113
1131
|
circuit = cirq.Circuit(outer_subcircuit)
|
|
1114
1132
|
result = sim.run(circuit)
|
|
1115
1133
|
assert result.records['0:a'].shape == (1, 2, 1)
|
|
@@ -1124,7 +1142,6 @@ def test_repeat_until(sim):
|
|
|
1124
1142
|
cirq.X(q),
|
|
1125
1143
|
cirq.CircuitOperation(
|
|
1126
1144
|
cirq.FrozenCircuit(cirq.X(q), cirq.measure(q, key=key)),
|
|
1127
|
-
use_repetition_ids=False,
|
|
1128
1145
|
repeat_until=cirq.KeyCondition(key),
|
|
1129
1146
|
),
|
|
1130
1147
|
)
|
|
@@ -1139,7 +1156,6 @@ def test_repeat_until_sympy(sim):
|
|
|
1139
1156
|
q1, q2 = cirq.LineQubit.range(2)
|
|
1140
1157
|
circuitop = cirq.CircuitOperation(
|
|
1141
1158
|
cirq.FrozenCircuit(cirq.X(q2), cirq.measure(q2, key='b')),
|
|
1142
|
-
use_repetition_ids=False,
|
|
1143
1159
|
repeat_until=cirq.SympyCondition(sympy.Eq(sympy.Symbol('a'), sympy.Symbol('b'))),
|
|
1144
1160
|
)
|
|
1145
1161
|
c = cirq.Circuit(cirq.measure(q1, key='a'), circuitop)
|
|
@@ -1159,7 +1175,6 @@ def test_post_selection(sim):
|
|
|
1159
1175
|
c = cirq.Circuit(
|
|
1160
1176
|
cirq.CircuitOperation(
|
|
1161
1177
|
cirq.FrozenCircuit(cirq.X(q) ** 0.2, cirq.measure(q, key=key)),
|
|
1162
|
-
use_repetition_ids=False,
|
|
1163
1178
|
repeat_until=cirq.KeyCondition(key),
|
|
1164
1179
|
)
|
|
1165
1180
|
)
|
|
@@ -1175,14 +1190,13 @@ def test_repeat_until_diagram():
|
|
|
1175
1190
|
c = cirq.Circuit(
|
|
1176
1191
|
cirq.CircuitOperation(
|
|
1177
1192
|
cirq.FrozenCircuit(cirq.X(q) ** 0.2, cirq.measure(q, key=key)),
|
|
1178
|
-
use_repetition_ids=False,
|
|
1179
1193
|
repeat_until=cirq.KeyCondition(key),
|
|
1180
1194
|
)
|
|
1181
1195
|
)
|
|
1182
1196
|
cirq.testing.assert_has_diagram(
|
|
1183
1197
|
c,
|
|
1184
1198
|
"""
|
|
1185
|
-
0: ───[ 0: ───X^0.2───M('m')─── ](
|
|
1199
|
+
0: ───[ 0: ───X^0.2───M('m')─── ](until=m)───
|
|
1186
1200
|
""",
|
|
1187
1201
|
use_unicode_characters=True,
|
|
1188
1202
|
)
|
|
@@ -1199,7 +1213,6 @@ def test_repeat_until_error():
|
|
|
1199
1213
|
with pytest.raises(ValueError, match='Infinite loop'):
|
|
1200
1214
|
cirq.CircuitOperation(
|
|
1201
1215
|
cirq.FrozenCircuit(cirq.measure(q, key='m')),
|
|
1202
|
-
use_repetition_ids=False,
|
|
1203
1216
|
repeat_until=cirq.KeyCondition(cirq.MeasurementKey('a')),
|
|
1204
1217
|
)
|
|
1205
1218
|
|
|
@@ -358,7 +358,9 @@ def test_subcircuit_key_unset(sim):
|
|
|
358
358
|
cirq.measure(q1, key='b'),
|
|
359
359
|
)
|
|
360
360
|
circuit = cirq.Circuit(
|
|
361
|
-
cirq.CircuitOperation(
|
|
361
|
+
cirq.CircuitOperation(
|
|
362
|
+
inner.freeze(), repetitions=2, use_repetition_ids=True, measurement_key_map={'c': 'a'}
|
|
363
|
+
)
|
|
362
364
|
)
|
|
363
365
|
result = sim.run(circuit)
|
|
364
366
|
assert result.measurements['0:a'] == 0
|
|
@@ -377,7 +379,9 @@ def test_subcircuit_key_set(sim):
|
|
|
377
379
|
cirq.measure(q1, key='b'),
|
|
378
380
|
)
|
|
379
381
|
circuit = cirq.Circuit(
|
|
380
|
-
cirq.CircuitOperation(
|
|
382
|
+
cirq.CircuitOperation(
|
|
383
|
+
inner.freeze(), repetitions=4, use_repetition_ids=True, measurement_key_map={'c': 'a'}
|
|
384
|
+
)
|
|
381
385
|
)
|
|
382
386
|
result = sim.run(circuit)
|
|
383
387
|
assert result.measurements['0:a'] == 1
|
|
@@ -486,8 +490,12 @@ def test_str():
|
|
|
486
490
|
def test_scope_local():
|
|
487
491
|
q = cirq.LineQubit(0)
|
|
488
492
|
inner = cirq.Circuit(cirq.measure(q, key='a'), cirq.X(q).with_classical_controls('a'))
|
|
489
|
-
middle = cirq.Circuit(
|
|
490
|
-
|
|
493
|
+
middle = cirq.Circuit(
|
|
494
|
+
cirq.CircuitOperation(inner.freeze(), repetitions=2, use_repetition_ids=True)
|
|
495
|
+
)
|
|
496
|
+
outer_subcircuit = cirq.CircuitOperation(
|
|
497
|
+
middle.freeze(), repetitions=2, use_repetition_ids=True
|
|
498
|
+
)
|
|
491
499
|
circuit = outer_subcircuit.mapped_circuit(deep=True)
|
|
492
500
|
internal_control_keys = [
|
|
493
501
|
str(condition) for op in circuit.all_operations() for condition in cirq.control_keys(op)
|
|
@@ -495,15 +503,17 @@ def test_scope_local():
|
|
|
495
503
|
assert internal_control_keys == ['0:0:a', '0:1:a', '1:0:a', '1:1:a']
|
|
496
504
|
assert not cirq.control_keys(outer_subcircuit)
|
|
497
505
|
assert not cirq.control_keys(circuit)
|
|
506
|
+
# pylint: disable=line-too-long
|
|
498
507
|
cirq.testing.assert_has_diagram(
|
|
499
508
|
cirq.Circuit(outer_subcircuit),
|
|
500
509
|
"""
|
|
501
|
-
[ [ 0: ───M───X─── ]
|
|
502
|
-
0: ───[ 0: ───[ ║ ║ ]
|
|
503
|
-
[ [ a: ═══@═══^═══ ](loops=2) ](loops=2)
|
|
510
|
+
[ [ 0: ───M───X─── ] ]
|
|
511
|
+
0: ───[ 0: ───[ ║ ║ ]───────────────────────────────────── ]─────────────────────────────────────
|
|
512
|
+
[ [ a: ═══@═══^═══ ](loops=2, use_repetition_ids=True) ](loops=2, use_repetition_ids=True)
|
|
504
513
|
""",
|
|
505
514
|
use_unicode_characters=True,
|
|
506
515
|
)
|
|
516
|
+
# pylint: enable=line-too-long
|
|
507
517
|
cirq.testing.assert_has_diagram(
|
|
508
518
|
circuit,
|
|
509
519
|
"""
|
|
@@ -541,9 +551,9 @@ def test_scope_flatten_both():
|
|
|
541
551
|
cirq.testing.assert_has_diagram(
|
|
542
552
|
cirq.Circuit(outer_subcircuit),
|
|
543
553
|
"""
|
|
544
|
-
[ [ 0: ───M───X─── ]
|
|
545
|
-
0: ───[ 0: ───[ ║ ║ ]
|
|
546
|
-
[ [ a: ═══@═══^═══ ](loops=2
|
|
554
|
+
[ [ 0: ───M───X─── ] ]
|
|
555
|
+
0: ───[ 0: ───[ ║ ║ ]──────────── ]────────────
|
|
556
|
+
[ [ a: ═══@═══^═══ ](loops=2) ](loops=2)
|
|
547
557
|
""",
|
|
548
558
|
use_unicode_characters=True,
|
|
549
559
|
)
|
|
@@ -561,10 +571,10 @@ a: ═══@═══^═══@═══^═══@═══^═══@══
|
|
|
561
571
|
def test_scope_flatten_inner():
|
|
562
572
|
q = cirq.LineQubit(0)
|
|
563
573
|
inner = cirq.Circuit(cirq.measure(q, key='a'), cirq.X(q).with_classical_controls('a'))
|
|
564
|
-
middle = cirq.Circuit(
|
|
565
|
-
|
|
574
|
+
middle = cirq.Circuit(cirq.CircuitOperation(inner.freeze(), repetitions=2))
|
|
575
|
+
outer_subcircuit = cirq.CircuitOperation(
|
|
576
|
+
middle.freeze(), repetitions=2, use_repetition_ids=True
|
|
566
577
|
)
|
|
567
|
-
outer_subcircuit = cirq.CircuitOperation(middle.freeze(), repetitions=2)
|
|
568
578
|
circuit = outer_subcircuit.mapped_circuit(deep=True)
|
|
569
579
|
internal_control_keys = [
|
|
570
580
|
str(condition) for op in circuit.all_operations() for condition in cirq.control_keys(op)
|
|
@@ -575,9 +585,9 @@ def test_scope_flatten_inner():
|
|
|
575
585
|
cirq.testing.assert_has_diagram(
|
|
576
586
|
cirq.Circuit(outer_subcircuit),
|
|
577
587
|
"""
|
|
578
|
-
[ [ 0: ───M───X─── ]
|
|
579
|
-
0: ───[ 0: ───[ ║ ║ ]
|
|
580
|
-
[ [ a: ═══@═══^═══ ](loops=2
|
|
588
|
+
[ [ 0: ───M───X─── ] ]
|
|
589
|
+
0: ───[ 0: ───[ ║ ║ ]──────────── ]─────────────────────────────────────
|
|
590
|
+
[ [ a: ═══@═══^═══ ](loops=2) ](loops=2, use_repetition_ids=True)
|
|
581
591
|
""",
|
|
582
592
|
use_unicode_characters=True,
|
|
583
593
|
)
|
|
@@ -597,10 +607,10 @@ def test_scope_flatten_inner():
|
|
|
597
607
|
def test_scope_flatten_outer():
|
|
598
608
|
q = cirq.LineQubit(0)
|
|
599
609
|
inner = cirq.Circuit(cirq.measure(q, key='a'), cirq.X(q).with_classical_controls('a'))
|
|
600
|
-
middle = cirq.Circuit(
|
|
601
|
-
|
|
602
|
-
middle.freeze(), repetitions=2, use_repetition_ids=False
|
|
610
|
+
middle = cirq.Circuit(
|
|
611
|
+
cirq.CircuitOperation(inner.freeze(), repetitions=2, use_repetition_ids=True)
|
|
603
612
|
)
|
|
613
|
+
outer_subcircuit = cirq.CircuitOperation(middle.freeze(), repetitions=2)
|
|
604
614
|
circuit = outer_subcircuit.mapped_circuit(deep=True)
|
|
605
615
|
internal_control_keys = [
|
|
606
616
|
str(condition) for op in circuit.all_operations() for condition in cirq.control_keys(op)
|
|
@@ -611,9 +621,9 @@ def test_scope_flatten_outer():
|
|
|
611
621
|
cirq.testing.assert_has_diagram(
|
|
612
622
|
cirq.Circuit(outer_subcircuit),
|
|
613
623
|
"""
|
|
614
|
-
[ [ 0: ───M───X─── ]
|
|
615
|
-
0: ───[ 0: ───[ ║ ║ ]
|
|
616
|
-
[ [ a: ═══@═══^═══ ](loops=2) ](loops=2
|
|
624
|
+
[ [ 0: ───M───X─── ] ]
|
|
625
|
+
0: ───[ 0: ───[ ║ ║ ]───────────────────────────────────── ]────────────
|
|
626
|
+
[ [ a: ═══@═══^═══ ](loops=2, use_repetition_ids=True) ](loops=2)
|
|
617
627
|
""",
|
|
618
628
|
use_unicode_characters=True,
|
|
619
629
|
)
|
|
@@ -635,9 +645,11 @@ def test_scope_extern():
|
|
|
635
645
|
inner = cirq.Circuit(cirq.measure(q, key='a'), cirq.X(q).with_classical_controls('b'))
|
|
636
646
|
middle = cirq.Circuit(
|
|
637
647
|
cirq.measure(q, key=cirq.MeasurementKey('b')),
|
|
638
|
-
cirq.CircuitOperation(inner.freeze(), repetitions=2),
|
|
648
|
+
cirq.CircuitOperation(inner.freeze(), repetitions=2, use_repetition_ids=True),
|
|
649
|
+
)
|
|
650
|
+
outer_subcircuit = cirq.CircuitOperation(
|
|
651
|
+
middle.freeze(), repetitions=2, use_repetition_ids=True
|
|
639
652
|
)
|
|
640
|
-
outer_subcircuit = cirq.CircuitOperation(middle.freeze(), repetitions=2)
|
|
641
653
|
circuit = outer_subcircuit.mapped_circuit(deep=True)
|
|
642
654
|
internal_control_keys = [
|
|
643
655
|
str(condition) for op in circuit.all_operations() for condition in cirq.control_keys(op)
|
|
@@ -645,17 +657,19 @@ def test_scope_extern():
|
|
|
645
657
|
assert internal_control_keys == ['0:b', '0:b', '1:b', '1:b']
|
|
646
658
|
assert not cirq.control_keys(outer_subcircuit)
|
|
647
659
|
assert not cirq.control_keys(circuit)
|
|
660
|
+
# pylint: disable=line-too-long
|
|
648
661
|
cirq.testing.assert_has_diagram(
|
|
649
662
|
cirq.Circuit(outer_subcircuit),
|
|
650
663
|
"""
|
|
651
|
-
[ [ 0: ───M('a')───X─── ]
|
|
652
|
-
[ 0: ───M───[ ║ ]
|
|
653
|
-
0: ───[ ║ [ b: ════════════^═══ ](loops=2) ]
|
|
654
|
-
[ ║ ║
|
|
655
|
-
[ b:
|
|
664
|
+
[ [ 0: ───M('a')───X─── ] ]
|
|
665
|
+
[ 0: ───M───[ ║ ]───────────────────────────────────── ]
|
|
666
|
+
0: ───[ ║ [ b: ════════════^═══ ](loops=2, use_repetition_ids=True) ]─────────────────────────────────────
|
|
667
|
+
[ ║ ║ ]
|
|
668
|
+
[ b: ═══@═══╩═══════════════════════════════════════════════════════════ ](loops=2, use_repetition_ids=True)
|
|
656
669
|
""",
|
|
657
670
|
use_unicode_characters=True,
|
|
658
671
|
)
|
|
672
|
+
# pylint: enable=line-too-long
|
|
659
673
|
cirq.testing.assert_has_diagram(
|
|
660
674
|
circuit,
|
|
661
675
|
"""
|
|
@@ -683,9 +697,9 @@ def test_scope_extern_wrapping_with_non_repeating_subcircuits():
|
|
|
683
697
|
)
|
|
684
698
|
middle = wrap_frozen(
|
|
685
699
|
wrap(cirq.measure(q, key=cirq.MeasurementKey('b'))),
|
|
686
|
-
wrap(cirq.CircuitOperation(inner, repetitions=2)),
|
|
700
|
+
wrap(cirq.CircuitOperation(inner, repetitions=2, use_repetition_ids=True)),
|
|
687
701
|
)
|
|
688
|
-
outer_subcircuit = cirq.CircuitOperation(middle, repetitions=2)
|
|
702
|
+
outer_subcircuit = cirq.CircuitOperation(middle, repetitions=2, use_repetition_ids=True)
|
|
689
703
|
circuit = outer_subcircuit.mapped_circuit(deep=True)
|
|
690
704
|
internal_control_keys = [
|
|
691
705
|
str(condition) for op in circuit.all_operations() for condition in cirq.control_keys(op)
|
|
@@ -738,9 +752,9 @@ b: ═══╩═════════════════════
|
|
|
738
752
|
cirq.testing.assert_has_diagram(
|
|
739
753
|
circuit,
|
|
740
754
|
"""
|
|
741
|
-
0: ───M('
|
|
742
|
-
|
|
743
|
-
b:
|
|
755
|
+
0: ───M('c')───M('a')───X───M('a')───X───M('c')───M('a')───X───M('a')───X───
|
|
756
|
+
║ ║ ║ ║
|
|
757
|
+
b: ═════════════════════^════════════^═════════════════════^════════════^═══
|
|
744
758
|
""",
|
|
745
759
|
use_unicode_characters=True,
|
|
746
760
|
)
|
|
@@ -752,9 +766,11 @@ def test_scope_extern_mismatch():
|
|
|
752
766
|
inner = cirq.Circuit(cirq.measure(q, key='a'), cirq.X(q).with_classical_controls('b'))
|
|
753
767
|
middle = cirq.Circuit(
|
|
754
768
|
cirq.measure(q, key=cirq.MeasurementKey('b', ('0',))),
|
|
755
|
-
cirq.CircuitOperation(inner.freeze(), repetitions=2),
|
|
769
|
+
cirq.CircuitOperation(inner.freeze(), repetitions=2, use_repetition_ids=True),
|
|
770
|
+
)
|
|
771
|
+
outer_subcircuit = cirq.CircuitOperation(
|
|
772
|
+
middle.freeze(), repetitions=2, use_repetition_ids=True
|
|
756
773
|
)
|
|
757
|
-
outer_subcircuit = cirq.CircuitOperation(middle.freeze(), repetitions=2)
|
|
758
774
|
circuit = outer_subcircuit.mapped_circuit(deep=True)
|
|
759
775
|
internal_control_keys = [
|
|
760
776
|
str(condition) for op in circuit.all_operations() for condition in cirq.control_keys(op)
|
|
@@ -762,19 +778,21 @@ def test_scope_extern_mismatch():
|
|
|
762
778
|
assert internal_control_keys == ['b', 'b', 'b', 'b']
|
|
763
779
|
assert cirq.control_keys(outer_subcircuit) == {cirq.MeasurementKey('b')}
|
|
764
780
|
assert cirq.control_keys(circuit) == {cirq.MeasurementKey('b')}
|
|
781
|
+
# pylint: disable=line-too-long
|
|
765
782
|
cirq.testing.assert_has_diagram(
|
|
766
783
|
cirq.Circuit(outer_subcircuit),
|
|
767
784
|
"""
|
|
768
|
-
[ [ 0: ───M('a')───X─── ]
|
|
769
|
-
[ 0: ───M('0:b')───[ ║ ]
|
|
770
|
-
0: ───[ [ b: ════════════^═══ ](loops=2) ]
|
|
771
|
-
[ ║
|
|
772
|
-
[ b:
|
|
785
|
+
[ [ 0: ───M('a')───X─── ] ]
|
|
786
|
+
[ 0: ───M('0:b')───[ ║ ]───────────────────────────────────── ]
|
|
787
|
+
0: ───[ [ b: ════════════^═══ ](loops=2, use_repetition_ids=True) ]─────────────────────────────────────
|
|
788
|
+
[ ║ ]
|
|
789
|
+
[ b: ══════════════╩═══════════════════════════════════════════════════════════ ](loops=2, use_repetition_ids=True)
|
|
773
790
|
║
|
|
774
|
-
b:
|
|
791
|
+
b: ═══╩═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════
|
|
775
792
|
""",
|
|
776
793
|
use_unicode_characters=True,
|
|
777
794
|
)
|
|
795
|
+
# pylint: enable=line-too-long
|
|
778
796
|
cirq.testing.assert_has_diagram(
|
|
779
797
|
circuit,
|
|
780
798
|
"""
|
|
@@ -934,7 +952,7 @@ def test_sympy_scope():
|
|
|
934
952
|
outer_subcircuit = cirq.CircuitOperation(middle.freeze(), repetitions=2)
|
|
935
953
|
circuit = outer_subcircuit.mapped_circuit(deep=True)
|
|
936
954
|
internal_controls = [str(k) for op in circuit.all_operations() for k in cirq.control_keys(op)]
|
|
937
|
-
assert set(internal_controls) == {'
|
|
955
|
+
assert set(internal_controls) == {'a', 'b', 'c', 'd'}
|
|
938
956
|
assert cirq.control_keys(outer_subcircuit) == {'c', 'd'}
|
|
939
957
|
assert cirq.control_keys(circuit) == {'c', 'd'}
|
|
940
958
|
assert circuit == cirq.Circuit(cirq.decompose(outer_subcircuit))
|
|
@@ -968,23 +986,15 @@ d: ═══╩═════════════════════
|
|
|
968
986
|
cirq.testing.assert_has_diagram(
|
|
969
987
|
circuit,
|
|
970
988
|
"""
|
|
971
|
-
0:
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
║ ║ ║ ║ ║ ║
|
|
981
|
-
1:1:a: ════════════════════════╬════════════════════════════════════════╬════════════════════════════════════╬════════════════════╬════════════════════════════════════@═══^════════════════════════════════════
|
|
982
|
-
║ ║ ║ ║ ║
|
|
983
|
-
1:b: ══════════════════════════╬════════════════════════════════════════╬════════════════════════════════════@════════════════════^════════════════════════════════════════^════════════════════════════════════
|
|
984
|
-
║ ║ ║ ║
|
|
985
|
-
c: ════════════════════════════^════════════════════════════════════════^═════════════════════════════════════════════════════════^════════════════════════════════════════^════════════════════════════════════
|
|
986
|
-
║ ║ ║ ║
|
|
987
|
-
d: ════════════════════════════^════════════════════════════════════════^═════════════════════════════════════════════════════════^════════════════════════════════════════^════════════════════════════════════
|
|
989
|
+
0: ───M───M('0:c')───M───X(conditions=[c | d, a & b])───M───X(conditions=[c | d, a & b])───M───M('0:c')───M───X(conditions=[c | d, a & b])───M───X(conditions=[c | d, a & b])───
|
|
990
|
+
║ ║ ║ ║ ║ ║ ║ ║ ║ ║
|
|
991
|
+
a: ═══╬══════════════@═══^══════════════════════════════@═══^══════════════════════════════╬══════════════@═══^══════════════════════════════@═══^══════════════════════════════
|
|
992
|
+
║ ║ ║ ║ ║ ║
|
|
993
|
+
b: ═══@══════════════════^══════════════════════════════════^══════════════════════════════@══════════════════^══════════════════════════════════^══════════════════════════════
|
|
994
|
+
║ ║ ║ ║
|
|
995
|
+
c: ══════════════════════^══════════════════════════════════^═════════════════════════════════════════════════^══════════════════════════════════^══════════════════════════════
|
|
996
|
+
║ ║ ║ ║
|
|
997
|
+
d: ══════════════════════^══════════════════════════════════^═════════════════════════════════════════════════^══════════════════════════════════^══════════════════════════════
|
|
988
998
|
""",
|
|
989
999
|
use_unicode_characters=True,
|
|
990
1000
|
)
|
|
@@ -133,7 +133,8 @@
|
|
|
133
133
|
"parent_path": [],
|
|
134
134
|
"repetition_ids": [
|
|
135
135
|
"0"
|
|
136
|
-
]
|
|
136
|
+
],
|
|
137
|
+
"use_repetition_ids": true
|
|
137
138
|
},
|
|
138
139
|
{
|
|
139
140
|
"cirq_type": "CircuitOperation",
|
|
@@ -187,7 +188,8 @@
|
|
|
187
188
|
"repetition_ids": [
|
|
188
189
|
"a",
|
|
189
190
|
"b"
|
|
190
|
-
]
|
|
191
|
+
],
|
|
192
|
+
"use_repetition_ids": true
|
|
191
193
|
},
|
|
192
194
|
{
|
|
193
195
|
"cirq_type": "CircuitOperation",
|
|
@@ -217,7 +219,8 @@
|
|
|
217
219
|
"repetition_ids": [
|
|
218
220
|
"a",
|
|
219
221
|
"b"
|
|
220
|
-
]
|
|
222
|
+
],
|
|
223
|
+
"use_repetition_ids": true
|
|
221
224
|
},
|
|
222
225
|
{
|
|
223
226
|
"cirq_type": "CircuitOperation",
|
|
@@ -25,10 +25,12 @@ cirq.CircuitOperation(circuit=cirq.FrozenCircuit([
|
|
|
25
25
|
(cirq.X**sympy.Symbol('theta')).on(cirq.LineQubit(0)),
|
|
26
26
|
),
|
|
27
27
|
]),
|
|
28
|
-
param_resolver={sympy.Symbol('theta'): 1.5}
|
|
28
|
+
param_resolver={sympy.Symbol('theta'): 1.5},
|
|
29
|
+
use_repetition_ids=True),
|
|
29
30
|
cirq.CircuitOperation(circuit=cirq.FrozenCircuit([
|
|
30
31
|
cirq.Moment(
|
|
31
32
|
(cirq.X**sympy.Symbol('theta')).on(cirq.LineQubit(0)),
|
|
32
33
|
),
|
|
33
34
|
]),
|
|
34
|
-
param_resolver={sympy.Symbol('theta'): 1.5}
|
|
35
|
+
param_resolver={sympy.Symbol('theta'): 1.5},
|
|
36
|
+
use_repetition_ids=True)]
|
{cirq_core-1.5.0.dev20250104153038.dist-info → cirq_core-1.5.0.dev20250106184334.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cirq-core
|
|
3
|
-
Version: 1.5.0.
|
|
3
|
+
Version: 1.5.0.dev20250106184334
|
|
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
|
{cirq_core-1.5.0.dev20250104153038.dist-info → cirq_core-1.5.0.dev20250106184334.dist-info}/RECORD
RENAMED
|
@@ -4,8 +4,8 @@ cirq/_compat_test.py,sha256=Qq3ZcfgD-Nb81cEppQdJqhAyrVqXKtfXZYGXT0p-Wh0,34718
|
|
|
4
4
|
cirq/_doc.py,sha256=yDyWUD_2JDS0gShfGRb-rdqRt9-WeL7DhkqX7np0Nko,2879
|
|
5
5
|
cirq/_import.py,sha256=p9gMHJscbtDDkfHOaulvd3Aer0pwUF5AXpL89XR8dNw,8402
|
|
6
6
|
cirq/_import_test.py,sha256=6K_v0riZJXOXUphHNkGA8MY-JcmGlezFaGmvrNhm3OQ,1015
|
|
7
|
-
cirq/_version.py,sha256
|
|
8
|
-
cirq/_version_test.py,sha256=
|
|
7
|
+
cirq/_version.py,sha256=fqbJ5_Noks5OscXa3_fwU6v-q6eX5KRccfZq63BvByM,1206
|
|
8
|
+
cirq/_version_test.py,sha256=GL32Dh3GT09qfbSJYyIqOFT6pA5YCV-oJYSPmeaFh8o,147
|
|
9
9
|
cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
|
|
10
10
|
cirq/json_resolver_cache.py,sha256=03MVo6Y-UYrzt9CKHmwpiBLN2ixL6uSU-OWnKZXfG7k,13302
|
|
11
11
|
cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
|
|
@@ -17,8 +17,8 @@ cirq/circuits/_box_drawing_character_data_test.py,sha256=XO94z0piwZRHaNZHTf-5tKH
|
|
|
17
17
|
cirq/circuits/_bucket_priority_queue.py,sha256=hxFuii2fKD8G6EKT_aVLEsA7FmSfqFXPwIbA0KsoSC4,6745
|
|
18
18
|
cirq/circuits/_bucket_priority_queue_test.py,sha256=t6u_hG7K2e2WKWrgCsKxNRtp4ghKwiCrp0_WSY0W25k,5288
|
|
19
19
|
cirq/circuits/circuit.py,sha256=mSchbaJudEfwqpLj6x0He54d8GhyiE7nqA2RTx8Zw6c,115851
|
|
20
|
-
cirq/circuits/circuit_operation.py,sha256=
|
|
21
|
-
cirq/circuits/circuit_operation_test.py,sha256=
|
|
20
|
+
cirq/circuits/circuit_operation.py,sha256=MaQ6fPt1HctEE31fVaUDtl9MqOmoTyt3m2HYeGCdIaM,35440
|
|
21
|
+
cirq/circuits/circuit_operation_test.py,sha256=7ezTwTY2RaAchjfXOJythVrxs6Rom317gC0AUBe0GVM,45259
|
|
22
22
|
cirq/circuits/circuit_test.py,sha256=1YMXK7wHcct-HK7MKH8lE63pQQ80-jCghVAsG0DsXpU,160524
|
|
23
23
|
cirq/circuits/frozen_circuit.py,sha256=qSbLHqIszCbVipNZQy4N829v_mWf8N2926cYRzpxGqE,9243
|
|
24
24
|
cirq/circuits/frozen_circuit_test.py,sha256=rHyii8hLhOQ6jdA8dC1OcYPGnyeBC4uY5Q53XspkkCk,4133
|
|
@@ -269,7 +269,7 @@ cirq/ops/arithmetic_operation_test.py,sha256=axy8xy9IvDb-ATUV-LE1HNWRqCEz06VyZWV
|
|
|
269
269
|
cirq/ops/boolean_hamiltonian.py,sha256=li003lNq6zS8pNPTobqzfzYJvyvaIpCVo3wkliI6Hzk,14930
|
|
270
270
|
cirq/ops/boolean_hamiltonian_test.py,sha256=1ey5yfYZPKZDsfM3jpCPAOpbPs_y8i4K_WvDK2d5_4Y,8518
|
|
271
271
|
cirq/ops/classically_controlled_operation.py,sha256=qTOsbGRZFbQIaBj9iee31V_V8oMLqWIJjgFomy3kg4A,9104
|
|
272
|
-
cirq/ops/classically_controlled_operation_test.py,sha256=
|
|
272
|
+
cirq/ops/classically_controlled_operation_test.py,sha256=foRpG95H886b9WHxCB7VJpvWA8Vi7LX8L7QPRqvaO-s,47858
|
|
273
273
|
cirq/ops/clifford_gate.py,sha256=qAKS0wqqoHljOF63treyR95I6H0yWFZBiHQoM4sLgSc,39350
|
|
274
274
|
cirq/ops/clifford_gate_test.py,sha256=NF_if1X8LCMA9hy0vBO7lxvVPdumlvMMnI2XRQ-RLpk,37472
|
|
275
275
|
cirq/ops/common_channels.py,sha256=uqgocTUhtuJ4VZI_9_3L34gBRTf1A10mByhZY4Q1fB8,38283
|
|
@@ -485,10 +485,10 @@ cirq/protocols/json_test_data/Circuit.json,sha256=pQNIcjuIYBfXnGkqQnn4xuSLoHysFE
|
|
|
485
485
|
cirq/protocols/json_test_data/Circuit.json_inward,sha256=z62hEHwGtkVXrZNfxHX71_lDQ43wk12qtPO0Q0i5qwc,4574
|
|
486
486
|
cirq/protocols/json_test_data/Circuit.repr,sha256=i5fwYWIi64pmupNvqEEjUn_mHKp_vVGH2ozw65_EOuw,689
|
|
487
487
|
cirq/protocols/json_test_data/Circuit.repr_inward,sha256=i5fwYWIi64pmupNvqEEjUn_mHKp_vVGH2ozw65_EOuw,689
|
|
488
|
-
cirq/protocols/json_test_data/CircuitOperation.json,sha256=
|
|
488
|
+
cirq/protocols/json_test_data/CircuitOperation.json,sha256=7khipsZjJJnQQU53DgMlhG-FYzdLUCmAJcmTubby3jA,7045
|
|
489
489
|
cirq/protocols/json_test_data/CircuitOperation.json_inward,sha256=EP3fiuDhxStcshrJC_Uot1hzYxEmlKk4dW66DMK9ALg,7951
|
|
490
490
|
cirq/protocols/json_test_data/CircuitOperation.repr,sha256=zjkjsVG9m3jedRYhKVJG_gqhwYycaqRRCcOuk1EKWvE,1711
|
|
491
|
-
cirq/protocols/json_test_data/CircuitOperation.repr_inward,sha256=
|
|
491
|
+
cirq/protocols/json_test_data/CircuitOperation.repr_inward,sha256=1Ml4liM9PWg_hJ2Dr-y93XTDNklNty1RvEUwewmTdEg,1133
|
|
492
492
|
cirq/protocols/json_test_data/ClassicalDataDictionaryStore.json,sha256=G09lSA5vshMhiXz_jgFw0STHjc08pJ0UczVCz8SGYLE,1185
|
|
493
493
|
cirq/protocols/json_test_data/ClassicalDataDictionaryStore.repr,sha256=bOLOBw-nLRvdkd7oYcLzkh5r-cBZAxwo7H6xdDgtOHw,404
|
|
494
494
|
cirq/protocols/json_test_data/ClassicallyControlledOperation.json,sha256=7t_Yyjhk8Ig-XyfOboE92K149csQbwvLoEwIsuDVHDw,669
|
|
@@ -1189,8 +1189,8 @@ cirq/work/sampler.py,sha256=bE5tmVkcR6cZZMLETxDfHehdsYUMbx2RvBeIBetehI4,19187
|
|
|
1189
1189
|
cirq/work/sampler_test.py,sha256=hL2UWx3dz2ukZVNxWftiKVvJcQoLplLZdQm-k1QcA40,13282
|
|
1190
1190
|
cirq/work/zeros_sampler.py,sha256=x1C7cup66a43n-3tm8QjhiqJa07qcJW10FxNp9jJ59Q,2356
|
|
1191
1191
|
cirq/work/zeros_sampler_test.py,sha256=JIkpBBFPJe5Ba4142vzogyWyboG1Q1ZAm0UVGgOoZn8,3279
|
|
1192
|
-
cirq_core-1.5.0.
|
|
1193
|
-
cirq_core-1.5.0.
|
|
1194
|
-
cirq_core-1.5.0.
|
|
1195
|
-
cirq_core-1.5.0.
|
|
1196
|
-
cirq_core-1.5.0.
|
|
1192
|
+
cirq_core-1.5.0.dev20250106184334.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1193
|
+
cirq_core-1.5.0.dev20250106184334.dist-info/METADATA,sha256=YWmB84EPm_bGfm4wljizeQz1fylIkMQQP2lD_ygoY1I,1992
|
|
1194
|
+
cirq_core-1.5.0.dev20250106184334.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
1195
|
+
cirq_core-1.5.0.dev20250106184334.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1196
|
+
cirq_core-1.5.0.dev20250106184334.dist-info/RECORD,,
|
{cirq_core-1.5.0.dev20250104153038.dist-info → cirq_core-1.5.0.dev20250106184334.dist-info}/LICENSE
RENAMED
|
File without changes
|
{cirq_core-1.5.0.dev20250104153038.dist-info → cirq_core-1.5.0.dev20250106184334.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|