Ejemplos#
El repositorio fuente incluye ejemplos ejecutables en la carpeta examples/.
Si instalaste el SDK desde PyPI con pip install qcentroid-sdk, normalmente no tendrás disponible esa carpeta local examples/ en tu entorno.
En ese caso, usa los snippets de código de esta documentación como punto de partida para tus propios scripts.
Listar jobs#
Archivo: examples/list_jobs.py
Este ejemplo se autentica con QCentroid e imprime jobs recientes.
from qcentroid_sdk import QCentroidClient
QCENTROID_API_KEY = "-- your api key --"
def main() -> None:
client = QCentroidClient(
api_key=QCENTROID_API_KEY,
)
jobs_page = client.jobs.list(limit=10)
print(f"Retrieved {len(jobs_page.value)} jobs")
if jobs_page.count is not None:
print(f"Reported count: {jobs_page.count}")
for job in jobs_page.value:
print(
f"- name={job.name} status={job.status} started_at={job.started_at}"
)
if __name__ == "__main__":
main()
Ejecutar un job con datos inline#
Archivo: examples/run_job_inline.py
Este ejemplo lanza un job pasando el payload de entrada directamente en la petición.
from qcentroid_sdk import QCentroidClient
QCENTROID_API_KEY = "-- your api key --"
USE_CASE_NAME = "qcentroid-example-1-sum"
SOLVER_NAME = "QCentroid-OscarSolver-Example1Sum-ClassicalCPU"
def main() -> None:
client = QCentroidClient(
api_key=QCENTROID_API_KEY,
)
job = client.jobs.run(
use_case_name=USE_CASE_NAME,
data={"a": 2, "b": 3},
solvers=[{"name": SOLVER_NAME}],
num_shots=1,
job_description="Run a job with inline data using the QCentroid SDK",
)
print(f"Job launched successfully: {job.job_name}")
if __name__ == "__main__":
main()
Ejecutar un job con un dataset existente#
Archivo: examples/run_job_dataset.py
Este ejemplo lanza un job usando el identificador de archivo de un dataset subido previamente.
from qcentroid_sdk import QCentroidClient
QCENTROID_API_KEY = "-- your api key --"
USE_CASE_NAME = "qcentroid-example-1-sum"
SOLVER_NAME = "QCentroid-OscarSolver-Example1Sum-ClassicalCPU"
DATASET_IDENTIFIER = "-- existing dataset file identifier --"
SOLVERS_PROVIDER_PARAMS = {SOLVER_NAME: {}}
MAX_EXEC_TIME_M = 0
def main() -> None:
client = QCentroidClient(
api_key=QCENTROID_API_KEY,
)
job = client.jobs.run(
use_case_name=USE_CASE_NAME,
dataset_id=DATASET_IDENTIFIER,
solvers=[{"name": SOLVER_NAME}],
num_shots=1,
job_description="Run a job with an existing dataset using the QCentroid SDK",
solvers_provider_params=SOLVERS_PROVIDER_PARAMS,
max_exec_time_m=MAX_EXEC_TIME_M,
)
print(f"Job launched successfully: {job.job_name}")
if __name__ == "__main__":
main()
Esperar a que un job finalice#
También puedes esperar a que un job lanzado alcance un estado terminal:
job = client.jobs.run(
use_case_name="qcentroid-example-1-sum",
data={"a": 2, "b": 3},
solvers=[{"name": "QCentroid-OscarSolver-Example1Sum-ClassicalCPU"}],
num_shots=1,
)
finished_job = client.jobs.wait_for_completion(job.job_name)
print(finished_job.name, finished_job.status)
Placeholders de credenciales#
Los scripts de ejemplo usan placeholders como:
QCENTROID_API_KEY = "-- your api key --"
Sustitúyelo por tu propia API key antes de ejecutar los ejemplos.
Entorno por defecto#
Los ejemplos no pasan un entorno explícito, por lo que usan el valor por defecto del SDK:
environment="sandbox"
Si quieres apuntar a otro entorno, pásalo al construir el cliente:
client = QCentroidClient(
environment="dev",
api_key=QCENTROID_API_KEY,
)