Skip to content

Commit

Permalink
Update tutorials (Qiskit#65)
Browse files Browse the repository at this point in the history
* update tutorials

* return final result

* fix test

* use returned result

* lint fix

* add to docstring

* add return type

Co-authored-by: Lucy-Xing <Lucy.Xing@ibm.com>
  • Loading branch information
LucyXing and LucyXing authored Sep 1, 2021
1 parent 908e819 commit f08ab04
Show file tree
Hide file tree
Showing 7 changed files with 270 additions and 333 deletions.
4 changes: 2 additions & 2 deletions qiskit_runtime/circuit_runner/circuit_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

def main(
backend,
user_messenger,
user_messenger, # pylint: disable=unused-argument
circuits,
initial_layout=None,
seed_transpiler=None,
Expand Down Expand Up @@ -65,4 +65,4 @@ def main(
# Performs measurement error mitigation.
pass

user_messenger.publish(result.to_dict(), final=True)
return result.to_dict()
2 changes: 1 addition & 1 deletion qiskit_runtime/qka/qka.py
Original file line number Diff line number Diff line change
Expand Up @@ -515,4 +515,4 @@ def main(backend, user_messenger, **kwargs):
C=C,
)

user_messenger.publish(qka_results, final=True)
return qka_results
8 changes: 6 additions & 2 deletions qiskit_runtime/sample_program/sample_program.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"""A sample runtime program that submits random circuits for user-specified iterations."""

import random
from typing import Any

from qiskit import transpile
from qiskit.circuit.random import random_circuit
Expand All @@ -31,19 +32,22 @@ def prepare_circuits(backend):
return transpile(circuit, backend)


def main(backend, user_messenger, **kwargs):
def main(backend, user_messenger, **kwargs) -> Any:
"""Main entry point of the program.
Args:
backend (qiskit.providers.Backend): Backend to submit the circuits to.
user_messenger (qiskit.providers.ibmq.runtime.UserMessenger): Used to communicate with the
program consumer.
kwargs: User inputs.
Returns:
Final result of the program.
"""
iterations = kwargs.pop("iterations", 5)
for it in range(iterations):
qc = prepare_circuits(backend)
result = backend.run(qc).result()
user_messenger.publish({"iteration": it, "counts": result.get_counts()})

user_messenger.publish("All done!", final=True)
return "All done!"
6 changes: 3 additions & 3 deletions test/circuit_runner/test_circuit_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ def test_circuit_runner(self):
}
serialized_inputs = json.dumps(inputs, cls=RuntimeEncoder)
unserialized_inputs = json.loads(serialized_inputs, cls=RuntimeDecoder)
circuit_runner.main(
result = circuit_runner.main(
backend=self.backend, user_messenger=self.user_messenger, **unserialized_inputs
)
self.assertEqual(self.user_messenger.call_count, 1)
self.assertTrue(isinstance(Result.from_dict(self.user_messenger.message), Result))
self.assertEqual(self.user_messenger.call_count, 0)
self.assertTrue(isinstance(Result.from_dict(result), Result))
2 changes: 1 addition & 1 deletion test/sample_program/test_sample_program.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@ def test_sample_program(self):
serialized_inputs = json.dumps(inputs, cls=RuntimeEncoder)
unserialized_inputs = json.loads(serialized_inputs, cls=RuntimeDecoder)
sample_program.main(self.backend, self.user_messenger, **unserialized_inputs)
self.assertEqual(self.user_messenger.call_count, inputs["iterations"] + 1)
self.assertEqual(self.user_messenger.call_count, inputs["iterations"])
Loading

0 comments on commit f08ab04

Please sign in to comment.