cirq_google.serialization.CircuitSerializer

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.

Methods

deserialize

View source

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

Args
proto A dictionary representing a cirq_google.api.v2.Program proto.

Returns
The deserialized Circuit

Raises
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.

serialize

View source

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

Args
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.

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