QuantumFerry 用户使用手册

API 参考

按模块查找 QuantumFerry SDK 的类、方法和返回对象。每个接口列出调用签名、参数默认值、返回类型与源码位置;入门流程和可运行实验仍在相应教程中。签名中的 * 表示后续参数按名称传入,/ 表示前面的参数按位置传入。

模块主要对象用途
quantum_source_sdkSchedulerClient、ManagementClient、JobSubmissionConfig连接平台、查询目录、准备报价、提交和查询任务。
quantum_source_sdk.backendsBackendCapabilities、GateSpec、Topology读取设备接受的线路、门集、拓扑和可配置项。
quantum_source_qiskitQuantumSourceService、QuantumSourceBackend、SamplerV2、EstimatorV2使用 QuantumCircuit、Target 与 Qiskit 原生结果。
quantum_source_pennylaneQuantumSourceDevice、PreparedPennyLaneBatch使用 QNode / QuantumScript 并还原 PennyLane 测量结果。

quantum_source_sdk · 连接与任务

quantum_source_sdk.ClientCredentials

text
class ClientCredentials(client_id: str, client_secret: str)

保存平台 Client ID 与 Client Secret,供客户端凭据认证使用。

参数类型 / 默认值说明
client_idstr平台分配的客户端标识。
client_secretstr与该标识配套的凭据。

返回:ClientCredentials。

源码:sdk/src/quantum_source_sdk/auth.py

quantum_source_sdk.credentials_from_environment

text
credentials_from_environment() -> ClientCredentials

优先读取 QUANTUM_SOURCE_SDK_KEY 指定的 SDK Key 文件;省略该变量时读取 QUANTUM_SOURCE_CLIENT_ID 与 QUANTUM_SOURCE_CLIENT_SECRET。

返回:ClientCredentials;缺少有效配置时抛出 ValueError。

源码:sdk/src/quantum_source_sdk/auth.py

quantum_source_sdk.load_credentials_from_file

text
load_credentials_from_file(path: str | os.PathLike[str]) -> ClientCredentials

从平台 SDK Key 文件加载凭据。

参数类型 / 默认值说明
pathstr | PathLike[str]本地 SDK Key 文件路径。

返回:ClientCredentials。

源码:sdk/src/quantum_source_sdk/auth.py

quantum_source_sdk.BaseClient

text
class BaseClient(base_url: str | None = None, *, token: str | None = None, auth: ClientCredentialsAuth | None = None, creds: ClientCredentials | None = None, request_timeout_seconds: float = 30.0, poll_interval_seconds: float = 2.0, wait_timeout_seconds: float = 1800.0, max_response_bytes: int = 2 * 1024 * 1024, _shared_api: ApiTransport | None = None)

ManagementClient 与 SchedulerClient 共用的连接配置。通常直接创建这两个业务客户端;连接也支持 with 上下文。

参数类型 / 默认值说明
base_urlstr | None = None平台 API 根地址,省略时读取 QUANTUM_SOURCE_API_URL 或 SDK 默认地址。
token / auth / creds可选认证对象选择一种显式认证方式;省略时从环境加载凭据。
request_timeout_secondsfloat = 30.0单次 HTTP 请求超时秒数。
poll_interval_seconds / wait_timeout_secondsfloat = 2.0 / 1800.0默认轮询间隔和等待上限。
max_response_bytesint = 2097152普通 JSON 响应大小上限。
_shared_apiApiTransport | None = NoneSDK 内部共享连接入口;常规调用保持默认。

返回:BaseClient。close() 释放本地连接。

源码:sdk/src/quantum_source_sdk/clients.py

客户端级钱包选择

创建客户端时用 currency 选择 OPEN 或 FULL。新准备请求采用该钱包;切换钱包时使用相应客户端准备新报价,已有准备和已接受任务保留原报价。

quantum_source_sdk.SchedulerClient

text
class SchedulerClient(base_url: str | None = None, *, token: str | None = None, auth: ClientCredentialsAuth | None = None, creds: ClientCredentials | None = None, management_client: ManagementClient | None = None, approval_callback: Callable[[JobPreparationResultResponse], bool] | None = None, currency: str = "OPEN", **client_options: Any)

高层任务操作入口。currency 选择 OPEN 或 FULL 钱包,默认 OPEN;新准备请求采用当前客户端的钱包。

参数类型 / 默认值说明
currencystr = "OPEN"OPEN / FULL 分别记账。更换钱包时创建相应客户端,再为新实验准备报价;已有报价继续使用准备时的币种。
management_clientManagementClient | None = None复用目录客户端;省略时由 SchedulerClient 创建 management 属性。
approval_callbackCallable | None = None直接提交且需要审价时,接收准备结果并返回是否同意。
**client_optionsAnyBaseClient 的请求超时、轮询和等待配置。

返回:SchedulerClient;management 用于目录查询,currency 为当前钱包。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.ManagementClient

text
class ManagementClient(base_url: str | None = None, **options: Any)

读取组织、厂商、设备目录和账户余额。也可通过 scheduler.management 使用。

参数类型 / 默认值说明
base_urlstr | None = None平台 API 根地址。
**optionsAnyBaseClient 的认证与连接配置。

返回:ManagementClient。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.ManagementClient.list_user_organizations

text
list_user_organizations(limit: int = 20, cursor: str | None = None) -> PaginatedOrganizations

读取当前账号可用组织。

参数类型 / 默认值说明
limitint = 20每页条数。
cursorstr | None = None第一页省略;后续使用上一页 pagination.next_cursor。

返回:PaginatedOrganizations;条目位于 organizations,翻页信息位于 pagination。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.ManagementClient.list_providers

text
list_providers(limit: int = 20, cursor: str | None = None) -> PaginatedProviders

读取厂商目录。

参数类型 / 默认值说明
limitint = 20每页条数。
cursorstr | None = None第一页省略;后续使用上一页 pagination.next_cursor。

返回:PaginatedProviders;条目位于 providers。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.ManagementClient.list_backend_classes

text
list_backend_classes(limit: int = 20, cursor: str | None = None, provider_id: str | None = None) -> PaginatedBackendClasses

读取分页设备目录。

参数类型 / 默认值说明
limitint = 20每页条数。
cursorstr | None = None第一页省略;后续使用上一页 pagination.next_cursor。
provider_idstr | None = None按厂商标识筛选。

返回:PaginatedBackendClasses;设备位于 backend_classes,下一页游标位于 pagination.next_cursor。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.ManagementClient.get_credit_balance

text
get_credit_balance(organization_id: str) -> CreditBalanceRead

读取平台返回的余额与钱包摘要。

参数类型 / 默认值说明
organization_idstr当前使用的组织 ID。

返回:CreditBalanceRead;wallets 中各 CreditWalletRead 提供 currency、balance、reserved、available 与有效期。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.get_backend_class

text
get_backend_class(identifier: str) -> BackendClassRead

读取一个设备的完整记录。

参数类型 / 默认值说明
identifierstr设备 ID 或目录中的 short_code。

返回:BackendClassRead,包含 configuration_schema 和能力元数据。

源码:sdk/src/quantum_source_sdk/clients.py

任务配置与准备

quantum_source_sdk.JobSubmissionConfig

text
class JobSubmissionConfig(backend_class_id: str, name: str, job_subcategory_id: str = "oth:oth", shots: int | None = None, organization_id: str | None = None, configuration_data: Mapping[str, Any] | None = None, execution_plan: str = "public", queue_priority: str = "stand", auto_approve_quote: bool = True, verbose: bool = False, job_timeout_seconds: float = 86400.0, submitted_with: str = "sdk", input_format: str | None = None, provider: str | None = None)

一条高层 OpenQASM 任务的不可变配置。configuration_data 使用扁平字典,字段来自所选设备的 configuration_schema。

