cirq-core 1.7.0.dev20250814213759__py3-none-any.whl → 1.7.0.dev20250814214609__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
@@ -28,4 +28,4 @@ if sys.version_info < (3, 11, 0): # pragma: no cover
28
28
  'of Cirq (e.g. "python -m pip install cirq==1.5.0")'
29
29
  )
30
30
 
31
- __version__ = "1.7.0.dev20250814213759"
31
+ __version__ = "1.7.0.dev20250814214609"
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.7.0.dev20250814213759"
6
+ assert cirq.__version__ == "1.7.0.dev20250814214609"
@@ -125,15 +125,10 @@ class ClassicallyControlledOperation(raw_types.Operation):
125
125
  *self._conditions
126
126
  )
127
127
 
128
- def _decompose_(self):
129
- return self._decompose_with_context_()
130
-
131
- def _decompose_with_context_(self, context: cirq.DecompositionContext | None = None):
132
- result = protocols.decompose_once(
133
- self._sub_operation, NotImplemented, flatten=False, context=context
134
- )
135
- if result is NotImplemented:
136
- return NotImplemented
128
+ def _decompose_with_context_(self, *, context: cirq.DecompositionContext):
129
+ result = protocols.decompose_once(self._sub_operation, None, flatten=False, context=context)
130
+ if result is None:
131
+ return None
137
132
 
138
133
  return op_tree.transform_op_tree(
139
134
  result, lambda op: ClassicallyControlledOperation(op, self._conditions)
@@ -26,7 +26,6 @@ from cirq.ops import (
26
26
  controlled_gate,
27
27
  eigen_gate,
28
28
  gate_operation,
29
- matrix_gates,
30
29
  op_tree,
31
30
  raw_types,
32
31
  )
@@ -134,26 +133,16 @@ class ControlledOperation(raw_types.Operation):
134
133
  new_qubits[:n], self.sub_operation.with_qubits(*new_qubits[n:]), self.control_values
135
134
  )
136
135
 
137
- def _decompose_(self):
138
- return self._decompose_with_context_()
139
-
140
- def _decompose_with_context_(self, context: cirq.DecompositionContext | None = None):
136
+ def _decompose_with_context_(self, *, context: cirq.DecompositionContext):
141
137
  result = protocols.decompose_once_with_qubits(
142
- self.gate, self.qubits, NotImplemented, flatten=False, context=context
138
+ self.gate, self.qubits, None, flatten=False, context=context
143
139
  )
144
- if result is not NotImplemented:
140
+ if result is not None:
145
141
  return result
146
142
 
147
- if isinstance(self.sub_operation.gate, matrix_gates.MatrixGate):
148
- # Default decompositions of 2/3 qubit `cirq.MatrixGate` ignores global phase, which is
149
- # local phase in the controlled variant and hence cannot be ignored.
150
- return NotImplemented
151
-
152
- result = protocols.decompose_once(
153
- self.sub_operation, NotImplemented, flatten=False, context=context
154
- )
155
- if result is NotImplemented:
156
- return NotImplemented
143
+ result = protocols.decompose_once(self.sub_operation, None, flatten=False, context=context)
144
+ if result is None:
145
+ return None
157
146
 
