Skip to content

Commit 0243555

Browse files
Remove device from circuits (#5189)
Removes v0.15 deprecation items for attaching devices to circuits.
1 parent 8eb928d commit 0243555

34 files changed

+575
-1027
lines changed

Diff for: cirq-core/cirq/circuits/circuit.py

+36-198
Large diffs are not rendered by default.

Diff for: cirq-core/cirq/circuits/circuit_dag.py

+4-41
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@
1111
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
14-
import re
1514
from typing import Any, Callable, Dict, Generic, Iterator, TypeVar, cast, TYPE_CHECKING
1615

1716
import functools
1817
import networkx
1918

20-
from cirq import _compat, ops, devices
19+
from cirq import ops
2120
from cirq.circuits import circuit
2221

2322
if TYPE_CHECKING:
@@ -70,17 +69,10 @@ class CircuitDag(networkx.DiGraph):
7069

7170
disjoint_qubits = staticmethod(_disjoint_qubits)
7271

73-
@_compat.deprecated_parameter(
74-
deadline='v0.15',
75-
fix=circuit._DEVICE_DEP_MESSAGE,
76-
parameter_desc='device',
77-
match=lambda args, kwargs: 'device' in kwargs or len(args) == 4,
78-
)
7972
def __init__(
8073
self,
8174
can_reorder: Callable[['cirq.Operation', 'cirq.Operation'], bool] = _disjoint_qubits,
8275
incoming_graph_data: Any = None,
83-
device: 'cirq.Device' = devices.UNCONSTRAINED_DEVICE,
8476
) -> None:
8577
"""Initializes a CircuitDag.
8678
@@ -98,15 +90,6 @@ def __init__(
9890
"""
9991
super().__init__(incoming_graph_data)
10092
self.can_reorder = can_reorder
101-
self._device = device
102-
103-
@property # type: ignore
104-
@_compat.deprecated(
105-
deadline='v0.15',
106-
fix=circuit._DEVICE_DEP_MESSAGE,
107-
)
108-
def device(self) -> devices.Device:
109-
return self._device
11093

11194
@staticmethod
11295
def make_node(op: 'cirq.Operation') -> Unique:
@@ -117,30 +100,14 @@ def from_circuit(
117100
circuit: circuit.Circuit,
118101
can_reorder: Callable[['cirq.Operation', 'cirq.Operation'], bool] = _disjoint_qubits,
119102
) -> 'CircuitDag':
120-
if circuit._device == devices.UNCONSTRAINED_DEVICE:
121-
return CircuitDag.from_ops(circuit.all_operations(), can_reorder=can_reorder)
122-
return CircuitDag.from_ops(
123-
circuit.all_operations(), can_reorder=can_reorder, device=circuit._device
124-
)
103+
return CircuitDag.from_ops(circuit.all_operations(), can_reorder=can_reorder)
125104

126105
@staticmethod
127-
@_compat.deprecated_parameter(
128-
deadline='v0.15',
129-
fix=circuit._DEVICE_DEP_MESSAGE,
130-
parameter_desc='device',
131-
match=lambda args, kwargs: 'device' in kwargs,
132-
)
133106
def from_ops(
134107
*operations: 'cirq.OP_TREE',
135108
can_reorder: Callable[['cirq.Operation', 'cirq.Operation'], bool] = _disjoint_qubits,
136-
device: 'cirq.Device' = devices.UNCONSTRAINED_DEVICE,
137109
) -> 'CircuitDag':
138-
if device == devices.UNCONSTRAINED_DEVICE:
139-
dag = CircuitDag(can_reorder=can_reorder)
140-
else:
141-
with _compat.block_overlapping_deprecation(re.escape(circuit._DEVICE_DEP_MESSAGE)):
142-
dag = CircuitDag(can_reorder=can_reorder, device=device)
143-
110+
dag = CircuitDag(can_reorder=can_reorder)
144111
for op in ops.flatten_op_tree(operations):
145112
dag.append(cast(ops.Operation, op))
146113
return dag
@@ -212,11 +179,7 @@ def all_qubits(self):
212179
return frozenset(q for node in self.nodes for q in node.val.qubits)
213180

214181
def to_circuit(self) -> circuit.Circuit:
215-
if self._device == devices.UNCONSTRAINED_DEVICE:
216-
return circuit.Circuit(self.all_operations(), strategy=circuit.InsertStrategy.EARLIEST)
217-
return circuit.Circuit(
218-
self.all_operations(), strategy=circuit.InsertStrategy.EARLIEST, device=self._device
219-
)
182+
return circuit.Circuit(self.all_operations(), strategy=circuit.InsertStrategy.EARLIEST)
220183

221184
def findall_nodes_until_blocked(
222185
self, is_blocker: Callable[['cirq.Operation'], bool]

Diff for: cirq-core/cirq/circuits/circuit_dag_test.py

-45
Original file line numberDiff line numberDiff line change
@@ -70,21 +70,6 @@ def test_init():
7070
assert list(dag.edges()) == []
7171

7272

73-
def test_init_device_deprecated():
74-
with cirq.testing.assert_deprecated(
75-
cirq.circuits.circuit._DEVICE_DEP_MESSAGE, deadline='v0.15'
76-
):
77-
_ = cirq.CircuitDag(device=cirq.UNCONSTRAINED_DEVICE)
78-
79-
80-
def test_device_deprecated():
81-
dag = cirq.CircuitDag()
82-
with cirq.testing.assert_deprecated(
83-
cirq.circuits.circuit._DEVICE_DEP_MESSAGE, deadline='v0.15'
84-
):
85-
_ = dag.device
86-
87-
8873
def test_append():
8974
q0 = cirq.LineQubit(0)
9075
dag = cirq.CircuitDag()
@@ -118,14 +103,6 @@ def test_from_ops():
118103
assert [(n1.val, n2.val) for n1, n2 in dag.edges()] == [(cirq.X(q0), cirq.Y(q0))]
119104

120105

121-
def test_from_ops_device_deprecated():
122-
with cirq.testing.assert_deprecated(
123-
cirq.circuits.circuit._DEVICE_DEP_MESSAGE, deadline='v0.15'
124-
):
125-
q0 = cirq.LineQubit(0)
126-
_ = cirq.CircuitDag.from_ops(cirq.X(q0), cirq.Y(q0), device=FakeDevice())
127-
128-
129106
def test_from_circuit():
130107
q0 = cirq.LineQubit(0)
131108
circuit = cirq.Circuit(cirq.X(q0), cirq.Y(q0))
@@ -136,16 +113,6 @@ def test_from_circuit():
136113
assert sorted(circuit.all_qubits()) == sorted(dag.all_qubits())
137114

138115

139-
def test_from_circuit_deprecated():
140-
q0 = cirq.LineQubit(0)
141-
circuit = cirq.Circuit(cirq.X(q0), cirq.Y(q0))
142-
circuit._device = FakeDevice()
143-
with cirq.testing.assert_deprecated(
144-
cirq.circuits.circuit._DEVICE_DEP_MESSAGE, deadline='v0.15'
145-
):
146-
_ = cirq.CircuitDag.from_circuit(circuit)
147-
148-
149116
def test_to_empty_circuit():
150117
circuit = cirq.Circuit()
151118
dag = cirq.CircuitDag.from_circuit(circuit)
@@ -167,18 +134,6 @@ def test_to_circuit():
167134
)
168135

169136

170-
def test_to_circuit_device_deprecated():
171-
q0 = cirq.LineQubit(0)
172-
circuit = cirq.Circuit(cirq.X(q0), cirq.Y(q0))
173-
dag = cirq.CircuitDag.from_circuit(circuit)
174-
dag._device = FakeDevice()
175-
176-
with cirq.testing.assert_deprecated(
177-
cirq.circuits.circuit._DEVICE_DEP_MESSAGE, deadline='v0.15'
178-
):
179-
_ = dag.to_circuit()
180-
181-
182137
def test_equality():
183138
q0, q1 = cirq.LineQubit.range(2)
184139
circuit1 = cirq.Circuit(

0 commit comments

Comments
 (0)