参数类型 / 默认值说明
backend_class_id / namestr / str;必填目标设备标识和实验名称。
shotsint | None = None采样次数,推荐显式填写正整数;也可从 configuration_data["shots"] 取得,两处同时填写时保持一致。
organization_idstr | None = None组织 ID;省略时由客户端解析可用组织。
configuration_dataMapping[str, Any] | None = None设备声明的选项,例如 mapping、optimization、amend。
execution_plan / queue_prioritystr = "public" / "stand"执行方案和队列等级。
auto_approve_quote / verbosebool = True / False直接提交时的审价策略,以及等待进度显示。
job_timeout_secondsfloat = 86400.0执行流程等待上限,单位秒。
job_subcategory_id / submitted_withstr = "oth:oth" / "sdk"任务分类和提交来源标记。
input_formatstr | None = NoneOpenQASM 输入版本;明确版本时填写 openqasm2 或 openqasm3。
providerstr | None = None可选厂商标识。

返回:JobSubmissionConfig;effective_shots 返回本次实际 shots。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.prepare_submission

text
prepare_submission(config: JobSubmissionConfig, *, file_content: bytes | None = None, file_path: str | Path | None = None) -> PreparedSubmission

上传输入、校验设备配置并取得报价,返回待确认的实验。

参数类型 / 默认值说明
configJobSubmissionConfig设备、组织、shots 和任务配置。
file_content / file_pathbytes | None / str | Path | None;默认 None选择一个输入入口:UTF-8 程序字节,或已有 QASM 文件路径。

返回:PreparedSubmission。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.PreparedSubmission

text
class PreparedSubmission

由 prepare_submission 返回,保存本次程序、配置及选中的报价。通过 quote 阅读摘要,再使用 confirm() 接受该报价。

返回:返回对象,由 SchedulerClient.prepare_submission 创建。

属性类型 / 内容用途
preparationJobPreparationResultResponsepreparation.id 是本次准备记录与提交查询使用的标识。
quoteQuoteSummary公开报价摘要。
currency / total_amount / shotsstr / Decimal / int本次币种、总金额与 shots。
expires_at_utcstr | None报价有效期。

源码:sdk/src/quantum_source_sdk/quotes.py

quantum_source_sdk.PreparedSubmission.confirm

text
confirm(*, wait: bool = True) -> Any

确认当前报价并请求执行;真机实验按平台报价计费。

参数类型 / 默认值说明
waitbool = TrueTrue 沿提交等待;False 尽快返回任务对象、排队句柄或提交回执。

返回:JobRead、SubmissionReceipt 或 QueuedSubmission,取决于平台当前提交状态。

源码:sdk/src/quantum_source_sdk/quotes.py

quantum_source_sdk.PreparedSubmission.recover

text
recover() -> SubmissionReceipt

按 preparation.id 重新读取原提交状态,适合恢复一次已发起的确认。

返回:SubmissionReceipt。

源码:sdk/src/quantum_source_sdk/quotes.py

quantum_source_sdk.SchedulerClient.submit_job

text
submit_job(config: JobSubmissionConfig, *, file_content: bytes | None = None, file_path: str | Path | None = None) -> JobRead | SubmissionReceipt | QueuedSubmission

合并准备、报价审批和执行流程。auto_approve_quote=True 时自动接受报价;人工审价可使用 prepare_submission 与 confirm。

参数类型 / 默认值说明
configJobSubmissionConfig设备、组织、shots 和任务配置。
file_content / file_pathbytes | None / str | Path | None;默认 None选择一个输入入口:UTF-8 程序字节,或已有 QASM 文件路径。

返回:成功等待后返回 JobRead;提交状态待确认时返回回执或排队句柄。需要审批时 QuoteApprovalRequired.prepared 保留准备对象。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.prepare_submissions

text
prepare_submissions(configs: Sequence[JobSubmissionConfig], *, file_contents: Sequence[bytes]) -> Any

为一组程序分别准备报价并汇总为一个批次。

参数类型 / 默认值说明
configsSequence[JobSubmissionConfig]按程序顺序排列的任务配置。
file_contentsSequence[bytes]与 configs 一一对应的程序字节。

返回:PreparedBatch。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.PreparedBatch

text
class PreparedBatch
confirm(*, wait: bool = True, timeout: float | None = None) -> tuple[Any, ...]
recover(*, wait: bool = False, timeout: float | None = None) -> tuple[Any, ...]

Core 批次对象汇总所有准备任务,confirm 接受已准备的报价,recover 查询已发起的原提交。

参数类型 / 默认值说明
wait / timeoutbool / float | None是否继续等待,以及本次等待秒数。

返回:各项任务或回执组成的 tuple。

属性类型 / 内容用途
quoteQuoteSummary设备、任务数、总 shots、金额、币种及有效期。
task_count / total_shotsint / int当前准备批次实际包含的任务数和采样总数。
submissionstuple各任务的 Core PreparedSubmission。
job_ids / receiptstuple已经取得的任务 ID 与提交回执。
attempted_preparation_ids / unsubmitted_preparation_idstuple[str, ...]已尝试提交与尚未提交的准备记录。

源码:sdk/src/quantum_source_sdk/batch.py

示例:把自己的 QASM 文件准备成一个可审价的实验。传入已经建立的 scheduler、选中的设备和组织 ID;函数返回 prepared,可读取 prepared.quote。

python
from quantum_source_sdk import JobSubmissionConfig

def prepare_qasm_file(scheduler, backend_id, organization_id, file_path):
    config = JobSubmissionConfig(
        backend_class_id=backend_id,
        organization_id=organization_id,
        name="my-qasm-experiment",
        shots=128,
        input_format="openqasm2",
    )
    return scheduler.prepare_submission(config, file_path=file_path)

任务等待与查询

quantum_source_sdk.SchedulerClient.wait_for_job

text
wait_for_job(job_id: str, *, timeout: float | None = None, interval: float | None = None, verbose: bool = False, timeout_seconds: float | None = None) -> JobRead

轮询已有任务,直到 Completed、Failed 或 Canceled 等终态;读取返回对象的 status 判断结果。超时后可沿同一个 job_id 继续等待。

参数类型 / 默认值说明
job_idstr真实任务 ID。
timeoutfloat | None = None本次等待上限;省略时采用客户端 wait_timeout_seconds。
intervalfloat | None = None本次查询间隔;省略时采用 poll_interval_seconds。
verbosebool = False显示状态变化。
timeout_secondsfloat | None = Nonetimeout 的兼容别名;同时填写时使用相同值。

返回:JobRead;超过等待上限时抛出 TimeoutError。单次设置保持客户端默认值不变。

源码:sdk/src/quantum_source_sdk/clients.py

text
scheduler.wait_for_job(job_id, timeout=300, interval=2, verbose=True)

quantum_source_sdk.SchedulerClient.wait_for_submission

text
wait_for_submission(preparation_id: str, *, timeout_seconds: float | None = None, wait_for_completion: bool = True) -> JobRead

用准备记录标识跟踪原提交,取得真实任务后继续等待。

参数类型 / 默认值说明
preparation_idstrprepared.preparation.id 或回执中的原准备 ID。
timeout_secondsfloat | None = None本次等待上限。
wait_for_completionbool = TrueTrue 等待任务完成;False 在取得真实任务对象后返回。

返回:JobRead。超时抛出 TimeoutError,可保留原 ID 再次等待;提交失败或取消,以及等待完成时观察到失败或取消任务,会抛出 RuntimeError。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.get_job

text
get_job(job_id: str) -> JobRead

读取已有任务当前状态。

参数类型 / 默认值说明
job_idstr真实任务 ID。

返回:JobRead。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.get_submission

text
get_submission(preparation_id: str) -> SubmissionReceipt

读取一次准备对应的提交状态。

参数类型 / 默认值说明
preparation_idstr原准备记录 ID。

返回:SubmissionReceipt;job_id 与 job 在平台已建立任务后提供。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.list_jobs

text
list_jobs(organization_id: str | None = None, limit: int = 20, cursor: str | None = None, status: str | None = None) -> PaginatedJobs

按组织和状态分页浏览任务。

参数类型 / 默认值说明
organization_id / statusstr | None = None可选组织 ID 与任务状态筛选。
limitint = 20每页条数。
cursorstr | None = None第一页省略;后续使用上一页 pagination.next_cursor。

返回:PaginatedJobs;条目位于 jobs,下一页位置位于 pagination.next_cursor。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.list_submissions

text
list_submissions(*, limit: int = 50, cursor: str | None = None) -> PaginatedSubmissions

