BasePrimitiveJob
class qiskit.primitives.BasePrimitiveJob(job_id, **kwargs)
Bases : ABC, Generic[ResultT, StatusT]
Classe de base abstraite de l'emploi primitif.
Cela définit la fonctionnalité de l'objet « job handle » que vous obtenez en appelant primitive.run(). En général, cet objet représente un descripteur vers une tâche asynchrone, où les méthodes status(), done(), running()in_final_state() , cancelled() et renvoient des informations non bloquantes sur l'état de la tâche.
La méthode result() est généralement implémentée sous la forme d'un appel bloquant qui attend le retour du résultat de l'exécution. L'utilisation de cet objet de travail aboutit presque invariablement à un appel à result().
Il s'agit d'une classe de base abstraite, définissant une interface. Chaque fournisseur de primitives (par exemple, qiskit_aer ou qiskit_ibm_runtime) aura sa propre sous-classe de cet objet, qui pourra fournir des fonctionnalités supplémentaires en plus de cette interface.
Sous-classification
Chaque implémenteur des primitives doit fournir une implémentation concrète de cette interface. Il n'y a pas de méthodes fournies dans l'implémentation de base, à l'exception du job_id() getter, car une clé de chaîne identifiant de manière unique les tâches est une exigence de toutes les primitives.
Le type ResultT générique doit être défini comme une sous-classe du résultat primitif versionné approprié. Cela signifie généralement le définir sur PrimitiveResult (pour V2 ), ou une sous-classe spécifique à l'implémentation de celle-ci.
Le type StatusT générique est entièrement libre; votre implémentation peut fournir n'importe quel objet d'état de votre choix et il n'y a pas d'interface définie. Au lieu de cela, done()les méthodes, running(), cancelled()in_final_state() et de cette interface doivent être implémentées afin de fournir à l'utilisateur un accès programmatique simple aux informations d'état à gros grains. Vous pouvez fournir des détails supplémentaires dans le générique StatusT complet.
La création de ce descripteur de « tâche » est généralement censée (mais pas strictement requise ) être rapide et non bloquante, et cet objet doit contenir un descripteur asynchrone interne vers la tâche réelle. La result() méthode doit généralement bloquer jusqu'à ce qu'elle soit prête, si elle est appelée avant que la tâche soit terminée.
Initialise le travail primitif.
param job_id
Identifiant unique dans le contexte de la primitive utilisée pour exécuter la tâche.
param kwargs
Toute métadonnée de valeur clé à associer à cette tâche.
Méthodes
cancel
cancelled
done
in_final_state
abstractmethod in_final_state()
Indique si le travail est dans un état final tel que DONE ou ERROR.
Type de retour
job_id
result
running
status
Paramètres
job_id (str)