L5 / L2 桥接接口

从 qaiji.core.program_native 显式导入。 bridge_program_native(program, kernels, bindings) 返回 ProgramNativeMap。 kernels 按 kernel_ref``(内核引用)提供电路;``bindings 按从零开始的调用索引提供 NativeBinding(schedule=..., config=...)。即便多个调用使用同一电路,每次调用 也必须有绑定并独立认证;没有声明输出的调用也必须认证。

认证顺序与异常

首先调用原有 validate_program,原有 ProgramValidationError 保持原样且优先。 随后检查映射与 Python 内置整数键,结构错误可抛 NativeInputError。逐调用收集缺失绑定 或原生调度认证失败后,一起抛 ProgramNativeValidationError;不会返回部分成功输出。 它继承 QaijiIRError,issues 为按调用顺序排列的 ProgramNativeIssue 元组。

问题项的 code 为 binding_missing、native_input 或 native_invalid。 native_input 记录底层 input_code / input_path;native_invalid 记录 native_report;不适用的诊断字段为 None。只有所有调用通过后才建立输出映射。 绑定键必须为 Python 内置整数(不接受布尔值);额外的整数键不参与调用认证。

输出与字段

输出顺序沿用 program.result_outputs。history 按对应调度记录的事件顺序 列出该调用、该寄存器的所有测量;final_bits 按位索引升序选择每位最后一次 测量。不同调用中的同名事件(如 m0)通过 invocation_index 区分。 这些都是引用,没有真实采样值;不执行 shot_count,也不解析校准/设备引用。

所有记录均不可修改、采用 slots、仅接受关键字参数,且不可哈希;序列保存为元组。

公开记录字段(构造时均仅接受关键字参数)

类型

字段

FinalBitBinding

bit_index, event

InvocationEventRef

invocation_index, event_id

NativeBinding

schedule, config

OutputMeasurementBinding

invocation_index, register_name, history, final_bits

ProgramNativeIssue

invocation_index, code, native_report, input_code, input_path, message

ProgramNativeMap

outputs

完整示例见 显式配置的原生调度;语义边界见 原生调度的语义与边界。

自动生成的接口说明

经过认证的 L5 / L2 调用与测量事件映射。

class qaiji.core.program_native.FinalBitBinding(*, bit_index: int, event: qaiji.core.program_native.model.InvocationEventRef)[源代码]

基类:object

参数:
bit_index: int
event: InvocationEventRef
class qaiji.core.program_native.InvocationEventRef(*, invocation_index: int, event_id: str)[源代码]

基类:object

参数:
  • invocation_index (int)

  • event_id (str)

invocation_index: int
event_id: str
class qaiji.core.program_native.NativeBinding(*, schedule: qaiji.core.native.model.NativeScheduleIR, config: qaiji.core.native.config.ScheduleConfig)[源代码]

基类:object

参数:
schedule: NativeScheduleIR
config: ScheduleConfig
class qaiji.core.program_native.OutputMeasurementBinding(*, invocation_index: int, register_name: str, history: tuple[qaiji.core.program_native.model.InvocationEventRef, ...], final_bits: tuple[qaiji.core.program_native.model.FinalBitBinding, ...])[源代码]

基类:object

参数:
invocation_index: int
register_name: str
history: tuple[InvocationEventRef, ...]
final_bits: tuple[FinalBitBinding, ...]
class qaiji.core.program_native.ProgramNativeIssue(*, invocation_index: int, code: str, native_report: qaiji.core.native.diagnostics.NativeValidationReport | None, input_code: str | None, input_path: str | None, message: str)[源代码]

基类:object

参数:
invocation_index: int
code: str
native_report: NativeValidationReport | None
input_code: str | None
input_path: str | None
message: str
class qaiji.core.program_native.ProgramNativeMap(*, outputs: tuple[qaiji.core.program_native.model.OutputMeasurementBinding, ...])[源代码]

基类:object

参数:

outputs (tuple[OutputMeasurementBinding, ...])

outputs: tuple[OutputMeasurementBinding, ...]
exception qaiji.core.program_native.ProgramNativeValidationError(issues)[源代码]

基类:QaijiIRError

程序调用的原生调度绑定或认证失败。

参数:

issues (Sequence[ProgramNativeIssue])

返回类型:

None

qaiji.core.program_native.bridge_program_native(program, kernels, bindings)[源代码]

保留 L5 校验错误,汇总 L2 错误,再映射认证后的测量事件。

不执行采样或解析元数据引用。可以检测 L5 与 L2 校验之间的来源变更; 不支持并发修改。

参数:
返回类型:

ProgramNativeMap