A class for serializing and deserializing programs and operations.

Inherits From: Serializer

This class is for serializing cirq_google.api.v2. protos using one message type per gate type. It serializes qubits by adding a field into the constants table. Usage is by passing a cirq.Circuit to the serialize() method of the class, which will produce a Program proto. Likewise, the deserialize method will produce a cirq.Circuit object from a Program proto.

This class is more performant than the previous SerializableGateSet at the cost of some extendability.

gate_set_name The name used to identify the gate set.

name The name of the serializer.



View source

Deserialize a Circuit from a cirq_google.api.v2.Program.

proto A dictionary representing a cirq_google.api.v2.Program proto.
device If the proto is for a schedule, a device is required Otherwise optional.

The deserialized Circuit, with a device if device was not None.


View source

Serialize a Circuit to cirq_google.api.v2.Program proto.

program The Circuit to serialize.
msg An optional proto object to populate with the serialization results.
arg_function_language The arg_function_language field from Program.Language.