分页浏览当前账号的提交记录,包含尚未取得真实任务号的提交。

参数类型 / 默认值说明
limitint = 50每页记录数。
cursorstr | None = None后续页游标。

返回:PaginatedSubmissions;记录位于 submissions。

源码:sdk/src/quantum_source_sdk/clients.py

取消与连接释放

quantum_source_sdk.SchedulerClient.cancel_job

text
cancel_job(job_id: str) -> None

向平台申请取消尚未领取的提交。

参数类型 / 默认值说明
job_idstr真实任务 ID 或原提交标识。

返回:None;平台拒绝取消时抛出对应 APIError。用 get_submission 查询原提交,或用 get_job 查询真实任务。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.cancel_submission

text
cancel_submission(preparation_id: str) -> SubmissionReceipt

用原准备 ID 申请取消尚在提交链路中的任务。

参数类型 / 默认值说明
preparation_idstr原准备记录 ID。

返回:最新 SubmissionReceipt。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.BaseClient.close

text
close() -> None

释放本地 HTTP 连接。平台任务仍可通过新连接查询;with 语句退出时自动调用。

返回:None。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.download_job_result

text
download_job_result(job: JobRead) -> UnifiedResult

下载并解析统一结果。优先使用任务给出的 output_data_url,也可按任务 ID 访问平台输出接口。

参数类型 / 默认值说明
jobJobRead带有效 id 的任务对象,通常在任务完成后读取结果。

返回:UnifiedResult。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.download_job_output

text
download_job_output(job: JobRead) -> Any

下载任务输出的完整 JSON 响应,保留平台声明的结果通道。

参数类型 / 默认值说明
jobJobRead带有效 id 的任务对象;可包含 output_data_url。

返回:完整响应内容;需要统一结果字段时使用 download_job_result。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.download_job_calibration

text
download_job_calibration(job: JobRead) -> Any

下载任务关联的校准数据。

参数类型 / 默认值说明
jobJobRead提供 calibration_data_url 的任务对象。

返回:校准响应内容。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.UnifiedResult

text
class UnifiedResult
from_payload(payload: Mapping[str, Any]) -> UnifiedResult
to_dict() -> dict[str, Any]

统一结果以 result_kind 标识主要通道,primary_value 返回该通道的数据。

参数类型 / 默认值说明
payloadMapping[str, Any]平台下载的带 result_kind 结果对象。

返回:UnifiedResult;字段类型或结果契约不匹配时抛出 ResultContractError。

属性类型 / 内容用途
result_kindResultKind | strcounts、probabilities、samples、expectation_values 或 raw_provider_result。
counts / probabilitiesMapping | None位串计数或概率。
samples / expectation_valuesSequence | Mapping | None样本序列或期望值。
primary_valueAny当前主要结果。
shots / provider_resultint | None / Mapping | None采样次数与附带的厂商结果信息。

源码:sdk/src/quantum_source_sdk/results.py

quantum_source_sdk.normalize_result_payload

text
normalize_result_payload(payload: Mapping[str, Any]) -> UnifiedResult

将下载的结果对象规范化为 UnifiedResult。

参数类型 / 默认值说明
payloadMapping[str, Any]包含 result_kind 的结果数据。

返回:UnifiedResult。

源码:sdk/src/quantum_source_sdk/results.py

报价与配额

quantum_source_sdk.QuoteSummary

text
class QuoteSummary
to_dict() -> dict[str, Any]

用于审价的公开摘要;金额使用 Decimal,to_dict 将金额输出为字符串。

返回:由准备对象的 quote 属性提供。

属性类型 / 内容用途
backendstuple[str, ...]目标设备。
task_count / total_shotsint / int实际展开的任务数与总 shots。
total_amount / amountDecimal / str总金额及其文本形式。
currency / expires_at_utcstr / str | None币种与有效期。

源码:sdk/src/quantum_source_sdk/quotes.py

报价固定本次程序、设备、shots、配置与币种。新任务采用 public + stand;费用由 prepared.quote 给出。组织最多同时占用 10 个非终态任务名额,平台确认 Completed、Failed 或 Canceled 后释放;申请取消后以平台确认状态为准。platform_active_tasks 统计全平台所有用户在该设备上的任务数,范围为已接受且尚未终态的任务,数值为 None 表示尚未提供统计。

quantum_source_sdk · 设备能力

设备记录与解析函数

quantum_source_sdk.BackendClassRead

text
class BackendClassRead

设备目录和详情的返回模型。通过 get_backend_class 或目录分页取得。

返回:设备记录。

属性类型 / 内容用途
id / short_code / namestr内部标识、用户可选短码、显示名。
status / accepting_jobsstr / bool | None设备状态与是否接收新任务。
num_qubits / supported_formatsint | None / tuple[str, ...]设备宽度与输入格式。
configuration_schemaMapping[str, Any]当前设备选项的类型、默认值及可选范围。
metadata / compilation_modeMapping / str能力原始数据与编译分工。
platform_active_tasksint | None全平台在该设备上尚未确认终态的任务数。

源码:sdk/src/quantum_source_sdk/models.py

quantum_source_sdk.capabilities_from_backend

text
capabilities_from_backend(backend: BackendClassRead) -> BackendCapabilities

在本地解析已有设备记录,适合在读取详情后复用。

参数类型 / 默认值说明
backendBackendClassRead设备记录。

返回:BackendCapabilities。

源码:sdk/src/quantum_source_sdk/backends.py

quantum_source_sdk.get_capabilities

text
get_capabilities(short_code: str, *, scheduler: Any | None = None) -> BackendCapabilities

从平台读取指定设备并解析能力。

参数类型 / 默认值说明
short_codestr当前设备短码。
schedulerSchedulerClient | None = None复用现有连接;省略时临时创建并关闭客户端。

返回:BackendCapabilities。

源码:sdk/src/quantum_source_sdk/backends.py

quantum_source_sdk.fetch_capabilities

text
fetch_capabilities(short_code: str, scheduler: Any) -> BackendCapabilities

使用给定客户端读取设备能力。

参数类型 / 默认值说明
short_code / schedulerstr / SchedulerClient设备短码与现有客户端。

返回:BackendCapabilities。

源码:sdk/src/quantum_source_sdk/backends.py

quantum_source_sdk.list_backends

text
list_backends(*, scheduler: Any | None = None) -> list[str]

读取所有目录页并列出设备短码。

参数类型 / 默认值说明
schedulerSchedulerClient | None = None可复用现有连接。

返回:list[str]。

源码:sdk/src/quantum_source_sdk/backends.py

quantum_source_sdk.capabilities_from_constraint_data

text
capabilities_from_constraint_data(short_code: str, constraint_data: Mapping[str, Any], *, fallback_num_qubits: int | None = None, fallback_formats: tuple[str, ...] = ()) -> BackendCapabilities

将平台能力字典解析为统一模型,适合目录适配和离线能力检查。

参数类型 / 默认值说明
short_code / constraint_datastr / Mapping[str, Any]设备短码与能力数据。
fallback_num_qubits / fallback_formatsint | None / tuple[str, ...]能力字典未提供对应字段时使用的设备记录信息。

返回:BackendCapabilities。

源码:sdk/src/quantum_source_sdk/backends.py

quantum_source_sdk.BackendCapabilities

text
class BackendCapabilities

保存设备快照中的门集、拓扑、功能标签和执行路径声明。通常由能力解析函数创建。

返回:只读能力模型。

属性类型 / 内容用途
supported_ops / supported_gate_namestuple[GateSpec, ...] / set[str]可接收的输入操作及名称。
native_ops / native_gate_namestuple[GateSpec, ...] / set[str]设备公开的原生门及名称。
client_instructionstuple[GateSpec, ...]客户端物理编译可采用的逐门位置声明。
topology / available_qubitsTopology / tuple[int, ...]连接图与当前可用物理位置。
compilation_mode / provider_compilesCompilationMode / bool编译分工;provider_compile 表示保持逻辑线路直到厂商入口。
has_client_targetbool存在显式 client_instructions,且当前并非 provider_compile。
features / limitsfrozenset[str] / dict功能标签与任务限制。
timing / noise / snapshotMapping设备时序、噪声以及快照信息。

