From 5cfd193b02d7b7c33867b9c9cab0be93a9dd94a4 Mon Sep 17 00:00:00 2001 From: ASPP Student Date: Wed, 4 Sep 2019 13:07:14 +0200 Subject: [PATCH] Added context managar for sample insertion --- .../hands_on/1_microscope_script.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/notebook/context manager/hands_on/1_microscope_script.py b/notebook/context manager/hands_on/1_microscope_script.py index 78e59f1..3ea2e00 100644 --- a/notebook/context manager/hands_on/1_microscope_script.py +++ b/notebook/context manager/hands_on/1_microscope_script.py @@ -14,6 +14,13 @@ scan_sample, # Scan sample currently in the microscope ) +@contextmanager +def sample_inserted(microscope_state): + insert_sample(microscope_state) + try: + yield + finally: + remove_sample(microscope_state) @contextmanager def do_stuff_under_vacuum(microscope_state): @@ -33,14 +40,8 @@ def do_stuff_under_vacuum(microscope_state): # Rewrite this script using the two context managers. microscope_state = connect_to_microscope() -activate_vacuum_pump(microscope_state) -try: - insert_sample(microscope_state) - try: +with do_stuff_under_vacuum(microscope_state): + with sample_inserted(microscope_state): sample_image = scan_sample(microscope_state) - finally: - remove_sample(microscope_state) -finally: - deactivate_vacuum_pump(microscope_state) release_microscope(microscope_state)