cirq-core 1.5.0.dev20250324231907__py3-none-any.whl → 1.5.0.dev20250325011740__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.

@@ -11,11 +11,11 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
-
14
+ import itertools
15
15
  import pytest
16
16
 
17
- import cirq
18
17
  import numpy as np
18
+ import cirq
19
19
 
20
20
  from cirq.experiments.single_qubit_readout_calibration_test import NoisySingleQubitReadoutSampler
21
21
  from cirq.experiments import random_quantum_circuit_generation as rqcg
@@ -23,26 +23,34 @@ from cirq.experiments import SingleQubitReadoutCalibrationResult
23
23
  from cirq.study import ResultDict
24
24
 
25
25
 
26
+ def _create_test_circuits(qubits: list[cirq.Qid], n_circuits: int) -> list[cirq.Circuit]:
27
+ """Helper function to generate circuits for testing."""
28
+ if len(qubits) < 2:
29
+ raise ValueError(
30
+ "Need at least two qubits to generate two-qubit circuits."
31
+ ) # pragma: no cover
32
+ two_qubit_gates = [cirq.ISWAP**0.5, cirq.CNOT**0.5]
33
+ input_circuits = []
34
+ qubit_pairs = list(itertools.combinations(qubits, 2))
35
+ num_pairs = len(qubit_pairs)
36
+ for i in range(n_circuits):
37
+ gate = two_qubit_gates[i % len(two_qubit_gates)]
38
+ q0, q1 = qubit_pairs[i % num_pairs]
39
+ circuits = rqcg.generate_library_of_2q_circuits(
40
+ n_library_circuits=5, two_qubit_gate=gate, q0=q0, q1=q1
41
+ )
42
+ for circuit in circuits:
43
+ circuit.append(cirq.measure(*qubits, key="m"))
44
+ input_circuits.extend(circuits)
45
+ return input_circuits
46
+
47
+
26
48
  def test_shuffled_circuits_with_readout_benchmarking_errors_no_noise():
27
49
  """Test shuffled circuits with readout benchmarking with no noise from sampler."""
28
50
  qubits = cirq.LineQubit.range(5)
29
51
 
30
52
  # Generate random input circuits
31
- input_circuits = []
32
- input_circuits += rqcg.generate_library_of_2q_circuits(
33
- n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[0], q1=qubits[2]
34
- )
35
- input_circuits += rqcg.generate_library_of_2q_circuits(
36
- n_library_circuits=5, two_qubit_gate=cirq.CNOT**0.5, q0=qubits[1], q1=qubits[3]
37
- )
38
- input_circuits += rqcg.generate_library_of_2q_circuits(
39
- n_library_circuits=5, two_qubit_gate=cirq.CNOT**0.5, q0=qubits[0], q1=qubits[4]
40
- )
41
- input_circuits += rqcg.generate_library_of_2q_circuits(
42
- n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[2], q1=qubits[4]
43
- )
44
- for circuit in input_circuits:
45
- circuit.append(cirq.measure(*qubits, key="m"))
53
+ input_circuits = _create_test_circuits(qubits, 3)
46
54
 
47
55
  sampler = cirq.Simulator()
48
56
  circuit_repetitions = 1
@@ -64,12 +72,15 @@ def test_shuffled_circuits_with_readout_benchmarking_errors_no_noise():
64
72
  for measurement in measurements:
65
73
  assert isinstance(measurement, ResultDict)
66
74
 
67
- assert isinstance(readout_calibration_results, SingleQubitReadoutCalibrationResult)
75
+ for qlist, readout_calibration_result in readout_calibration_results.items():
76
+ assert isinstance(qlist, tuple)
77
+ assert all(isinstance(q, cirq.Qid) for q in qlist)
78
+ assert isinstance(readout_calibration_result, SingleQubitReadoutCalibrationResult)
68
79
 
69
- assert readout_calibration_results.zero_state_errors == {q: 0 for q in qubits}
70
- assert readout_calibration_results.one_state_errors == {q: 0 for q in qubits}
71
- assert readout_calibration_results.repetitions == readout_repetitions
72
- assert isinstance(readout_calibration_results.timestamp, float)
80
+ assert readout_calibration_result.zero_state_errors == {q: 0 for q in qubits}
81
+ assert readout_calibration_result.one_state_errors == {q: 0 for q in qubits}
82
+ assert readout_calibration_result.repetitions == readout_repetitions
83
+ assert isinstance(readout_calibration_result.timestamp, float)
73
84
 
74
85
 
75
86
  def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise():