源码:sdk/src/quantum_source_sdk/backends.py

quantum_source_sdk.BackendCapabilities.supports_execution_path

text
supports_execution_path(path: str) -> bool

读取平台是否明确声明支持某种输入线路。这是只读能力查询,返回值可用于选择后续准备流程。

参数类型 / 默认值说明
pathstr"logical":逻辑线路,物理映射留给对应编译流程;"physical":已经确定物理位置、按物理线路流程提交的程序。

返回:只有 raw.execution_paths[path].supported 明确为 True 才返回 True;缺少声明或未声明支持时返回 False。其他 path 值抛出 ValueError。

源码:sdk/src/quantum_source_sdk/backends.py

python
def describe_execution_paths(caps):
    return {
        "accepts_logical_circuit": caps.supports_execution_path("logical"),
        "accepts_physical_circuit": caps.supports_execution_path("physical"),
    }

quantum_source_sdk.BackendCapabilities.supports_feature

text
supports_feature(name: str) -> bool

按功能名称查询设备标签。allows_custom_gates、allows_reset、allows_mid_circuit_measure、allows_dynamic_circuits、allows_barriers、allows_physical_qubits 和 allows_verbatim_boxes 提供对应的便捷查询。

参数类型 / 默认值说明
namestr功能名称。

返回:bool。

源码:sdk/src/quantum_source_sdk/backends.py

quantum_source_sdk.BackendCapabilities.supports_format

text
supports_format(name: str) -> bool

按语言家族查询设备是否声明支持该类程序;OpenQASM 2 和 3 都归入 qasm 家族。

参数类型 / 默认值说明
namestr语言家族或格式名称,例如 qasm、openqasm2、openqasm3。

返回:bool。具体 OpenQASM 版本结合 supported_formats 的原始声明查看,并由准备接口校验。

源码:sdk/src/quantum_source_sdk/backends.py

quantum_source_sdk.GateSpec

text
class GateSpec(name: str, arity: int, parameters: tuple[str, ...] = (), qargs: tuple[tuple[int, ...], ...] | None = None)

描述一个操作的名称、作用比特数、参数和可用物理位置。

参数类型 / 默认值说明
name / aritystr / int门名与操作元数。
parameterstuple[str, ...] = ()参数名;params 为同一内容的别名。
qargstuple[tuple[int, ...], ...] | None = None逐门允许使用的物理位置组合。

返回:GateSpec;to_dict() 输出字典。

源码:sdk/src/quantum_source_sdk/backends.py

quantum_source_sdk.Topology

text
class Topology(num_qubits: int | None = None, coupling_map: tuple[tuple[int, int], ...] = (), directed: bool = False, available_qubits: tuple[int, ...] | None = None)

描述设备连接关系。coupling_map 的每对端点表示一条连接;是否有方向由 is_directed 给出。具体门可用位置同时参考 GateSpec.qargs。

参数类型 / 默认值说明
num_qubitsint | None = None设备位置编号空间的宽度。
coupling_maptuple[tuple[int, int], ...] = ()连接边。
directedbool = False连接是否具有方向。
available_qubitstuple[int, ...] | None = None明确的可用位置集合。

返回:Topology;effective_available_qubits 给出解析后的可用位置。

源码:sdk/src/quantum_source_sdk/backends.py

quantum_source_qiskit · 服务与 Backend

服务和设备目录

quantum_source_qiskit.QuantumSourceService

text
class QuantumSourceService(*, token: str | None = None, creds: ClientCredentials | None = None, base_url: str | None = None, currency: str | None = None, management_client: ManagementClient | None = None, scheduler_client: SchedulerClient | None = None, **client_options: Any)

Qiskit 集成入口,连接平台并创建 Backend、Sampler 与 Estimator。

参数类型 / 默认值说明
currencystr | None = NoneOPEN 或 FULL;省略时沿用注入的 SchedulerClient,或为新客户端采用 OPEN。
token / creds / base_url可选平台认证及地址。
management_client / scheduler_client客户端 | None成对传入,复用已有目录与任务连接;采用这些客户端已有的认证和连接设置。
**client_optionsAny新建连接时使用的底层客户端超时等配置。

返回:QuantumSourceService;close() 释放服务持有的连接。

源码:sdk/src/quantum_source_qiskit/service.py

quantum_source_qiskit.QuantumSourceService.organizations

text
organizations() -> list[dict[str, Any]]

读取全部组织页并返回可选组织。

返回:组织字典列表,包含用于后续配置的组织 ID。

源码:sdk/src/quantum_source_qiskit/service.py

quantum_source_qiskit.QuantumSourceService.backends

text
backends(*, name: str | None = None, online: bool | None = None, device_type: str | None = None, vendor_id: str | None = None, min_num_qubits: int | None = None, limit: int = 50) -> list[dict[str, Any]]

读取并筛选设备目录。

参数类型 / 默认值说明
name / online / device_type / vendor_idstr | bool | None按名称、在线状态、设备类型或厂商筛选。
min_num_qubitsint | None = None所需最小比特数。
limitint = 50底层每页读取条数。

返回:设备字典列表;保留 short_code、platform_active_tasks、configuration_schema 等目录信息。

源码:sdk/src/quantum_source_qiskit/service.py

quantum_source_qiskit.QuantumSourceService.return_backend

text
return_backend(name: str, *, config: Mapping[str, Any] | None = None, execution_plan: str | None = None, queue_priority: str | None = None, export_format: str | None = None, capabilities_source: Mapping[str, Any] | str | None = None) -> QuantumSourceBackend

获取指定设备的 Qiskit Backend。

参数类型 / 默认值说明
namestr目录中的设备短码或标识。
configMapping | None = None组织 ID、实验名称及设备配置等 Backend 默认值。
execution_plan / queue_prioritystr | None = None执行方案与队列等级。
export_formatstr | None = None导出格式,如 qasm2、qasm3;省略时按设备能力选择。
capabilities_sourceMapping | str | None = None用于构建设备能力的显式覆盖数据或文件。

返回:QuantumSourceBackend。

源码:sdk/src/quantum_source_qiskit/service.py

quantum_source_qiskit.QuantumSourceService.return_target

text
return_target(name: str, *, capabilities_source: Mapping[str, Any] | str | None = None) -> Target

读取设备并构建 Qiskit Target。

参数类型 / 默认值说明
name / capabilities_sourcestr / Mapping | str | None设备标识和可选能力覆盖。

返回:qiskit.transpiler.Target。

源码:sdk/src/quantum_source_qiskit/service.py

Backend 配置、编译与执行

quantum_source_qiskit.QuantumSourceBackend

text
class QuantumSourceBackend

由 service.return_backend 返回的 BackendV2 对象,衔接线路校验、编译、报价和平台任务。

返回:Qiskit BackendV2 兼容对象。

属性类型 / 内容用途
capabilitiesBackendCapabilities完整平台能力。
configuration_schema / optionsdict / Qiskit Options设备声明的选项与当前有效默认值。
target / coupling_mapTarget / CouplingMap | None客户端编译使用的门指令与连接关系。
available_qubits / max_shots / max_circuitstuple / int | None / int | None可用位置及任务限制。
provider_compiles / compilation_modebool / CompilationMode编译分工。

源码:sdk/src/quantum_source_qiskit/backend.py

quantum_source_qiskit.QuantumSourceBackend.set_options

text
set_options(**fields: Any) -> None

更新该 Backend 后续调用的默认选项。动态设备字段来自 configuration_schema;将某个设备覆盖项设为 None 可恢复对应路径的默认选择。

参数类型 / 默认值说明
**fieldsAny如 shots,以及设备声明的 mapping、optimization、amend。

返回:None。

源码:sdk/src/quantum_source_qiskit/backend.py

quantum_source_qiskit.QuantumSourceBackend.transpile

text
transpile(circuits: Any, *, physical_qubits: Any = None, **transpile_kwargs: Any) -> Any

在本地生成适合目标设备的线路。physical_qubits 或 initial_layout 按逻辑线顺序指定物理位置。

