[docs]classQIHybridJob(QIBaseJob):"""Used internally as a Qiskit job for hybrid algorithms that are fully executed on the Quantum Inspire platform. Not to be used in user code. """def__init__(self,run_input:Union[QuantumCircuit,List[QuantumCircuit]],backend:Union[BackendV2,None],quantum_interface:QuantumInterface,**kwargs:Any,)->None:self._quantum_interface=quantum_interfacesuper().__init__(run_input,backend,**kwargs)
[docs]defstatus(self)->JobStatus:"""Quantum jobs in a hybrid environment are executed synchronously."""returnJobStatus.DONE
[docs]defsubmit(self)->None:options=cast(dict[str,Any],self.backend().options)forcircuit_datainself.circuits_run_data:transpiled_circuit=transpile(circuit_data.circuit,backend=self.backend())result=self._quantum_interface.execute_circuit(cqasm.dumps(transpiled_circuit),options.get("shots"),raw_data_enabled=options.get("memory"))# Store retrieved results in format expected by Jobcircuit_data.results=RawJobResult(id=0,created_on=datetime.now(),job_id=0,metadata_id=0,execution_time_in_seconds=0,shots_requested=result.shots_requested,shots_done=result.shots_done,results=result.results,raw_data=result.raw_data,)