Skip to content

Commit 7cc34a1

Browse files
authored
Merge pull request #637 from tensorflow/serializer_line
Add support for LineQubit to serializer.py
2 parents 2706655 + 8a14da2 commit 7cc34a1

File tree

2 files changed

+151
-100
lines changed

2 files changed

+151
-100
lines changed

tensorflow_quantum/core/serialize/serializer.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -803,8 +803,8 @@ def serialize_circuit(circuit_inp):
803803
Currently we only support scalar multiplication of symbols and
804804
no other more complex arithmetic expressions. This means
805805
we can support things like X**(3*alpha), and Rx(alpha). Because
806-
we use the `cirq.Program` proto, we only support `cirq.GridQubit` instances
807-
during serialization of circuits.
806+
we use the `cirq.Program` proto, we only support `cirq.GridQubit`
807+
and `cirq.LineQubit` instances during serialization of circuits.
808808
809809
Note: once serialized terminal measurements are removed.
810810
@@ -831,10 +831,10 @@ def serialize_circuit(circuit_inp):
831831
measured_qubits = set()
832832
for op in moment:
833833
for qubit in op.qubits:
834-
if not isinstance(qubit, cirq.GridQubit):
834+
if not isinstance(qubit, (cirq.GridQubit, cirq.LineQubit)):
835835
raise ValueError(
836836
"Attempted to serialize circuit that don't use "
837-
"only cirq.GridQubits.")
837+
"only cirq.GridQubits or cirq.LineQubits.")
838838

839839
if isinstance(op.gate, cirq.MeasurementGate):
840840
for qubit in op.qubits:
@@ -915,9 +915,10 @@ def serialize_paulisum(paulisum):
915915
raise TypeError("serialize requires a cirq.PauliSum object."
916916
" Given: " + str(type(paulisum)))
917917

918-
if any(not isinstance(qubit, cirq.GridQubit) for qubit in paulisum.qubits):
918+
if any(not isinstance(qubit, (cirq.LineQubit, cirq.GridQubit))
919+
for qubit in paulisum.qubits):
919920
raise ValueError("Attempted to serialize a paulisum that doesn't use "
920-
"only cirq.GridQubits.")
921+
"only cirq.GridQubits or cirq.LineQubits.")
921922

922923
paulisum_proto = pauli_sum_pb2.PauliSum()
923924
for term in paulisum:

0 commit comments

Comments
 (0)