参数类型 / 默认值说明
circuitsQuantumCircuit 或线路序列待编译线路。
physical_qubitsAny = None指定物理编号序列。
**transpile_kwargsAnyQiskit 编译参数,例如 initial_layout、optimization_level。

返回:编译后的 QuantumCircuit 或线路列表。固定布局使用显式物理 Target 与直接连接。

源码:sdk/src/quantum_source_qiskit/backend.py

quantum_source_qiskit.QuantumSourceBackend.validate_circuit

text
validate_circuit(circuit: Any, *, shots: int | None = None, physical_qubits: Any = None, initial_layout: Any = None, _execution_path: str | None = None) -> None

检查线路宽度、shots、所需功能以及布局是否满足当前设备能力。

参数类型 / 默认值说明
circuitQuantumCircuit待检查线路。
shots / physical_qubits / initial_layout可选本次采样次数与布局。
_execution_pathstr | None = NoneSDK 内部路径入口,常规调用保持默认。

返回:校验通过返回 None;不满足能力时抛出对应异常。

源码:sdk/src/quantum_source_qiskit/backend.py

quantum_source_qiskit.QuantumSourceBackend.prepare

text
prepare(circuits: Any, /, *, job_subcategory_id: str | None = None, backend_class_id: str | None = None, organization_id: str | None = None, name: str | None = None, configuration_data: Mapping[str, Any] | None = None, execution_plan: str | None = None, queue_priority: str | None = None, physical_qubits: Any = None, initial_layout: Any = None, **run_options: Any) -> PreparedQuantumSourceJob

为一条或多条 QuantumCircuit 准备完整报价。单次显式配置优先于 Backend 默认值。

参数类型 / 默认值说明
circuitsQuantumCircuit 或线路序列;位置参数本次待执行的线路。
organization_id / name / job_subcategory_idstr | None = None本次组织、名称与分类。
backend_class_idstr | None = None平台设备标识,默认使用当前 Backend。
configuration_dataMapping | None = None本次设备选项的扁平字典。
physical_qubits / initial_layoutAny = None两个等价布局入口,选择其中一个。
execution_plan / queue_prioritystr | None = None继承 Backend 配置。
**run_optionsAnyshots、verbose、job_timeout_seconds 及 schema 声明的动态设备选项。

返回:PreparedQuantumSourceJob,包含全部实际任务的 quote。

源码:sdk/src/quantum_source_qiskit/backend.py

quantum_source_qiskit.QuantumSourceBackend.run

text
run(circuits: Any, /, *, auto_approve_quote: bool | None = None, **run_options: Any) -> QuantumSourceJob | QueuedQuantumSourceJob

直接准备并执行线路。默认自动接受报价;需要逐次审价时使用 prepare 与 confirm。

参数类型 / 默认值说明
circuitsQuantumCircuit 或线路序列本次线路。
auto_approve_quotebool | None = None继承配置,默认自动接受报价。
**run_optionsAnyprepare 支持的单次选项。

返回:QuantumSourceJob 或 QueuedQuantumSourceJob;需要审批时通过 QuoteApprovalRequired.prepared 取得准备对象。

源码:sdk/src/quantum_source_qiskit/backend.py

quantum_source_qiskit.PreparedQuantumSourceJob

text
class PreparedQuantumSourceJob
confirm(*, accepted_quotes: Iterable[tuple[str | None, str | None]] | None = None) -> QuantumSourceJob | QueuedQuantumSourceJob | PreparedSubmissionReceipt
recover() -> QuantumSourceJob | QueuedQuantumSourceJob | PreparedSubmissionReceipt

保存多线路实验的完整报价。confirm 默认接受当前绑定报价;recover 沿原提交查询。

参数类型 / 默认值说明
accepted_quotesIterable[tuple[str | None, str | None]] | None = None显式报价确认标识;常规使用保留默认,直接调用 confirm()。

返回:任务对象或仍在核实中的 PreparedSubmissionReceipt。

属性类型 / 内容用途
quoteQuoteSummary设备、任务数、总 shots、金额、币种及有效期。
task_count / total_shotsint / int当前准备批次实际包含的任务数和采样总数。
submissionstuple各任务的 Core PreparedSubmission。
platform_job_idstuple[str, ...]已取得的真实平台任务 ID。

源码:sdk/src/quantum_source_qiskit/backend.py

quantum_source_qiskit.QuantumSourceJob

text
class QuantumSourceJob
result(timeout: float | None = None, wait: float = 2.0) -> Result
status() -> JobStatus
cancel() -> bool

查询已提交实验并取得 Qiskit 原生 Result。

参数类型 / 默认值说明
timeoutfloat | None = None本次结果等待上限。
waitfloat = 2.0状态查询间隔秒数。

返回:result 返回 qiskit.result.Result,可调用 get_counts();status 返回 JobStatus,cancel 返回取消请求结果。

属性类型 / 内容用途
platform_job_idstuple[str, ...]批次中的真实任务 ID。
job_id()strQiskit 任务标识。

源码:sdk/src/quantum_source_qiskit/job.py

quantum_source_qiskit.build_target

text
build_target(capabilities: BackendCapabilities) -> Target

将平台能力转换为 Qiskit Target,按逐门 qargs 建立物理指令,并采用实际提供的 duration / error 数据。provider_compile 路径保留其逻辑输入语义。

参数类型 / 默认值说明
capabilitiesBackendCapabilities设备能力快照。

返回:Target。

源码:sdk/src/quantum_source_qiskit/target.py

quantum_source_qiskit.export_circuit_to_qasm

text
export_circuit_to_qasm(circuit: Any, fmt: str, *, backend: Any | None = None) -> bytes

将已有 Qiskit 线路导出为程序字节,供文件或 Core 接口复用。

参数类型 / 默认值说明
circuit / fmtQuantumCircuit / str线路与 qasm2 或 qasm3 格式。
backendAny | None = None可选目标设备,用于能力适配。

返回:UTF-8 编码的 bytes。

源码:sdk/src/quantum_source_qiskit/qasm.py

quantum_source_qiskit.circuit_to_qasm

text
circuit_to_qasm(circuit: Any, export_format: str = "qasm3") -> str

将 QuantumCircuit 导出为 OpenQASM 字符串。

参数类型 / 默认值说明
circuitQuantumCircuit输入线路。
export_formatstr = "qasm3"导出版本。

返回:str。

源码:sdk/src/quantum_source_qiskit/qasm.py

quantum_source_qiskit · Sampler 与 Estimator

quantum_source_qiskit.QuantumSourceService.create_sampler

text
create_sampler(*, backend: Any, organization_id: str | None = None, job_subcategory_id: str = "oth:oth", name: str | None = None, configuration_data: Mapping[str, Any] | None = None, execution_plan: str | None = None, queue_priority: str | None = None, export_format: str | None = None, auto_approve_quote: bool | None = None, options: Mapping[str, Any] | None = None) -> QuantumSourceSampler

复用当前服务连接创建 Sampler。SamplerV2 是 QuantumSourceSampler 的导出别名。

参数类型 / 默认值说明
backendBackend 或设备标识要采样的设备。
optionsMapping | None = NoneSampler 默认设置,例如 default_shots。
其余关键字见签名任务、设备配置及报价审批默认值,与 Backend 流程一致。

返回:QuantumSourceSampler。

源码:sdk/src/quantum_source_qiskit/service.py

quantum_source_qiskit.QuantumSourceService.create_estimator

text
create_estimator(*, backend: Any, organization_id: str | None = None, job_subcategory_id: str = "oth:oth", name: str | None = None, configuration_data: Mapping[str, Any] | None = None, execution_plan: str | None = None, queue_priority: str | None = None, export_format: str | None = None, auto_approve_quote: bool | None = None, options: Mapping[str, Any] | None = None) -> QuantumSourceEstimator

复用当前服务连接创建 Estimator。EstimatorV2 是 QuantumSourceEstimator 的导出别名。

参数类型 / 默认值说明
backendBackend 或设备标识执行测量的设备。
optionsMapping | None = NoneEstimator 默认设置,例如 default_precision。
其余关键字见签名任务、设备配置及报价审批默认值。

返回:QuantumSourceEstimator。

源码:sdk/src/quantum_source_qiskit/service.py

