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.

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.

The deserialized Circuit

ValueError If the given proto has no language or the langauge gate set mismatches that specified in as the name of this serialized gate set. Also if deserializing a schedule is attempted.
NotImplementedError If the program proto does not contain a circuit or schedule.


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.

NotImplementedError If the program is of a type that is supported.