Skip to content

Commit e77c11c

Browse files
MichaelBroughtonrht
authored andcommitted
Deprecate {ion,neutral_atom}.decompose_operation. (quantumlib#4930)
Yet more of quantumlib#4744
1 parent 567b25c commit e77c11c

File tree

4 files changed

+18
-9
lines changed

4 files changed

+18
-9
lines changed

Diff for: cirq-core/cirq/ion/ion_device.py

+3
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ def qid_pairs(self) -> FrozenSet['cirq.SymmetricalQidPair']:
8787
qs = self.qubits
8888
return frozenset([devices.SymmetricalQidPair(q, q2) for q in qs for q2 in qs if q < q2])
8989

90+
@_compat.deprecated(
91+
fix='Use cirq.ConvertToIonGates() instead to decompose operations.', deadline='v0.15'
92+
)
9093
def decompose_operation(self, operation: ops.Operation) -> ops.OP_TREE:
9194
return convert_to_ion_gates.ConvertToIonGates().convert_one(operation)
9295

Diff for: cirq-core/cirq/ion/ion_device_test.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,15 @@ def test_init_timedelta():
8181
_ = d.duration_of(cirq.SingleQubitGate().on(q0))
8282

8383

84-
def test_decomposition():
84+
def test_decomposition_deprecated():
8585
d = ion_device(3)
8686
q0 = cirq.LineQubit(0)
8787
q1 = cirq.LineQubit(1)
88-
assert d.decompose_operation(cirq.H(q0)) == [
89-
cirq.rx(np.pi * 1.0).on(cirq.LineQubit(0)),
90-
cirq.ry(np.pi * -0.5).on(cirq.LineQubit(0)),
91-
]
88+
with cirq.testing.assert_deprecated('ConvertToIonGates', deadline='v0.15'):
89+
assert d.decompose_operation(cirq.H(q0)) == [
90+
cirq.rx(np.pi * 1.0).on(cirq.LineQubit(0)),
91+
cirq.ry(np.pi * -0.5).on(cirq.LineQubit(0)),
92+
]
9293
circuit = cirq.Circuit()
9394
circuit.append([cirq.X(q0), cirq.CNOT(q0, q1)])
9495
ion_circuit = d.decompose_circuit(circuit)

Diff for: cirq-core/cirq/neutral_atoms/neutral_atom_devices.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import collections
1717
from typing import Any, Iterable, cast, DefaultDict, TYPE_CHECKING, FrozenSet
1818
from numpy import sqrt
19-
from cirq import devices, ops, circuits, value
19+
from cirq import _compat, devices, ops, circuits, value
2020
from cirq.devices.grid_qubit import GridQubit
2121
from cirq.ops import raw_types
2222
from cirq.value import Duration
@@ -122,6 +122,10 @@ def qubit_set(self) -> FrozenSet['cirq.GridQubit']:
122122
def qubit_list(self):
123123
return [qubit for qubit in self.qubits]
124124

125+
@_compat.deprecated(
126+
fix='Use cirq.ConvertToNeutralAtomGates() instead to decompose operations.',
127+
deadline='v0.15',
128+
)
125129
def decompose_operation(self, operation: ops.Operation) -> ops.OP_TREE:
126130
return convert_to_neutral_atom_gates.ConvertToNeutralAtomGates().convert(operation)
127131

Diff for: cirq-core/cirq/neutral_atoms/neutral_atom_devices_test.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,11 @@ def test_init_errors():
9797
)
9898

9999

100-
def test_decompose_error():
100+
def test_decompose_error_deprecated():
101101
d = square_device(2, 2, holes=[cirq.GridQubit(1, 1)])
102-
for op in d.decompose_operation((cirq.CCZ ** 1.5).on(*(d.qubit_list()))):
103-
d.validate_operation(op)
102+
with cirq.testing.assert_deprecated('ConvertToNeutralAtomGates', deadline='v0.15'):
103+
for op in d.decompose_operation((cirq.CCZ ** 1.5).on(*(d.qubit_list()))):
104+
d.validate_operation(op)
104105

105106

106107
def test_validate_gate_errors():

0 commit comments

Comments
 (0)