quantum_source_qiskit.QuantumSourceSampler.prepare

text
prepare(pubs: Iterable[Any], *, shots: int | None = None, export_format: str | None = None, physical_qubits: Any = None, initial_layout: Any = None, execution_plan: str | None = None, queue_priority: str | None = None, configuration_data: Mapping[str, Any] | None = None, **run_options: Any) -> PreparedQuantumSourcePrimitive

展开 PUB 参数绑定,为每条实际采样线路准备报价。

参数类型 / 默认值说明
shotsint | None = None本次默认 shots;PUB 内显式 shots 优先。
export_formatstr | None = None本次 OpenQASM 导出版本。
pubsIterable[Any]Sampler PUB 为线路或 (线路, 参数值[, shots]);Estimator PUB 为 (线路, 可观测量[, 参数值[, precision]])。
physical_qubits / initial_layoutAny = None选择一个布局入口,将逻辑线分配至指定物理位置。
configuration_dataMapping[str, Any] | None = None单次设备选项,使用设备 configuration_schema 中的字段。
execution_plan / queue_prioritystr | None = None继承构造配置;当前新任务采用 public / stand。
**run_optionsAny传给 Backend 的其他运行选项。

返回:PreparedQuantumSourcePrimitive。确认后的结果为 PrimitiveResult,按经典寄存器提供 BitArray。

源码:sdk/src/quantum_source_qiskit/sampler.py

quantum_source_qiskit.QuantumSourceSampler.run

text
run(pubs: Iterable[Any], *, shots: int | None = None, export_format: str | None = None, auto_approve_quote: bool | None = None, physical_qubits: Any = None, initial_layout: Any = None, execution_plan: str | None = None, queue_priority: str | None = None, configuration_data: Mapping[str, Any] | None = None, **run_options: Any) -> Any

直接准备并执行采样 PUB;结果对象遵循 Qiskit SamplerV2 结构。

参数类型 / 默认值说明
pubs / shotsIterable / int | None与 prepare 相同。
auto_approve_quotebool | None = None本次报价审批策略。
其余关键字见 prepare单次编译与设备选项。

返回:正常返回 QuantumSourcePrimitiveJob,调用 result() 读取结果。待确认时抛出 BatchSubmissionPendingError,使用异常的 prepared 与 receipt 恢复;需要审批时抛出 QuoteApprovalRequired。

源码:sdk/src/quantum_source_qiskit/sampler.py

quantum_source_qiskit.QuantumSourceEstimator.prepare

text
prepare(pubs: Iterable[Any], *, precision: float | None = None, physical_qubits: Any = None, initial_layout: Any = None, execution_plan: str | None = None, queue_priority: str | None = None, configuration_data: Mapping[str, Any] | None = None, **run_options: Any) -> PreparedQuantumSourcePrimitive

将可观测量展开为实际测量任务并准备完整报价。

参数类型 / 默认值说明
precisionfloat | None = None目标统计精度;PUB 内显式精度优先,用于确定采样预算。
pubsIterable[Any]Sampler PUB 为线路或 (线路, 参数值[, shots]);Estimator PUB 为 (线路, 可观测量[, 参数值[, precision]])。
physical_qubits / initial_layoutAny = None选择一个布局入口,将逻辑线分配至指定物理位置。
configuration_dataMapping[str, Any] | None = None单次设备选项,使用设备 configuration_schema 中的字段。
execution_plan / queue_prioritystr | None = None继承构造配置;当前新任务采用 public / stand。
**run_optionsAny传给 Backend 的其他运行选项。

返回:PreparedQuantumSourcePrimitive;确认后的结果 data.evs 为期望值,data.stds 为统计估计。

源码:sdk/src/quantum_source_qiskit/estimator.py

quantum_source_qiskit.QuantumSourceEstimator.run

text
run(pubs: Iterable[Any], *, precision: float | None = None, auto_approve_quote: bool | None = None, physical_qubits: Any = None, initial_layout: Any = None, execution_plan: str | None = None, queue_priority: str | None = None, configuration_data: Mapping[str, Any] | None = None, **run_options: Any) -> Any

直接准备并执行期望值任务。

参数类型 / 默认值说明
pubs / precisionIterable / float | None与 prepare 相同。
auto_approve_quotebool | None = None本次报价审批策略。
其余关键字见 prepare单次编译与设备选项。

返回:正常返回 QuantumSourcePrimitiveJob,调用 result() 读取结果。待确认时抛出 BatchSubmissionPendingError,使用异常的 prepared 与 receipt 恢复;需要审批时抛出 QuoteApprovalRequired。

源码:sdk/src/quantum_source_qiskit/estimator.py

quantum_source_qiskit.PreparedQuantumSourcePrimitive

text
class PreparedQuantumSourcePrimitive
confirm(*, accepted_quotes: Any = None) -> Any
recover() -> Any

保存一次 Sampler / Estimator 调用展开后的完整报价和结果还原规则。

参数类型 / 默认值说明
accepted_quotesAny = None默认确认已绑定报价。

返回:QuantumSourcePrimitiveJob 或 PreparedSubmissionReceipt。

属性类型 / 内容用途
quoteQuoteSummary设备、任务数、总 shots、金额、币种及有效期。
task_count / total_shotsint / int当前准备批次实际包含的任务数和采样总数。
submissionstuple各任务的 Core PreparedSubmission。

源码:sdk/src/quantum_source_qiskit/prepared_primitive.py

quantum_source_qiskit.QuantumSourcePrimitiveJob

text
class QuantumSourcePrimitiveJob
result(timeout: float | None = None) -> Any
status() -> Any
cancel() -> bool

等待底层平台任务并还原 PrimitiveResult。timeout 约束本地等待;稍后可继续读取同一对象。

参数类型 / 默认值说明
timeoutfloat | None = None本次等待上限秒数。

返回:result 返回对应 Sampler / Estimator 的 PrimitiveResult。

属性类型 / 内容用途
platform_job_ids / submission_idstuple[str, ...]平台任务及提交标识。
metadatadict实际任务和结果元数据。

源码:sdk/src/quantum_source_qiskit/prepared_primitive.py

示例:为已有 QuantumCircuit 创建 Sampler 报价。函数返回的 prepared.quote 汇总实际任务;接受报价后调用 prepared.confirm(),再从任务的 result() 读取采样结果。

python
def prepare_sampling(service, backend, circuit, shots=128):
    sampler = service.create_sampler(backend=backend)
    return sampler.prepare([circuit], shots=shots)

quantum_source_pennylane · Device

quantum_source_pennylane.QuantumSourceDevice

text
class QuantumSourceDevice(wires: Any, shots: Any = None, backend: str = "", *, auto_confirm: bool = True, scheduler: Any | None = None, currency: str | None = None, token: str | None = None, client_id: str | None = None, client_secret: str | None = None, base_url: str | None = None, api_url: str | None = None, organization_id: str | None = None, provider: str | None = None, configuration_data: Mapping[str, Any] | None = None, job_subcategory_id: str = "oth:oth", execution_plan: str = "public", queue_priority: str = "stand", auto_approve_quote: bool | None = None, verbose: bool = False, provider_probability_shots: int | None = None, job_timeout_seconds: float = 86400.0, job_name_prefix: str = "pennylane-job")

PennyLane Device,亦可用 qml.device("quantum_source.device", ...) 创建。线路使用逻辑 wires,由插件生成 OpenQASM 并提交平台。

参数类型 / 默认值说明
wires / backendAny / str逻辑 wires 和当前设备 short_code。
shotsAny = None有限 shots 采样,或 shots=None 的概率路径;具体测量支持见设备声明。
auto_confirm / auto_approve_quotebool = True / bool | None = None自动确认开关及其兼容配置入口。
scheduler / currencySchedulerClient | None / str | None复用连接或选择 OPEN / FULL 钱包。
token / client_id / client_secretstr | None平台认证信息;也支持环境凭据。
base_url / api_urlstr | None平台地址及兼容命名入口。
organization_id / providerstr | None组织 ID 与可选厂商。
configuration_dataMapping | None = None按设备 schema 配置云端选项。
execution_plan / queue_prioritystr = "public" / "stand"执行方案与队列等级。
job_subcategory_id / job_name_prefixstr = "oth:oth" / "pennylane-job"任务分类和名称前缀。
verbose / job_timeout_secondsbool = False / float = 86400.0等待状态输出与等待上限。
provider_probability_shotsint | None = None概率路径在厂商侧使用的 shots 预算。

