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.

USE_CONSTANTS_TABLE_FOR_MOMENTS Temporary feature flag to enable serialization of duplicate moments as entries in the constant table. This flag will soon become the default and disappear as soon as deserialization of this field is deployed.
USE_CONSTANTS_TABLE_FOR_MOMENTS Temporary feature flag to enable serialization of duplicate operations as entries in the constant table. This flag will soon become the default and disappear as soon as deserialization of this field is deployed.
op_serializer Optional custom serializer for serializing unknown gates.
op_deserializer Optional custom deserializer for deserializing unknown gates.
tag_serializer Optional custom serializer for serializing unknown tags.
tag_deserializer Optional custom deserializer for deserializing unknown tags.

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

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