Skip to content

Protocol -- CommProtocolConfig ​

API reference for the binary communication-protocol helpers in pyqpanda3.utils.

CommProtocolConfig ​

python
CommProtocolConfig()

Execution configuration embedded into protocol payloads.

FieldTypeDefaultDescription
open_mappingboolTrueEnable hardware mapping during downstream execution.
open_error_mitigationboolTrueEnable readout-error mitigation.
optimization_levelint4Compilation optimization level.
circuits_numint100Number of circuit variants used during optimization.
shotsint1000Shot count.

comm_protocol_encode ​

python
comm_protocol_encode(
    prog_list: list[QProg],
    config: CommProtocolConfig = CommProtocolConfig(),
) -> bytes

Serialize one or more QProg objects together with protocol configuration.

python
from pyqpanda3.core import CNOT, H, QProg
from pyqpanda3.utils import CommProtocolConfig, comm_protocol_encode

prog = QProg() << H(0) << CNOT(0, 1)
config = CommProtocolConfig()
config.shots = 4096

payload = comm_protocol_encode([prog], config)
print(type(payload).__name__, len(payload) > 0)

comm_protocol_encode_originir_string ​

python
comm_protocol_encode_originir_string(
    originir: str,
    config: CommProtocolConfig = CommProtocolConfig(),
) -> bytes

Encode OriginIR source text directly into the same binary protocol stream.

ParameterTypeDescription
originirstrOriginIR program text.
configCommProtocolConfigEmbedded execution configuration.

Raises RuntimeError if the OriginIR text cannot be parsed or contains unsupported nodes.

python
from pyqpanda3.utils import comm_protocol_encode_originir_string

originir = "QINIT 1\nCREG 1\nH q[0]\nMEASURE q[0],c[0]\n"
payload = comm_protocol_encode_originir_string(originir)
print(type(payload).__name__)

comm_protocol_encode_originir_file ​

python
comm_protocol_encode_originir_file(
    file_path: str,
    config: CommProtocolConfig = CommProtocolConfig(),
) -> bytes

Encode an OriginIR file into a protocol payload.

Raises RuntimeError if the file cannot be opened, parsed, or encoded.

comm_protocol_decode ​

python
comm_protocol_decode(
    encode_data: bytes,
) -> tuple[list[QProg], CommProtocolConfig]

Decode protocol bytes back into programs and configuration.

python
from pyqpanda3.core import H, QProg
from pyqpanda3.utils import CommProtocolConfig, comm_protocol_decode, comm_protocol_encode

prog = QProg() << H(0)
payload = comm_protocol_encode([prog], CommProtocolConfig())
prog_list, config = comm_protocol_decode(payload)
print(len(prog_list), config.shots)

Notes ​

See Also ​

Released under the MIT License.