返回:QuantumSourceDevice。

属性类型 / 内容用途
provider_capabilitiesBackendCapabilities平台设备能力;PennyLane capabilities 描述框架操作和测量支持。
featureslist[str]平台功能标签。
job_ids / jobs / submission_receiptstuple已经观察到的任务 ID、任务对象和提交回执。
last_execution_metadatadict本次展开任务数、每任务 shots 和采样语义。

源码:sdk/src/quantum_source_pennylane/device.py

quantum_source_pennylane.QuantumSourceDevice.prepare

text
prepare(circuits: QuantumScript | Sequence[QuantumScript], execution_config: ExecutionConfig | None = None) -> PreparedPennyLaneBatch

冻结当前 QuantumScript 或脚本序列,经预处理后为所有实际任务准备报价。

参数类型 / 默认值说明
circuitsQuantumScript 或脚本序列可通过 qnode.construct(args, kwargs) 取得具体参数下的 tape。
execution_configExecutionConfig | None = NonePennyLane 执行配置。

返回:PreparedPennyLaneBatch,保留原测量结构和还原方法。

源码:sdk/src/quantum_source_pennylane/device.py

quantum_source_pennylane.QuantumSourceDevice.execute

text
execute(circuits: QuantumScript | Sequence[QuantumScript], execution_config: ExecutionConfig | None = None) -> Any

准备并执行当前批次,通常由 QNode 的执行系统调用。

参数类型 / 默认值说明
circuits / execution_config同 prepare当前批次与 PennyLane 执行配置。

返回:与输入脚本及测量结构相对应的结果;需要审批时 QuoteApprovalRequired.prepared 保存当前批次。

源码:sdk/src/quantum_source_pennylane/device.py

quantum_source_pennylane.QuantumSourceDevice.preprocess_transforms

text
preprocess_transforms(execution_config: ExecutionConfig | None = None) -> Any

构建 PennyLane 预处理流程,完成能力校验、观测量处理、测量分组和操作分解。

参数类型 / 默认值说明
execution_configExecutionConfig | None = None本次执行配置。

返回:PennyLane transform program;执行后给出实际脚本和结果还原函数。

源码:sdk/src/quantum_source_pennylane/device.py

quantum_source_pennylane.PreparedPennyLaneBatch

text
class PreparedPennyLaneBatch
confirm(*, wait: bool = True, timeout: float | None = None) -> Any
recover(*, wait: bool = False, timeout: float | None = None) -> Any
result(timeout: float | None = None) -> Any

保存一个具体脚本批次的报价、逻辑程序和测量还原规则。confirm 请求执行,recover 查询原提交,result 等待并还原测量结果。

参数类型 / 默认值说明
wait / timeoutbool / float | None是否等待结果及本次等待秒数。

返回:wait=True 时返回原脚本测量结构;wait=False 保留可继续查询的批次对象。

属性类型 / 内容用途
quoteQuoteSummary设备、任务数、总 shots、金额、币种及有效期。
task_count / total_shotsint / int当前准备批次实际包含的任务数和采样总数。
submissionstuple各任务的 Core PreparedSubmission。
programstuple[str, ...]用于准备报价的 OpenQASM 程序。
job_ids / receipts / created_jobstuple已取得的任务 ID、回执及任务对象。

源码:sdk/src/quantum_source_pennylane/prepared.py

quantum_source_pennylane.QuantumSourceDevice.supports_feature

text
supports_feature(name: str) -> bool

查询平台功能标签。实际 QNode 支持范围同时由 PennyLane 静态能力声明及预处理流程决定。

参数类型 / 默认值说明
namestr功能名称。

返回:bool。allows_custom_gates、allows_reset、allows_mid_circuit_measure、allows_dynamic_circuits、allows_barriers 提供便捷查询。

源码:sdk/src/quantum_source_pennylane/device.py

quantum_source_pennylane.QuantumSourceDevice.refresh_job

text
refresh_job(job_id: str | None = None) -> Any

刷新已提交任务的状态。

参数类型 / 默认值说明
job_idstr | None = None指定任务 ID;省略时使用最近记录的任务。

返回:最新任务对象。

源码:sdk/src/quantum_source_pennylane/device.py

quantum_source_pennylane.QuantumSourceDevice.cancel_job

text
cancel_job(job_id: str | None = None) -> None

向平台申请取消尚未领取的提交。

参数类型 / 默认值说明
job_idstr | None = None提交号或真实任务号;省略时优先使用 last_prepared 中最近已尝试的提交号,其次使用最近任务号。

返回:None。持有提交号时通过 scheduler.get_submission 查询;持有真实任务号时通过 refresh_job 查询。

源码:sdk/src/quantum_source_pennylane/device.py

quantum_source_pennylane.QuantumSourceDevice.close

text
close() -> None

释放设备持有的客户端连接。

返回:None。

源码:sdk/src/quantum_source_pennylane/device.py

示例:将一个 QNode 在具体参数下的线路交给 prepare,报价和返回结果都对应这一次参数取值。

python
def prepare_qnode(qnode, *args, **kwargs):
    tape = qnode.construct(args, kwargs)
    return qnode.device.prepare(tape)

quantum_source_sdk · 底层协议与返回模型

底层接口适用于需要分别管理上传、准备、报价确认和任务创建的应用。高层 prepare_submission 已封装这些步骤。

quantum_source_sdk.SchedulerClient.upload_job_input

text
upload_job_input(*, file_content: bytes | None = None, file_path: str | Path | None = None, execution_plan: str = "public") -> str

上传程序并取得后续准备请求使用的上传标识。

参数类型 / 默认值说明
file_content / file_pathbytes | str | Path | None选择字节或文件路径入口。
execution_planstr = "public"上传对应的执行方案。

返回:upload_endpoint_id 字符串。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.JobPreparationCreate

text
class JobPreparationCreate(organization_id: str | None, backend_class_id: str, name: str, upload_endpoint_id: str, job_subcategory_id: str, shots: int, configuration_data: Mapping[str, Any] | None = None, input_format: str = "qasm", submitted_with: str = "sdk", project_id: str | None = None, currency: str = "OPEN", execution_plan: str = "public", queue_priority: str = "stand")

底层准备请求,关联已经上传的程序和任务配置。

参数类型 / 默认值说明
organization_id / backend_class_id / namestr | None / str / str组织、设备与实验名称。
upload_endpoint_idstrupload_job_input 的返回值。
job_subcategory_id / shotsstr / int任务分类与采样次数。
configuration_data / input_formatMapping | None / str设备配置与程序格式。
currency / execution_plan / queue_prioritystr = "OPEN" / "public" / "stand"本次报价使用的钱包、执行方案和队列等级。
submitted_with / project_idstr = "sdk" / str | None = None提交来源和可选项目。

返回:JobPreparationCreate。

源码:sdk/src/quantum_source_sdk/models.py

quantum_source_sdk.SchedulerClient.prepare_job

text
prepare_job(preparation: JobPreparationCreate) -> JobPreparationResponse

发起底层准备请求。

参数类型 / 默认值说明
preparationJobPreparationCreate完整准备数据。

返回:JobPreparationResponse;id 用于读取准备结果。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.SchedulerClient.get_preparation_result

text
get_preparation_result(preparation_id: str) -> JobPreparationResultResponse

读取准备进度和平台给出的报价方案。

参数类型 / 默认值说明
preparation_idstr准备记录 ID。

返回:JobPreparationResultResponse;status 表示进度,quote 保存可用方案。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.JobCreate

text
class JobCreate(job_preparation_id: str, execution_plan_id: str, queue_priority_id: str, organization_id: str | None = None, accepted_quote_id: str | None = None, accepted_quote_hash: str | None = None, confirm_hardware: bool = False)

底层任务创建请求,将准备结果中的方案、队列及已接受报价关联到一次执行。