@@ -77,24 +88,7 @@ def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise():
77
88
  qubits = cirq.LineQubit.range(6)
78
89
 
79
90
  # Generate random input circuits
80
- input_circuits = []
81
- input_circuits += rqcg.generate_library_of_2q_circuits(
82
- n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[0], q1=qubits[1]
83
- )
84
- input_circuits += rqcg.generate_library_of_2q_circuits(
85
- n_library_circuits=5, two_qubit_gate=cirq.CNOT**0.5, q0=qubits[1], q1=qubits[3]
86
- )
87
- input_circuits += rqcg.generate_library_of_2q_circuits(
88
- n_library_circuits=5, two_qubit_gate=cirq.CNOT**0.5, q0=qubits[0], q1=qubits[4]
89
- )
90
- input_circuits += rqcg.generate_library_of_2q_circuits(
91
- n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[2], q1=qubits[4]
92
- )
93
- input_circuits += rqcg.generate_library_of_2q_circuits(
94
- n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[2], q1=qubits[5]
95
- )
96
- for circuit in input_circuits:
97
- circuit.append(cirq.measure(*qubits, key="m"))
91
+ input_circuits = _create_test_circuits(qubits, 6)
98
92
 
99
93
  sampler = NoisySingleQubitReadoutSampler(p0=0.1, p1=0.2, seed=1234)
100
94
  circuit_repetitions = 1
@@ -115,14 +109,17 @@ def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise():
115
109
  for measurement in measurements:
116
110
  assert isinstance(measurement, ResultDict)
117
111
 
118
- assert isinstance(readout_calibration_results, SingleQubitReadoutCalibrationResult)
112
+ for qlist, readout_calibration_result in readout_calibration_results.items():
113
+ assert isinstance(qlist, tuple)
114
+ assert all(isinstance(q, cirq.Qid) for q in qlist)
115
+ assert isinstance(readout_calibration_result, SingleQubitReadoutCalibrationResult)
119
116
 
120
- for error in readout_calibration_results.zero_state_errors.values():
121
- assert 0.08 < error < 0.12
122
- for error in readout_calibration_results.one_state_errors.values():
123
- assert 0.18 < error < 0.22
124
- assert readout_calibration_results.repetitions == readout_repetitions
125
- assert isinstance(readout_calibration_results.timestamp, float)
117
+ for error in readout_calibration_result.zero_state_errors.values():
118
+ assert 0.08 < error < 0.12
119
+ for error in readout_calibration_result.one_state_errors.values():
120
+ assert 0.18 < error < 0.22
121
+ assert readout_calibration_result.repetitions == readout_repetitions
122
+ assert isinstance(readout_calibration_result.timestamp, float)
126
123
 
127
124
 
128
125
  def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise_and_input_qubits():
@@ -131,24 +128,50 @@ def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise_and_input
131
128
  readout_qubits = qubits[:4]
132
129
 
133
130
  # Generate random input circuits
