Skip to content

OriginBIS Conversion ​

API reference for functions that convert quantum programs and variational circuits to and from OriginBIS binary strings. OriginBIS uses Protocol Buffers-based serialization for efficient storage and network transmission.

QProg Conversion ​

convert_qprog_to_originbis ​

Converts a quantum program into an OriginBIS binary string.

Signature ​

python
convert_qprog_to_originbis(
    qprog: QProg,
) -> bytes

Parameters ​

ParameterTypeDescription
qprogQProgThe quantum program to serialize.

Returns ​

bytes -- The OriginBIS binary string.

Examples ​

python
from pyqpanda3.utils import convert_qprog_to_originbis
from pyqpanda3.core import QProg, H, CNOT

prog = QProg() << H(0) << CNOT(0, 1)
originbis = convert_qprog_to_originbis(prog)

convert_originbis_to_qprog ​

Deserializes an OriginBIS binary string back into a quantum program.

Signature ​

python
convert_originbis_to_qprog(
    originbis: bytes,
) -> QProg

Parameters ​

ParameterTypeDescription
originbisbytesAn OriginBIS binary string previously produced by convert_qprog_to_originbis.

Returns ​

The deserialized QProg object.

Examples ​

python
from pyqpanda3.utils import convert_originbis_to_qprog

prog = convert_originbis_to_qprog(originbis)

VQCircuit Conversion ​

convert_vqcircuit_to_originbis ​

Converts a variational quantum circuit into an OriginBIS binary string.

Signature ​

python
convert_vqcircuit_to_originbis(
    vqcircuit: VQCircuit,
) -> bytes

Parameters ​

ParameterTypeDescription
vqcircuitVQCircuitThe variational quantum circuit to serialize.

Returns ​

bytes -- The OriginBIS binary string.

Examples ​

python
from pyqpanda3.utils import convert_vqcircuit_to_originbis
from pyqpanda3.vqcircuit import VQCircuit

vqc = VQCircuit()
originbis = convert_vqcircuit_to_originbis(vqc)

convert_originbis_to_vqcircuit ​

Deserializes an OriginBIS binary string back into a variational quantum circuit.

Signature ​

python
convert_originbis_to_vqcircuit(
    originbis: bytes,
) -> VQCircuit

Parameters ​

ParameterTypeDescription
originbisbytesAn OriginBIS binary string previously produced by convert_vqcircuit_to_originbis.

Returns ​

The deserialized VQCircuit object.

Examples ​

python
from pyqpanda3.utils import convert_originbis_to_vqcircuit

vqc = convert_originbis_to_vqcircuit(originbis)

Variational Circuit with Run Config ​

The following functions serialize and deserialize a VQCircuit bundled together with a CommProtocolConfig. This is useful when both the circuit and its execution configuration need to be transmitted as a single unit.

convert_vqcircuit_with_run_config_to_bytes ​

Converts a variational quantum circuit and its execution configuration into a binary byte string.

Signature ​

python
convert_vqcircuit_with_run_config_to_bytes(
    vqcircuit: VQCircuit,
    config: CommProtocolConfig,
) -> bytes

Parameters ​

ParameterTypeDescription
vqcircuitVQCircuitThe variational quantum circuit to serialize.
configCommProtocolConfigThe execution configuration to bundle with the circuit.

Returns ​

bytes -- The combined binary data.

Examples ​

python
from pyqpanda3.utils import (
    CommProtocolConfig,
    convert_vqcircuit_with_run_config_to_bytes,
)

config = CommProtocolConfig()
config.shots = 4096

data = convert_vqcircuit_with_run_config_to_bytes(vqc, config)

convert_vqc_with_run_config_bytes_to_vqcircuit ​

Extracts the VQCircuit from a combined binary string.

Signature ​

python
convert_vqc_with_run_config_bytes_to_vqcircuit(
    vqc_with_run_config_bytes: bytes,
) -> VQCircuit

Parameters ​

ParameterTypeDescription
vqc_with_run_config_bytesbytesBinary data produced by convert_vqcircuit_with_run_config_to_bytes.

Returns ​

The deserialized VQCircuit object.

Examples ​

python
from pyqpanda3.utils import convert_vqc_with_run_config_bytes_to_vqcircuit

vqc = convert_vqc_with_run_config_bytes_to_vqcircuit(data)

convert_vqc_with_run_config_bytes_to_config ​

Extracts the CommProtocolConfig from a combined binary string.

Signature ​

python
convert_vqc_with_run_config_bytes_to_config(
    vqc_with_run_config_bytes: bytes,
) -> CommProtocolConfig

Parameters ​

ParameterTypeDescription
vqc_with_run_config_bytesbytesBinary data produced by convert_vqcircuit_with_run_config_to_bytes.

Returns ​

The deserialized CommProtocolConfig object.

Examples ​

python
from pyqpanda3.utils import convert_vqc_with_run_config_bytes_to_config

config = convert_vqc_with_run_config_bytes_to_config(data)
print(f"shots={config.shots}, optimization_level={config.optimization_level}")

Output:

shots=4096, optimization_level=4

See Also ​

Released under the MIT License.