参数类型 / 默认值说明
job_preparation_id / execution_plan_id / queue_priority_idstr准备 ID、选中的报价方案 ID 和队列 ID。
organization_idstr | None = None组织 ID。
accepted_quote_id / accepted_quote_hashstr | None = None与本次接受报价一致的标识及摘要。
confirm_hardwarebool = False明确确认真机执行时设为 True。

返回:JobCreate。

源码:sdk/src/quantum_source_sdk/models.py

quantum_source_sdk.SchedulerClient.create_job

text
create_job(job: JobCreate) -> JobRead | SubmissionReceipt

向平台提交已确认的底层请求。

参数类型 / 默认值说明
jobJobCreate完整创建请求。

返回:已建立的 JobRead,或仍在提交中的 SubmissionReceipt。

源码:sdk/src/quantum_source_sdk/clients.py

quantum_source_sdk.JobRead

text
class JobRead

真实平台任务的查询结果。

返回:由任务创建、查询和等待方法返回。

属性类型 / 内容用途
id / status / provider_statusstr / str / str | None任务 ID、平台状态和厂商状态。
backend_class_id / backend_name / shotsstr / str / int目标设备与采样次数。
job_preparation_idstr | None关联准备记录。
output_data_url / calibration_data_urlstr | None结果和校准数据地址。
message / submitted_at / completed_atstr | None状态说明与时间记录。

源码:sdk/src/quantum_source_sdk/models.py

quantum_source_sdk.SubmissionReceipt

text
class SubmissionReceipt

尚在提交或核实阶段的回执,可用原准备 ID 持续查询。

返回:由提交与恢复方法返回。

属性类型 / 内容用途
submission_id / job_preparation_idstr提交标识和准备记录标识。
submission_status / preparation_status / billing_statusstr / str | None / str | None提交、准备和计费进度。
job_id / jobstr | None / JobRead | None取得真实任务后提供。
message / reusedstr | None / bool状态说明及是否复用了已有提交。

源码:sdk/src/quantum_source_sdk/models.py

quantum_source_sdk.QueuedSubmission

text
class QueuedSubmission
refresh() -> SubmissionReceipt
wait(timeout: float | None = None) -> JobRead
result(timeout: float | None = None) -> Any
cancel() -> Any

高层排队句柄,保留提交身份并衔接后续真实任务。

参数类型 / 默认值说明
timeoutfloat | None = None本次等待上限。

返回:refresh 返回回执;wait 返回真实任务;result 下载结果。

源码:sdk/src/quantum_source_sdk/submission.py

异常与恢复

异常可读取内容后续操作
QuoteApprovalRequiredprepared查看 prepared.quote,接受后调用 confirm()。
SubmissionPendingErrorreceipt使用 receipt 的原准备 ID 查询提交。
BatchSubmissionPendingErrorprepared / receipt(按所属包)保留批次并通过 recover() 查询原提交。
APIError 及子类平台错误类型、简短说明;部分流程附带 prepared根据平台返回的条件修正配置或查询原任务。
JobLimitReachedError组织名额相关错误等待现有任务终态后,按业务需要发起新任务。
ResultContractError结果类型或字段校验说明核对 result_kind 和返回数据通道。
TimeoutError本次等待已超过上限保留任务 ID 或批次对象,继续查询同一实验。

异常模型见 sdk/src/quantum_source_sdk/models.py、quotes.py、batch.py 与 results.py;Qiskit 批次异常还定义在 quantum_source_qiskit/backend.py。

常用调用与教程入口

本参考集中描述调用契约。要完成一次实验,可从教程选择设备、构造输入、准备报价,再确认执行和读取结果。

实现与验证索引

下表集中收录各教程原有的接口依据。源码路径相对项目根目录;条目上方的源码位置可用于查阅准确实现。公开接口与内部实现辅助函数分开列示,测试用于验证行为。

主题实现位置验证位置
连接、分页、查询、等待及结果下载sdk/src/quantum_source_sdk/clients.py;models.py;auth.py;results.pybackend/frontend/tests/test_guide_examples.py
高层准备、报价冻结、单任务与批次确认sdk/src/quantum_source_sdk/clients.py:prepare_submission、prepare_submissions;quotes.py;batch.py;submission.pysdk/tests/test_sdk_queued_submissions.py;backend/frontend/tests/test_guide_examples.py
底层上传与任务创建协议sdk/src/quantum_source_sdk/clients.py:upload_job_input、prepare_job、get_preparation_result、create_job;models.py;utils.pybackend/frontend/tests/test_guide_examples.py
设备能力解析、兼容字段、QASM 格式、时序与噪声sdk/src/quantum_source_sdk/backends.py:BackendCapabilities、capabilities_from_backend、capabilities_from_constraint_data、get_capabilities、list_backendssdk/tests/test_openquantum_package_contract.py
设备配置 schema、扁平配置与执行路径sdk/src/quantum_source_sdk/execution_options.py;clients.py:_submission_compiler_configuration;backend/src/quantum_source/compiler_configuration.pysdk/tests/test_device_configuration_options.py;sdk/tests/test_framework_compiler_controls.py
平台能力发布与程序校验backend/src/quantum_source/sdk_gateway/service.py:_backend_payload、_validate_program;本源适配器运行时的 ChipInfo 与执行选项处理sdk/tests/test_selected_device_options.py
Qiskit 目录、详情与服务工厂sdk/src/quantum_source_qiskit/service.py:backends、return_backend、return_target、_backend_dict、create_sampler、create_estimator;service_accounts.pysdk/tests/test_qiskit_dynamic_device_options.py
Options 初始化与单次覆盖sdk/src/quantum_source_qiskit/backend.py:_device_option_defaults、configuration_schema、set_options、preparesdk/tests/test_qiskit_dynamic_device_options.py;sdk/tests/test_selected_device_options.py
Target、门位置、物理布局与导出sdk/src/quantum_source_qiskit/target.py:build_target;backend.py:transpile;qasm.py:resolve_export_format、export_circuit_to_qasmsdk/tests/test_qiskit_dynamic_capability_target.py;backend/frontend/tests/test_guide_qiskit_examples.py
Sampler PUB、shots 与 BitArraysdk/src/quantum_source_qiskit/sampler.py:_coerce_pubs、_prepare、_runsdk/tests/test_qiskit_primitives_alignment.py;backend/frontend/tests/test_guide_qiskit_examples.py
Estimator precision、测量分组和 evs / stdssdk/src/quantum_source_qiskit/estimator.py:prepare、_reducesdk/tests/test_qiskit_primitives_alignment.py
Primitive 等待、状态与恢复sdk/src/quantum_source_qiskit/prepared_primitive.py:QuantumSourcePrimitiveJob、PreparedQuantumSourcePrimitivesdk/tests/test_sdk_queued_submissions.py;backend/frontend/tests/test_guide_qiskit_examples.py
PennyLane 构造、平台能力与逻辑 wiressdk/src/quantum_source_pennylane/device.py:__init__、features、supports_feature、provider_capabilities、_get_backend、_prepare_measurement_tapesdk/tests/test_pennylane_capability_qasm.py;sdk/tests/test_framework_compiler_controls.py
PennyLane 框架操作、设备选项与 QASMsdk/src/quantum_source_pennylane/device_config.toml;device.py:_validate_execution_controls、_build_submission_config;qasm_serializer.pysdk/tests/test_pennylane_capability_qasm.py;backend/frontend/tests/test_guide_pennylane_examples.py
PennyLane 测量分解、shots、广播与梯度sdk/src/quantum_source_pennylane/device.py:preprocess_transforms、prepare、execute、_validate_analytic_contractsdk/tests/test_pennylane_release_feature_acceptance.py
PennyLane 报价、程序快照与结果还原sdk/src/quantum_source_pennylane/prepared.py:quote、task_count、total_shots、programs、confirm、recover、_collect_resultssdk/tests/test_pennylane_release_feature_acceptance.py;backend/frontend/tests/test_guide_pennylane_examples.py

下载本页 Jupyter Notebook

收录本页 Python 示例与说明,便于在 Jupyter Notebook 中学习和运行;安装命令保留为说明。

下载《API 参考》Notebook(.ipynb)

输入关键词;所有搜索都在本机完成。