158
147
  return op_tree.transform_op_tree(
159
148
  result, lambda op: op.controlled_by(*self.controls, control_values=self.control_values)
@@ -148,14 +148,9 @@ class GateOperation(raw_types.Operation):
148
148
  def _num_qubits_(self):
149
149
  return len(self._qubits)
150
150
 
151
- def _decompose_(self) -> cirq.OP_TREE:
152
- return self._decompose_with_context_()
153
-
154
- def _decompose_with_context_(
155
- self, context: cirq.DecompositionContext | None = None
156
- ) -> cirq.OP_TREE:
151
+ def _decompose_with_context_(self, *, context: cirq.DecompositionContext) -> cirq.OP_TREE:
157
152
  return protocols.decompose_once_with_qubits(
158
- self.gate, self.qubits, NotImplemented, flatten=False, context=context
153
+ self.gate, self.qubits, None, flatten=False, context=context
159
154
  )
160
155
 
161
156
  def _pauli_expansion_(self) -> value.LinearDict[str]:
cirq/ops/raw_types.py CHANGED
@@ -828,12 +828,7 @@ class TaggedOperation(Operation):
828
828
  def _json_dict_(self) -> dict[str, Any]:
829
829
  return protocols.obj_to_dict_helper(self, ['sub_operation', 'tags'])
830
830
 
831
- def _decompose_(self) -> cirq.OP_TREE:
832
- return self._decompose_with_context_()
833
-
834
- def _decompose_with_context_(
835
- self, context: cirq.DecompositionContext | None = None
836
- ) -> cirq.OP_TREE:
831
+ def _decompose_with_context_(self, *, context: cirq.DecompositionContext) -> cirq.OP_TREE:
837
832
  return protocols.decompose_once(
838
833
  self.sub_operation, default=None, flatten=False, context=context
839
834
  )
@@ -983,11 +978,8 @@ class _InverseCompositeGate(Gate):
983
978
  return self._original
984
979
  return NotImplemented
985
980
 
986
- def _decompose_(self, qubits):
987
- return self._decompose_with_context_(qubits)
988
-
989
981
  def _decompose_with_context_(
990
- self, qubits: Sequence[cirq.Qid], context: cirq.DecompositionContext | None = None
982
+ self, qubits: Sequence[cirq.Qid], *, context: cirq.DecompositionContext
991
983
  ) -> cirq.OP_TREE:
992
984
  return protocols.inverse(
993
985
  protocols.decompose_once_with_qubits(self._original, qubits, context=context)
@@ -210,10 +210,10 @@ def test_default_validation_and_inverse() -> None:
210
210
  assert i**-1 == t
211
211
  assert t**-1 == i
212
212
  assert cirq.decompose(i) == [cirq.X(a), cirq.S(b) ** -1, cirq.Z(a)]
213
- assert [*i._decompose_()] == [cirq.X(a), cirq.S(b) ** -1, cirq.Z(a)] # type: ignore[misc]
213
+ assert cirq.decompose_once(i) == [cirq.X(a), cirq.S(b) ** -1, cirq.Z(a)]
214
214
  gate = i.gate
215
215
  assert gate is not None
216
- assert [*gate._decompose_([a, b])] == [cirq.X(a), cirq.S(b) ** -1, cirq.Z(a)] # type: ignore
216
+ assert cirq.decompose_once_with_qubits(gate, [a, b]) == [cirq.X(a), cirq.S(b) ** -1, cirq.Z(a)]
217
217
  cirq.testing.assert_allclose_up_to_global_phase(
218
218
  cirq.unitary(i), cirq.unitary(t).conj().T, atol=1e-8
219
219
  )
@@ -653,7 +653,7 @@ def test_tagged_operation_forwards_protocols() -> None:
653
653
  np.testing.assert_equal(cirq.unitary(tagged_h), cirq.unitary(h))
654
654
  assert cirq.has_unitary(tagged_h)
655
655
  assert cirq.decompose(tagged_h) == cirq.decompose(h)
656
- assert [*tagged_h._decompose_()] == cirq.decompose_once(h)
656
+ assert cirq.decompose_once(tagged_h) == cirq.decompose_once(h)
657
657
  assert cirq.pauli_expansion(tagged_h) == cirq.pauli_expansion(h)
658
658
  assert cirq.equal_up_to_global_phase(h, tagged_h)
659
659
  assert np.isclose(cirq.kraus(h), cirq.kraus(tagged_h)).all()
@@ -31,7 +31,7 @@ from typing import (
31
31
  Union,
32
32
  )
33
33
 
34
- from typing_extensions import Protocol, runtime_checkable
34
+ from typing_extensions import Protocol
35
35
 
36
36
  from cirq import devices, ops
37
37
  from cirq._doc import doc_private
@@ -51,10 +51,9 @@ DecomposeResult = Union[None, NotImplementedType, 'cirq.OP_TREE']
51
51
  _CONTEXT_COUNTER = itertools.count() # Use _reset_context_counter() to reset the counter.
52
52
 
53
53
 
54
- @runtime_checkable
55
54
  class OpDecomposerWithContext(Protocol):
56
55
  def __call__(
57
- self, __op: cirq.Operation, *, context: cirq.DecompositionContext | None = None
56
+ self, __op: cirq.Operation, *, context: cirq.DecompositionContext
58
57
  ) -> DecomposeResult: ...
59
58
 
60
59
 
@@ -132,9 +131,7 @@ class SupportsDecompose(Protocol):
132
131
  def _decompose_(self) -> DecomposeResult:
133
132
  pass
134
133
 
135
- def _decompose_with_context_(
136
- self, *, context: DecompositionContext | None = None
137
- ) -> DecomposeResult:
134
+ def _decompose_with_context_(self, *, context: DecompositionContext) -> DecomposeResult:
138
135
  pass
139
136
 
140
137
 
@@ -161,26 +158,24 @@ class SupportsDecomposeWithQubits(Protocol):
161
158
  pass
162
159
 
163
160
  def _decompose_with_context_(
164
- self, qubits: tuple[cirq.Qid, ...], *, context: DecompositionContext | None = None
161
+ self, qubits: tuple[cirq.Qid, ...], *, context: DecompositionContext
165
162
  ) -> DecomposeResult:
166
163
  pass
167
164
 
168
165
 
169
166
  def _try_op_decomposer(
170
- val: Any, decomposer: OpDecomposer | None, *, context: DecompositionContext | None = None
167
+ val: Any, decomposer: OpDecomposer | None, *, context: DecompositionContext
171
168
  ) -> DecomposeResult:
172
169
  if decomposer is None or not isinstance(val, ops.Operation):
173
170
  return None
174
171
  if 'context' in inspect.signature(decomposer).parameters:
175
- assert isinstance(decomposer, OpDecomposerWithContext)
176
- return decomposer(val, context=context)
177
- else:
178
- return decomposer(val)
172
+ return decomposer(val, context=context) # type: ignore[call-arg]
173
+ return decomposer(val) # type: ignore[call-arg]
179
174
 
180
175
 
181
176
  @dataclasses.dataclass(frozen=True)
182
177
  class _DecomposeArgs:
183
- context: DecompositionContext | None
178
+ context: DecompositionContext
184
179
  intercepting_decomposer: OpDecomposer | None
185
180
  fallback_decomposer: OpDecomposer | None
186
181
  keep: Callable[[cirq.Operation], bool] | None
@@ -373,7 +368,7 @@ def decompose_once(
373
368
 
374
369
  method = getattr(val, '_decompose_with_context_', None)
375
370
  decomposed = NotImplemented if method is None else method(*args, **kwargs, context=context)
376
- if decomposed is NotImplemented or decomposed is None:
371
+ if decomposed is NotImplemented:
377
372
  method = getattr(val, '_decompose_', None)
378
373
  decomposed = NotImplemented if method is None else method(*args, **kwargs)
379
374
 
@@ -15,6 +15,7 @@
15
15
  from __future__ import annotations
16
16
 
17
17
  import itertools
18
+ from types import NotImplementedType
18
19
  from unittest import mock
19
20
 
20
21
  import pytest
@@ -454,3 +455,46 @@ def test_extracting_global_phases() -> None:
454
455
  assert not context.extract_global_phases
455
456
  assert new_context.extract_global_phases
456
457
  assert new_context.qubit_manager is qm
458
+
459
+
460
+ def test_handling_of_none_vs_notimplemented_return_values() -> None:
461
+
462
+ class TestOp:
463
+ called_decompose = False
464
+ called_decompose_with_context = False
465
+ return_value: NotImplementedType | None = None
466
+
467
+ def _decompose_(self):
468
+ self.called_decompose = True
469
+ return self.return_value
470
+
471
+ def _decompose_with_context_(self, *, context):
472
+ assert context is not None, 'A default context should be provided'
473
+ self.called_decompose_with_context = True
474
+ return self.return_value
475
+
476
+ op = TestOp()
477
+ result = cirq.decompose(op)
478
+ assert op.called_decompose_with_context, 'Should always call _decompose_with_context_'
479
+ assert not op.called_decompose, 'Should not fall back to _decompose_'
480
+ assert result == [op]
481
+
482
+ op = TestOp()
483
+ result = cirq.decompose_once(op, default='dummy')
484
+ assert op.called_decompose_with_context, 'Should always call _decompose_with_context_'
485
+ assert not op.called_decompose, 'Should not fall back to _decompose_'
486
+ assert result == 'dummy'
487
+
488
+ op = TestOp()
489
+ op.return_value = NotImplemented
490
+ result = cirq.decompose(op)
491
+ assert op.called_decompose_with_context, 'Should always call _decompose_with_context_'
492
+ assert op.called_decompose, 'Should fall back to _decompose_'
493
+ assert result == [op]
494
+
495
+ op = TestOp()
496
+ op.return_value = NotImplemented
497
+ result = cirq.decompose_once(op, default='dummy')
498
+ assert op.called_decompose_with_context, 'Should always call _decompose_with_context_'
499
+ assert op.called_decompose, 'Should fall back to _decompose_'
500
+ assert result == 'dummy'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cirq-core
3
- Version: 1.7.0.dev20250814213759
3
+ Version: 1.7.0.dev20250814214609
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=5OMdETPu_ahLYEAGWuvz6FQvPo90WuREbv97yjHbWdE,1206
8
- cirq/_version_test.py,sha256=sIhxk3eJjUQHh23JJW-O4IsJAoBpH15T1Od1lktTCvo,155
7
+ cirq/_version.py,sha256=wn4TSccAw4YfwA1HXhKdlGqvdkZp0JsGBr2ozARMe2k,1206
8
+ cirq/_version_test.py,sha256=nmMc8bJMQBjHlezSSXUxk6J67eYKYbV9A9A9V6rJXxs,155
9
9
  cirq/conftest.py,sha256=wSDKNdIQRDfLnXvOCWD3erheOw8JHRhdfQ53EyTUIXg,1239
10
10
  cirq/json_resolver_cache.py,sha256=A5DIgFAY1hUNt9vai_C3-gGBv24116CJMzQxMcXOax4,13726
11
11
  cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
@@ -287,7 +287,7 @@ cirq/ops/arithmetic_operation.py,sha256=FO2ne5ZHIcUCJySgOC60UApfDtfVBaZqlrhM46f7
287
287
  cirq/ops/arithmetic_operation_test.py,sha256=F5fPQF_sRWi8qyP_SgDzJ8kfX0jUVMj59_VOPpbXH_0,4938
288
288
  cirq/ops/boolean_hamiltonian.py,sha256=x25fraM9NNs-XzDKDl2AZ1AMpkVovfe-dNm_0wOolyI,14927
289
289
  cirq/ops/boolean_hamiltonian_test.py,sha256=_4mFFrbO9C21oZYutr_pl01_bqDDxvgY_h4DWKGkse0,8630
290
- cirq/ops/classically_controlled_operation.py,sha256=hj8oShyWpOD4bmKS5CTmxNftywkCnHTFi28kku1clJM,10386
290
+ cirq/ops/classically_controlled_operation.py,sha256=4b5vRbUKJcd7JwEOJKHWzeqPifJeDbUqzdCpoqaM__g,10248
291
291
  cirq/ops/classically_controlled_operation_test.py,sha256=OedFFoAwS4WnHKG58xgjhbKFgKebhYyP8I7AU4a0m9k,50425
292
292
  cirq/ops/clifford_gate.py,sha256=BMjCuJq2fTFZm-Sv475qDqwsFof1kxru8zNDJOTFkL8,40055
293
293
  cirq/ops/clifford_gate_test.py,sha256=nuIGDqc7AWf5KJY3JJSe4mt8egLlcyuf5oorX_aBdsU,41268
@@ -301,7 +301,7 @@ cirq/ops/control_values.py,sha256=GrNi8YJZSZDCl8Su6Ocimvd1R1SejFJjVu2thcJ8VLI,13
301
301
  cirq/ops/control_values_test.py,sha256=Wyn0nwtcpnJvcPVRHmFGb3PtYxvsbpluA5UbPrG7tIo,13067
302
302
  cirq/ops/controlled_gate.py,sha256=3Hex9AdY6c_DedKoCqqpS4gx9rAgm9KZITbwUBXsoYg,13562
303
303
  cirq/ops/controlled_gate_test.py,sha256=jmIOlCx8dC3VId4NynX1ZYy7s7tkLav_d-fjiIZyVh0,29308
304
- cirq/ops/controlled_operation.py,sha256=l0pjUfru39HBuAbBkRCqJmrJDxah0JOFxXXILcUt0v8,13978
304
+ cirq/ops/controlled_operation.py,sha256=Anes_PkQ5YLRS2Y6yQY0ssB85oWg5pJkvoQTSDrX--A,13514
305
305
  cirq/ops/controlled_operation_test.py,sha256=qXpnUoeWmOQaTMZPAuuICtX9Idf-JWtdARTsTENv54g,16546
306
306
  cirq/ops/dense_pauli_string.py,sha256=1TijNu1D2HIbbnwLbT_f546R2L4OCQtm1bKjqhno1Kg,24234
307
307
  cirq/ops/dense_pauli_string_test.py,sha256=JLfTLO13Qnr9c5jZOPBTJWD4409vm7uV6vi8R7m1kOg,21517
@@ -315,7 +315,7 @@ cirq/ops/fsim_gate.py,sha256=Qs7FLsNXR7K2jNVZ8I9o9YLvOb6cC6iBnAvZAHERNk0,20037
315
315
  cirq/ops/fsim_gate_test.py,sha256=QgckC2fij30grZJoO6HnQHdGkKcwtiegedEBRid3wF0,25858
316
316
  cirq/ops/gate_features.py,sha256=OfjsIGftnGpNUDAYwSP4obG0FsMrHYfp49ZOjbvbmNE,1085
317
317
  cirq/ops/gate_features_test.py,sha256=JYPunTBr48CQoIOB1wk2QEdPwtnmE-FxUoF6a4ZeRB8,2407
318
- cirq/ops/gate_operation.py,sha256=MF8JIYEM6bQu6ft9Eb19hSOillzu8MmaIoXSlmwbm5U,13447
318
+ cirq/ops/gate_operation.py,sha256=PowWX9XcX_xHXt_7Ccg8pqqQwiJtN3qSfbtlKJEyXx4,13321
319
319
  cirq/ops/gate_operation_test.py,sha256=4QwWxCjGXNM__6QGw1kYSbBMh_4783jBZVBJD1ERGPk,18020
320
320
  cirq/ops/gateset.py,sha256=ya5OUsgd1j703Kk3hq6f-LzT1ZjBo_tl-FV0hvvlaAA,21492
321
321
  cirq/ops/gateset_test.py,sha256=JGQtCOkhAC11vhlZRpwJowNfU6v-hlIt9qdRRJgvfQY,17407
@@ -378,8 +378,8 @@ cirq/ops/qubit_order_or_list.py,sha256=5kChRv1gUnBKB-kF6okXoXcCa5CXbJ6HoB6ETpfl3
378
378
  cirq/ops/qubit_order_test.py,sha256=8uOW9oLLQcjbYvd2DdXZLCbRS2sJuH6b8Bal3SgPo5M,4372
379
379
  cirq/ops/random_gate_channel.py,sha256=i4eg9GA4CF6ZWQRrICa5lfYqvdZzN8oLEWwXHcxRStM,5115
380
380
  cirq/ops/random_gate_channel_test.py,sha256=p-xtDOMIYBJ1wVHLJmrALi-ZU978l3AVuX0kgoan1Ac,8523
381
- cirq/ops/raw_types.py,sha256=2QoHkWlVGAY3Yzkvlkop0GhLRdTMlHPGCIZNzffDjcI,43626
382
- cirq/ops/raw_types_test.py,sha256=ROi20W_gtt5lmDV0-z7LWhEQm93Icg4AzA8OEvlMJVg,35413
381
+ cirq/ops/raw_types.py,sha256=kna5HmYONBXgXTfrTXgozYwBSxM9SwgBx2jTD4QWGqk,43410
382
+ cirq/ops/raw_types_test.py,sha256=8h2g9EzGc65-eDu_6SPB_fuVy-a3Uos0EIPA1j0eLEc,35401
383
383
  cirq/ops/state_preparation_channel.py,sha256=3qbqrrYaVN2eHL1qiBHcItj1Pzjxhtq10tSEkRz9GNM,4781
384
384
  cirq/ops/state_preparation_channel_test.py,sha256=xFi6nOFPoQatxvnorCXujmhMvtf65lmyFfxbGlTKo4c,6039
385
385
  cirq/ops/swap_gates.py,sha256=mEDVB4pdBsbenaOahrNtAcE2B1ZPW-4vGq079rECxf4,11743
@@ -411,8 +411,8 @@ cirq/protocols/commutes_protocol.py,sha256=6cJNba3aEsCh_XHIeNTHb0LRzws6ZbxOrKL_r
411
411
  cirq/protocols/commutes_protocol_test.py,sha256=9YhBFYAwc-XpU7HrQp-GarKwmwmbgyadUYqlkiG10A8,5885
412
412
  cirq/protocols/control_key_protocol.py,sha256=uGgfahCHzsFpUGq6flgTMuqPh20zUSB2AOkSrhyoqwQ,2621
413
413
  cirq/protocols/control_key_protocol_test.py,sha256=fNDDkf4mQpA_tKuhX1e2BJN72v9HdGftgd79sOqREJE,1014
414
- cirq/protocols/decompose_protocol.py,sha256=zwmrlFmBggInx1u1xZEeBDxaLGRWMGHCp87F7RRQPH4,19129
415
- cirq/protocols/decompose_protocol_test.py,sha256=s5ELgra5UKExKCjDHUtMOwTZrGmYwxAphCRryRLMM_Q,16456
414
+ cirq/protocols/decompose_protocol.py,sha256=QFiH6D1QzWT-TCwkClXbcVADIBwKHl39X8SPJ8E2524,18967
415
+ cirq/protocols/decompose_protocol_test.py,sha256=JJexKMKYdSW1K1S4wkTyR1Wy80Ku_jHslSJx3gJ5REs,18130
416
416
  cirq/protocols/equal_up_to_global_phase_protocol.py,sha256=y-GPOImHgdjVqXF-qE3SUmlekF6-zI0tgi0E2nTdW1M,4106
417
417
  cirq/protocols/equal_up_to_global_phase_protocol_test.py,sha256=EDfWnCuYAVfcvBXHYoZ0lDukNEGG2c53vzP7s8jHLKA,6050
418
418
  cirq/protocols/has_stabilizer_effect_protocol.py,sha256=T_CVVpvckp3ZTsWi089mPqbmwOPLlF6GalEKrVK7Hvs,4309
@@ -1234,8 +1234,8 @@ cirq/work/sampler.py,sha256=rxbMWvrhu3gfNSBjZKozw28lLKVvBAS_1EGyPdYe8Xg,19041
1234
1234
  cirq/work/sampler_test.py,sha256=SsMrRvLDYELyOAWLKISjkdEfrBwLYWRsT6D8WrsLM3Q,13533
1235
1235
  cirq/work/zeros_sampler.py,sha256=Fs2JWwq0n9zv7_G5Rm-9vPeHUag7uctcMOHg0JTkZpc,2371
1236
1236
  cirq/work/zeros_sampler_test.py,sha256=lQLgQDGBLtfImryys2HzQ2jOSGxHgc7-koVBUhv8qYk,3345
1237
- cirq_core-1.7.0.dev20250814213759.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1238
- cirq_core-1.7.0.dev20250814213759.dist-info/METADATA,sha256=6JiKvsC8phpIxxPfGPw7KLuGaCYI4Uv3OziCnTt0w6w,4857
1239
- cirq_core-1.7.0.dev20250814213759.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1240
- cirq_core-1.7.0.dev20250814213759.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1241
- cirq_core-1.7.0.dev20250814213759.dist-info/RECORD,,
1237
+ cirq_core-1.7.0.dev20250814214609.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1238
+ cirq_core-1.7.0.dev20250814214609.dist-info/METADATA,sha256=1_5wp3a6PQKEhyc8Zd4QObsjQt9nkxaM1ygELLDFQZ8,4857
1239
+ cirq_core-1.7.0.dev20250814214609.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1240
+ cirq_core-1.7.0.dev20250814214609.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1241
+ cirq_core-1.7.0.dev20250814214609.dist-info/RECORD,,