134
- input_circuits = []
135
- input_circuits += rqcg.generate_library_of_2q_circuits(
136
- n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[0], q1=qubits[1]
137
- )
138
- input_circuits += rqcg.generate_library_of_2q_circuits(
139
- n_library_circuits=5, two_qubit_gate=cirq.CNOT**0.5, q0=qubits[1], q1=qubits[3]
140
- )
141
- input_circuits += rqcg.generate_library_of_2q_circuits(
142
- n_library_circuits=5, two_qubit_gate=cirq.CNOT**0.5, q0=qubits[0], q1=qubits[4]
143
- )
144
- input_circuits += rqcg.generate_library_of_2q_circuits(
145
- n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[2], q1=qubits[4]
146
- )
147
- input_circuits += rqcg.generate_library_of_2q_circuits(
148
- n_library_circuits=5, two_qubit_gate=cirq.ISWAP**0.5, q0=qubits[2], q1=qubits[5]
131
+ input_circuits = _create_test_circuits(qubits, 6)
132
+
133
+ sampler = NoisySingleQubitReadoutSampler(p0=0.1, p1=0.3, seed=1234)
134
+ circuit_repetitions = 1
135
+ rng = np.random.default_rng()
136
+ readout_repetitions = 1000
137
+
138
+ measurements, readout_calibration_results = (
139
+ cirq.contrib.shuffle_circuits.run_shuffled_with_readout_benchmarking(
140
+ input_circuits,
141
+ sampler,
142
+ circuit_repetitions,
143
+ rng,
144
+ num_random_bitstrings=100,
145
+ readout_repetitions=readout_repetitions,
146
+ qubits=readout_qubits,
147
+ )
149
148
  )
150
- for circuit in input_circuits:
151
- circuit.append(cirq.measure(*qubits, key="m"))
149
+
150
+ for measurement in measurements:
151
+ assert isinstance(measurement, ResultDict)
152
+
153
+ for qlist, readout_calibration_result in readout_calibration_results.items():
154
+ assert isinstance(qlist, tuple)
155
+ assert all(isinstance(q, cirq.Qid) for q in qlist)
156
+ assert isinstance(readout_calibration_result, SingleQubitReadoutCalibrationResult)
157
+
158
+ for error in readout_calibration_result.zero_state_errors.values():
159
+ assert 0.08 < error < 0.12
160
+ for error in readout_calibration_result.one_state_errors.values():
161
+ assert 0.28 < error < 0.32
162
+ assert readout_calibration_result.repetitions == readout_repetitions
163
+ assert isinstance(readout_calibration_result.timestamp, float)
164
+
165
+
166
+ def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise_and_lists_input_qubits():
167
+ """Test shuffled circuits with readout benchmarking with noise from sampler and input qubits."""
168
+ qubits_1 = cirq.LineQubit.range(3)
169
+ qubits_2 = cirq.LineQubit.range(4)
170
+
171
+ readout_qubits = [qubits_1, qubits_2]
172
+
173
+ # Generate random input circuits and append measurements
174
+ input_circuits = _create_test_circuits(qubits_1, 6) + _create_test_circuits(qubits_2, 4)
152
175
 
153
176
  sampler = NoisySingleQubitReadoutSampler(p0=0.1, p1=0.3, seed=1234)
154
177
  circuit_repetitions = 1
@@ -170,14 +193,50 @@ def test_shuffled_circuits_with_readout_benchmarking_errors_with_noise_and_input
170
193
  for measurement in measurements:
171
194
  assert isinstance(measurement, ResultDict)
172
195
 
173
- assert isinstance(readout_calibration_results, SingleQubitReadoutCalibrationResult)
196
+ for qlist, readout_calibration_result in readout_calibration_results.items():
197
+ assert isinstance(qlist, tuple)
198
+ assert all(isinstance(q, cirq.Qid) for q in qlist)
199
+ assert isinstance(readout_calibration_result, SingleQubitReadoutCalibrationResult)
200
+
201
+ for error in readout_calibration_result.zero_state_errors.values():
202
+ assert 0.08 < error < 0.12
203
+ for error in readout_calibration_result.one_state_errors.values():
204
+ assert 0.28 < error < 0.32
205
+ assert readout_calibration_result.repetitions == readout_repetitions
206
+ assert isinstance(readout_calibration_result.timestamp, float)
207
+
208
+
209
+ def test_can_handle_zero_random_bitstring():
210
+ """Test shuffled circuits without readout benchmarking."""
211
+ qubits_1 = cirq.LineQubit.range(3)
212
+ qubits_2 = cirq.LineQubit.range(4)
174
213
 
175
- for error in readout_calibration_results.zero_state_errors.values():
176
- assert 0.08 < error < 0.12
177
- for error in readout_calibration_results.one_state_errors.values():
178
- assert 0.28 < error < 0.32
179
- assert readout_calibration_results.repetitions == readout_repetitions
180
- assert isinstance(readout_calibration_results.timestamp, float)
214
+ readout_qubits = [qubits_1, qubits_2]
215
+
216
+ # Generate random input circuits and append measurements
217
+ input_circuits = _create_test_circuits(qubits_1, 6) + _create_test_circuits(qubits_2, 4)
218
+
219
+ sampler = NoisySingleQubitReadoutSampler(p0=0.1, p1=0.3, seed=1234)
220
+ circuit_repetitions = 1
221
+ rng = np.random.default_rng()
222
+ readout_repetitions = 1000
223
+
224
+ measurements, readout_calibration_results = (
225
+ cirq.contrib.shuffle_circuits.run_shuffled_with_readout_benchmarking(
226
+ input_circuits,
227
+ sampler,
228
+ circuit_repetitions,
229
+ rng,
230
+ num_random_bitstrings=0,
231
+ readout_repetitions=readout_repetitions,
232
+ qubits=readout_qubits,
233
+ )
234
+ )
235
+
236
+ for measurement in measurements:
237
+ assert isinstance(measurement, ResultDict)
238
+ # Check that the readout_calibration_results is empty
239
+ assert len(readout_calibration_results.items()) == 0
181
240
 
182
241
 
183
242
  def test_empty_input_circuits():
@@ -256,16 +315,16 @@ def test_mismatch_circuit_repetitions():
256
315
 
257
316
 
258
317
  def test_zero_num_random_bitstrings():
259
- """Test that the number of random bitstrings is zero."""
318
+ """Test that the number of random bitstrings is smaller than zero."""
260
319
  q = cirq.LineQubit(0)
261
320
  circuit = cirq.Circuit(cirq.H(q), cirq.measure(q))
262
- with pytest.raises(ValueError, match="Must provide non-zero num_random_bitstrings."):
321
+ with pytest.raises(ValueError, match="Must provide zero or more num_random_bitstrings."):
263
322
  cirq.contrib.shuffle_circuits.run_shuffled_with_readout_benchmarking(
264
323
  [circuit],
265
324
  cirq.ZerosSampler(),
266
325
  circuit_repetitions=10,
267
326
  rng_or_seed=np.random.default_rng(456),
268
- num_random_bitstrings=0,
327
+ num_random_bitstrings=-1,
269
328
  readout_repetitions=100,
270
329
  )
271
330
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cirq-core
3
- Version: 1.5.0.dev20250324231907
3
+ Version: 1.5.0.dev20250325011740
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=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=bXNm9wjRS2yb59ChuevzXgXEMJfZ495Vr0XGpe7pXyA,1206
8
- cirq/_version_test.py,sha256=Uyl5_9YIV7Gbj5Q40b3AiRwCbRVzsPO9dGLL4XWBfj8,147
7
+ cirq/_version.py,sha256=d-6sJd05uGoRTtsLD5RUAfMZ_Loij6nd7W38mRx6_jM,1206
8
+ cirq/_version_test.py,sha256=eUtDoSz2ow6ApcO_ln5Iy6ysSFcqsRy-LDjKQb01-Vk,147
9
9
  cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
10
10
  cirq/json_resolver_cache.py,sha256=p-vEOa-8GQ2cFIAdze-kd6C1un1uRvtujVPljVKaHBg,13557
11
11
  cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
@@ -87,7 +87,7 @@ cirq/contrib/hacks/disable_validation_test.py,sha256=nuDfktj3bD7oFlae3R0Jf_qcAo8
87
87
  cirq/contrib/noise_models/__init__.py,sha256=O3wvaQ6kyNZzwsCnMMZvr2EyS76LpO9xnVZ69a2obv0,957
88
88
  cirq/contrib/noise_models/noise_models.py,sha256=qFisVwg94-YqGoru5z5bqy_9_PHBI124rI4Gy34ogHI,7658
89
89
  cirq/contrib/noise_models/noise_models_test.py,sha256=nELHWYWbRp6RCurjTSEAumpZPMY2gNN3S4Mhho3pwJ0,10488
90
- cirq/contrib/paulistring/__init__.py,sha256=5KmN-WfpVgQoHJEznRZA-gBXOP5i7hn42juzUEcWlto,1618
90
+ cirq/contrib/paulistring/__init__.py,sha256=1k2_MYLTMPn8AFoJvSgpN-F-6xgmDjKXRhb-FdDsFoQ,1761
91
91
  cirq/contrib/paulistring/clifford_optimize.py,sha256=q2lTMivOGoxncxnQ8CxnwlV9kSsHzETsTWG705FG9qw,7849
92
92
  cirq/contrib/paulistring/clifford_optimize_test.py,sha256=IttwXaYRftUb84Sz3fEJFDl9fZ8NwzcbNsuFAJeLR_8,3890
93
93
  cirq/contrib/paulistring/clifford_target_gateset.py,sha256=r2Nkq3gbENGyeRrRHtjdx5_uoSR0UfXojlTLhNNGTL8,6353
@@ -96,6 +96,8 @@ cirq/contrib/paulistring/optimize.py,sha256=qhBOGxLYovUua_xVqXWgVDPRRmv4VOmyFgKV
96
96
  cirq/contrib/paulistring/optimize_test.py,sha256=jie0UomSCIj90TMv3MIi4hd32iTjttQ8-zr7ZDs0tug,3560
97
97
  cirq/contrib/paulistring/pauli_string_dag.py,sha256=vg0994h84zHIejSdwfqR-mdwmHOWWOAOOcGuStfKPdk,1106
98
98
  cirq/contrib/paulistring/pauli_string_dag_test.py,sha256=rlwbuh0DvFv1GlJIqEG1OI_geY77dzxo4bb7qqDkz8M,1125
99
+ cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation.py,sha256=ULhFIH8LBbDNHpPd0ulXTCm-hGqpbZBxrQLolSKfBg4,15675
100
+ cirq/contrib/paulistring/pauli_string_measurement_with_readout_mitigation_test.py,sha256=srkjiczY5WLfwzltmc0cn0J6atZyJ8qWL-oiUZuGPDI,21717
99
101
  cirq/contrib/paulistring/pauli_string_optimize.py,sha256=81MDk6rKl0jmw7DXFkA02YmluiXLLznuuCTvca7mVoY,2815
100
102
  cirq/contrib/paulistring/pauli_string_optimize_test.py,sha256=f1BWjg8IGw5ChXFYNVhYKNIrFul8PgvpnOEadkRm-3Q,2897
101
103
  cirq/contrib/paulistring/recombine.py,sha256=SU6DNj3Y9Wicf9pMP3IYzdWV7Fuz1DA_1v2AtUVnuF4,4355
@@ -147,8 +149,8 @@ cirq/contrib/routing/swap_network_test.py,sha256=XxbjIvOowvtOVwT2RN4e7YWlLebLm98
147
149
  cirq/contrib/routing/utils.py,sha256=P0_PnaGfy4Rm6CVl9FE7RpdZ0YzGtimcW1acduvp5rU,3761
148
150
  cirq/contrib/routing/utils_test.py,sha256=1oGEDAd70uQ2OrBwbaQd1DYoPcMSZsBQ2l5VLJBtXBM,2021
149
151
  cirq/contrib/shuffle_circuits/__init__.py,sha256=AL-V3OaZiaF596WTLlyxDPk0t1WMpTHpQrpRW_A9t48,832
150
- cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking.py,sha256=ly4O2xhukp8xkBbk-a0ukSykd1G1yR-L91XNxdePBWU,9660
151
- cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking_test.py,sha256=3SQO5bjrfs1ZRbDNTa_D90f8gx_HL6WCZs1d0IPdEMQ,11790
152
+ cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking.py,sha256=eQmB7hoWaPqqUV3xgcUKIPTtGpv0ze_dM01ygQt33XU,10844
153
+ cirq/contrib/shuffle_circuits/shuffle_circuits_with_readout_benchmarking_test.py,sha256=L2Mx3LV_chDxg_v4NDnIF7ciHYqvKt04ulgwu0J4vMM,13862
152
154
  cirq/contrib/svg/__init__.py,sha256=m7d-CNT2j74uNQdmM2xJ1a7HG6v0FZMt8eAwW4rPJpI,148
153
155
  cirq/contrib/svg/svg.py,sha256=d4_XgDNb8o1lDINVJA44XXunGmK71qTAlqw2sc_UnAo,9366
154
156
  cirq/contrib/svg/svg_test.py,sha256=gBHXeosNRHzrKWVo-JwhZLguHbksKQSiFwZ8fUXp-a8,2379
@@ -1204,8 +1206,8 @@ cirq/work/sampler.py,sha256=bE5tmVkcR6cZZMLETxDfHehdsYUMbx2RvBeIBetehI4,19187
1204
1206
  cirq/work/sampler_test.py,sha256=hL2UWx3dz2ukZVNxWftiKVvJcQoLplLZdQm-k1QcA40,13282
1205
1207
  cirq/work/zeros_sampler.py,sha256=x1C7cup66a43n-3tm8QjhiqJa07qcJW10FxNp9jJ59Q,2356
1206
1208
  cirq/work/zeros_sampler_test.py,sha256=JIkpBBFPJe5Ba4142vzogyWyboG1Q1ZAm0UVGgOoZn8,3279
1207
- cirq_core-1.5.0.dev20250324231907.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1208
- cirq_core-1.5.0.dev20250324231907.dist-info/METADATA,sha256=4ul72ja6IXP4tgU4GvJCa5ZNQYD7lG8zztvDAeuL5LU,4817
1209
- cirq_core-1.5.0.dev20250324231907.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1210
- cirq_core-1.5.0.dev20250324231907.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1211
- cirq_core-1.5.0.dev20250324231907.dist-info/RECORD,,
1209
+ cirq_core-1.5.0.dev20250325011740.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1210
+ cirq_core-1.5.0.dev20250325011740.dist-info/METADATA,sha256=7i9e7_hzorhn4V5_bHicUgFm5Y4ysVIm5S6lRkWNl84,4817
1211
+ cirq_core-1.5.0.dev20250325011740.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1212
+ cirq_core-1.5.0.dev20250325011740.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1213
+ cirq_core-1.5.0.dev20250325011740.dist-info/RECORD,,