cirq-core 1.7.0.dev20250814212453__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 +1 -1
- cirq/_version_test.py +1 -1
- cirq/ops/classically_controlled_operation.py +4 -9
- cirq/ops/controlled_operation.py +6 -17
- cirq/ops/gate_operation.py +2 -7
- cirq/ops/gateset.py +7 -7
- cirq/ops/gateset_test.py +22 -0
- cirq/ops/raw_types.py +2 -10
- cirq/ops/raw_types_test.py +3 -3
- cirq/protocols/decompose_protocol.py +9 -14
- cirq/protocols/decompose_protocol_test.py +44 -0
- {cirq_core-1.7.0.dev20250814212453.dist-info → cirq_core-1.7.0.dev20250814214609.dist-info}/METADATA +1 -1
- {cirq_core-1.7.0.dev20250814212453.dist-info → cirq_core-1.7.0.dev20250814214609.dist-info}/RECORD +16 -16
- {cirq_core-1.7.0.dev20250814212453.dist-info → cirq_core-1.7.0.dev20250814214609.dist-info}/WHEEL +0 -0
- {cirq_core-1.7.0.dev20250814212453.dist-info → cirq_core-1.7.0.dev20250814214609.dist-info}/licenses/LICENSE +0 -0
- {cirq_core-1.7.0.dev20250814212453.dist-info → cirq_core-1.7.0.dev20250814214609.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
|
@@ -125,15 +125,10 @@ class ClassicallyControlledOperation(raw_types.Operation):
|
|
|
125
125
|
*self._conditions
|
|
126
126
|
)
|
|
127
127
|
|
|
128
|
-
def
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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)
|
cirq/ops/controlled_operation.py
CHANGED
|
@@ -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
|
|
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,
|
|
138
|
+
self.gate, self.qubits, None, flatten=False, context=context
|
|
143
139
|
)
|
|
144
|
-
if result is not
|
|
140
|
+
if result is not None:
|
|
145
141
|
return result
|
|
146
142
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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)
|
cirq/ops/gate_operation.py
CHANGED
|
@@ -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
|
|
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,
|
|
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/gateset.py
CHANGED
|
@@ -416,13 +416,6 @@ class Gateset:
|
|
|
416
416
|
g = item if isinstance(item, raw_types.Gate) else item.gate
|
|
417
417
|
assert g is not None, f'`item`: {item} must be a gate or have a valid `item.gate`'
|
|
418
418
|
|
|
419
|
-
if g in self._instance_gate_families:
|
|
420
|
-
assert item in self._instance_gate_families[g], (
|
|
421
|
-
f"{item} instance matches {self._instance_gate_families[g]} but "
|
|
422
|
-
f"is not accepted by it."
|
|
423
|
-
)
|
|
424
|
-
return True
|
|
425
|
-
|
|
426
419
|
for gate_mro_type in type(g).mro():
|
|
427
420
|
if gate_mro_type in self._type_gate_families:
|
|
428
421
|
assert item in self._type_gate_families[gate_mro_type], (
|
|
@@ -431,6 +424,13 @@ class Gateset:
|
|
|
431
424
|
)
|
|
432
425
|
return True
|
|
433
426
|
|
|
427
|
+
if g in self._instance_gate_families:
|
|
428
|
+
assert item in self._instance_gate_families[g], (
|
|
429
|
+
f"{item} instance matches {self._instance_gate_families[g]} but "
|
|
430
|
+
f"is not accepted by it."
|
|
431
|
+
)
|
|
432
|
+
return True
|
|
433
|
+
|
|
434
434
|
return any(item in gate_family for gate_family in self._gates)
|
|
435
435
|
|
|
436
436
|
def validate(self, circuit_or_optree: cirq.AbstractCircuit | op_tree.OP_TREE) -> bool:
|
cirq/ops/gateset_test.py
CHANGED
|
@@ -452,3 +452,25 @@ def test_gateset_contains_op_with_no_gate():
|
|
|
452
452
|
op = cirq.X(cirq.q(1)).with_classical_controls('a')
|
|
453
453
|
assert op.gate is None
|
|
454
454
|
assert op not in gf
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
def test_overlapping_gate_families() -> None:
|
|
458
|
+
"""Tests if a gate belongs both to an instance and type family
|
|
459
|
+
but is rejected by the type family it can still be accepted."""
|
|
460
|
+
|
|
461
|
+
# The following gateset should accept ZPowGates only with the tag
|
|
462
|
+
# except it lets in cirq.Z with no tag
|
|
463
|
+
tag = "PhysicalZTag"
|
|
464
|
+
gf_accept = cirq.GateFamily(cirq.ZPowGate, tags_to_accept=[tag])
|
|
465
|
+
instance_accept = cirq.GateFamily(cirq.Z)
|
|
466
|
+
gs = cirq.Gateset(gf_accept, instance_accept)
|
|
467
|
+
|
|
468
|
+
instance_op = cirq.Z(q)
|
|
469
|
+
instance_op_with_tag = cirq.Z(q).with_tags(tag)
|
|
470
|
+
type_op_no_tag = cirq.ZPowGate(exponent=0.5)(q)
|
|
471
|
+
type_op_with_tag = cirq.ZPowGate(exponent=0.5)(q).with_tags(tag)
|
|
472
|
+
|
|
473
|
+
assert instance_op in gs
|
|
474
|
+
assert instance_op_with_tag in gs
|
|
475
|
+
assert type_op_no_tag not in gs
|
|
476
|
+
assert type_op_with_tag in gs
|
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
|
|
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
|
|
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)
|
cirq/ops/raw_types_test.py
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
176
|
-
|
|
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
|
|
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
|
|
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'
|
{cirq_core-1.7.0.dev20250814212453.dist-info → cirq_core-1.7.0.dev20250814214609.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cirq-core
|
|
3
|
-
Version: 1.7.0.
|
|
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
|
{cirq_core-1.7.0.dev20250814212453.dist-info → cirq_core-1.7.0.dev20250814214609.dist-info}/RECORD
RENAMED
|
@@ -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=
|
|
8
|
-
cirq/_version_test.py,sha256=
|
|
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=
|
|
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=
|
|
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,10 +315,10 @@ 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=
|
|
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
|
-
cirq/ops/gateset.py,sha256=
|
|
321
|
-
cirq/ops/gateset_test.py,sha256=
|
|
320
|
+
cirq/ops/gateset.py,sha256=ya5OUsgd1j703Kk3hq6f-LzT1ZjBo_tl-FV0hvvlaAA,21492
|
|
321
|
+
cirq/ops/gateset_test.py,sha256=JGQtCOkhAC11vhlZRpwJowNfU6v-hlIt9qdRRJgvfQY,17407
|
|
322
322
|
cirq/ops/global_phase_op.py,sha256=GcERs4X5h5_at6tvJc8-AcM0cVsLCRPlpPkAWMINm54,5711
|
|
323
323
|
cirq/ops/global_phase_op_test.py,sha256=9BBnPZLLmBzHsMoRPMFTAShx87TJnhTLvvgLpHJF4wc,10721
|
|
324
324
|
cirq/ops/greedy_qubit_manager.py,sha256=UTd9cTRbl4GQmf6ai6zqVBn5TR3-Vg84jJu4AN-0cxc,4050
|
|
@@ -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=
|
|
382
|
-
cirq/ops/raw_types_test.py,sha256=
|
|
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=
|
|
415
|
-
cirq/protocols/decompose_protocol_test.py,sha256=
|
|
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.
|
|
1238
|
-
cirq_core-1.7.0.
|
|
1239
|
-
cirq_core-1.7.0.
|
|
1240
|
-
cirq_core-1.7.0.
|
|
1241
|
-
cirq_core-1.7.0.
|
|
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,,
|
{cirq_core-1.7.0.dev20250814212453.dist-info → cirq_core-1.7.0.dev20250814214609.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|