Loading openflexure_microscope/api/app.py +8 −8 Original line number Diff line number Diff line Loading @@ -11,16 +11,16 @@ from datetime import datetime from flask_cors import CORS from openflexure_microscope.api.utilities import list_routes, init_default_plugins from openflexure_microscope.api.utilities import list_routes, init_default_extensions from openflexure_microscope.config import ( settings_file_path, JSONEncoder, USER_PLUGINS_PATH, USER_EXTENSIONS_PATH, ) from openflexure_microscope.common.flask_labthings.labthing import LabThing from openflexure_microscope.common.flask_labthings.plugins import find_plugins from openflexure_microscope.common.flask_labthings.extensions import find_extensions from openflexure_microscope.api.microscope import default_microscope as api_microscope Loading Loading @@ -73,11 +73,11 @@ labthing.title = f"OpenFlexure Microscope {api_microscope.name}" # Attach lab devices labthing.register_device(api_microscope, "openflexure_microscope") # Attach plugins if not os.path.isfile(USER_PLUGINS_PATH): init_default_plugins(USER_PLUGINS_PATH) for plugin in find_plugins(USER_PLUGINS_PATH): labthing.register_plugin(plugin) # Attach extensions if not os.path.isfile(USER_EXTENSIONS_PATH): init_default_extensions(USER_EXTENSIONS_PATH) for extension in find_extensions(USER_EXTENSIONS_PATH): labthing.register_extension(extension) # Attach captures resources labthing.add_resource(views.CaptureList, f"/captures") Loading openflexure_microscope/api/default_plugins/__init__.py→openflexure_microscope/api/default_extensions/__init__.py +0 −0 File moved. openflexure_microscope/api/default_plugins/autofocus.py→openflexure_microscope/api/default_extensions/autofocus.py +10 −10 Original line number Diff line number Diff line from openflexure_microscope.common.flask_labthings.find import find_device from openflexure_microscope.common.flask_labthings.plugins import BasePlugin from openflexure_microscope.common.flask_labthings.extensions import BaseExtension from openflexure_microscope.common.flask_labthings.resource import Resource from openflexure_microscope.devel import JsonResponse, request, jsonify, taskify, abort Loading Loading @@ -139,7 +139,7 @@ def sharpness_edge(image): ) ### Autofocus plugin ### Autofocus extension def measure_sharpness(microscope, metric_fn=sharpness_sum_lap2): Loading Loading @@ -353,15 +353,15 @@ class FastAutofocusAPI(Resource): abort(503, "No stage connected. Unable to autofocus.") autofocus_plugin_v2 = BasePlugin("autofocus") autofocus_extension_v2 = BaseExtension("autofocus") autofocus_plugin_v2.add_method(fast_autofocus, "fast_autofocus") autofocus_plugin_v2.add_method(autofocus, "autofocus") autofocus_extension_v2.add_method(fast_autofocus, "fast_autofocus") autofocus_extension_v2.add_method(autofocus, "autofocus") autofocus_plugin_v2.add_view(MeasureSharpnessAPI, "/measure_sharpness") autofocus_extension_v2.add_view(MeasureSharpnessAPI, "/measure_sharpness") autofocus_plugin_v2.add_view(AutofocusAPI, "/autofocus") autofocus_plugin_v2.register_action(AutofocusAPI) autofocus_extension_v2.add_view(AutofocusAPI, "/autofocus") autofocus_extension_v2.register_action(AutofocusAPI) autofocus_plugin_v2.add_view(FastAutofocusAPI, "/fast_autofocus") autofocus_plugin_v2.register_action(FastAutofocusAPI) autofocus_extension_v2.add_view(FastAutofocusAPI, "/fast_autofocus") autofocus_extension_v2.register_action(FastAutofocusAPI) openflexure_microscope/api/default_plugins/scan.py→openflexure_microscope/api/default_extensions/scan.py +9 −9 Original line number Diff line number Diff line Loading @@ -6,8 +6,8 @@ from typing import Tuple from functools import reduce from openflexure_microscope.camera.base import generate_basename from openflexure_microscope.common.flask_labthings.find import find_device, find_plugin from openflexure_microscope.common.flask_labthings.plugins import BasePlugin from openflexure_microscope.common.flask_labthings.find import find_device, find_extension from openflexure_microscope.common.flask_labthings.extensions import BaseExtension from openflexure_microscope.devel import ( JsonResponse, Loading Loading @@ -169,10 +169,10 @@ def tile( ) # Check if autofocus is enabled autofocus_plugin = find_plugin("autofocus") autofocus_extension = find_extension("autofocus") if ( autofocus_dz and autofocus_plugin and autofocus_extension and microscope.has_real_stage() and microscope.has_real_camera() ): Loading Loading @@ -211,7 +211,7 @@ def tile( # Refocus if autofocus_enabled: if fast_autofocus: autofocus_plugin.fast_autofocus( autofocus_extension.fast_autofocus( dz=autofocus_dz, target_z=-z_stack_dz / 2.0, # Finish below the focus initial_move_up=False, # We're already at the top of the scan Loading @@ -219,7 +219,7 @@ def tile( # TODO: save the focus data for future reference? Use it for diagnostics? else: logging.debug("Running autofocus") autofocus_plugin.autofocus( autofocus_extension.autofocus( range(-3 * autofocus_dz, 4 * autofocus_dz, autofocus_dz) ) logging.debug("Finished autofocus") Loading Loading @@ -398,7 +398,7 @@ class TileScanAPI(Resource): return jsonify(task.state), 201 scan_plugin_v2 = BasePlugin("scan") scan_extension_v2 = BaseExtension("scan") scan_plugin_v2.add_view(TileScanAPI, "/tile") scan_plugin_v2.register_action(TileScanAPI) scan_extension_v2.add_view(TileScanAPI, "/tile") scan_extension_v2.register_action(TileScanAPI) openflexure_microscope/api/utilities.py +13 −13 Original line number Diff line number Diff line Loading @@ -108,22 +108,22 @@ def create_file(config_path): raise def init_default_plugins(plugin_path): global _DEFAULT_PLUGIN_INIT os.makedirs(os.path.dirname(plugin_path), exist_ok=True) def init_default_extensions(extension_path): global _DEFAULT_extension_INIT os.makedirs(os.path.dirname(extension_path), exist_ok=True) if not os.path.exists(plugin_path): # If user plugins file doesn't exist logging.warning("No plugin file found at {}. Creating...".format(plugin_path)) create_file(plugin_path) if not os.path.exists(extension_path): # If user extensions file doesn't exist logging.warning("No extension file found at {}. Creating...".format(extension_path)) create_file(extension_path) logging.info("Populating {}...".format(plugin_path)) with open(plugin_path, "w") as outfile: outfile.write(_DEFAULT_PLUGIN_INIT) logging.info("Populating {}...".format(extension_path)) with open(extension_path, "w") as outfile: outfile.write(_DEFAULT_extension_INIT) _DEFAULT_PLUGIN_INIT = """ from openflexure_microscope.api.default_plugins.autofocus import autofocus_plugin_v2 from openflexure_microscope.api.default_plugins.scan import scan_plugin_v2 _DEFAULT_extension_INIT = """ from openflexure_microscope.api.default_extensions.autofocus import autofocus_extension_v2 from openflexure_microscope.api.default_extensions.scan import scan_extension_v2 __plugins__ = [autofocus_plugin_v2, scan_plugin_v2] __extensions__ = [autofocus_extension_v2, scan_extension_v2] """ Loading
openflexure_microscope/api/app.py +8 −8 Original line number Diff line number Diff line Loading @@ -11,16 +11,16 @@ from datetime import datetime from flask_cors import CORS from openflexure_microscope.api.utilities import list_routes, init_default_plugins from openflexure_microscope.api.utilities import list_routes, init_default_extensions from openflexure_microscope.config import ( settings_file_path, JSONEncoder, USER_PLUGINS_PATH, USER_EXTENSIONS_PATH, ) from openflexure_microscope.common.flask_labthings.labthing import LabThing from openflexure_microscope.common.flask_labthings.plugins import find_plugins from openflexure_microscope.common.flask_labthings.extensions import find_extensions from openflexure_microscope.api.microscope import default_microscope as api_microscope Loading Loading @@ -73,11 +73,11 @@ labthing.title = f"OpenFlexure Microscope {api_microscope.name}" # Attach lab devices labthing.register_device(api_microscope, "openflexure_microscope") # Attach plugins if not os.path.isfile(USER_PLUGINS_PATH): init_default_plugins(USER_PLUGINS_PATH) for plugin in find_plugins(USER_PLUGINS_PATH): labthing.register_plugin(plugin) # Attach extensions if not os.path.isfile(USER_EXTENSIONS_PATH): init_default_extensions(USER_EXTENSIONS_PATH) for extension in find_extensions(USER_EXTENSIONS_PATH): labthing.register_extension(extension) # Attach captures resources labthing.add_resource(views.CaptureList, f"/captures") Loading
openflexure_microscope/api/default_plugins/__init__.py→openflexure_microscope/api/default_extensions/__init__.py +0 −0 File moved.
openflexure_microscope/api/default_plugins/autofocus.py→openflexure_microscope/api/default_extensions/autofocus.py +10 −10 Original line number Diff line number Diff line from openflexure_microscope.common.flask_labthings.find import find_device from openflexure_microscope.common.flask_labthings.plugins import BasePlugin from openflexure_microscope.common.flask_labthings.extensions import BaseExtension from openflexure_microscope.common.flask_labthings.resource import Resource from openflexure_microscope.devel import JsonResponse, request, jsonify, taskify, abort Loading Loading @@ -139,7 +139,7 @@ def sharpness_edge(image): ) ### Autofocus plugin ### Autofocus extension def measure_sharpness(microscope, metric_fn=sharpness_sum_lap2): Loading Loading @@ -353,15 +353,15 @@ class FastAutofocusAPI(Resource): abort(503, "No stage connected. Unable to autofocus.") autofocus_plugin_v2 = BasePlugin("autofocus") autofocus_extension_v2 = BaseExtension("autofocus") autofocus_plugin_v2.add_method(fast_autofocus, "fast_autofocus") autofocus_plugin_v2.add_method(autofocus, "autofocus") autofocus_extension_v2.add_method(fast_autofocus, "fast_autofocus") autofocus_extension_v2.add_method(autofocus, "autofocus") autofocus_plugin_v2.add_view(MeasureSharpnessAPI, "/measure_sharpness") autofocus_extension_v2.add_view(MeasureSharpnessAPI, "/measure_sharpness") autofocus_plugin_v2.add_view(AutofocusAPI, "/autofocus") autofocus_plugin_v2.register_action(AutofocusAPI) autofocus_extension_v2.add_view(AutofocusAPI, "/autofocus") autofocus_extension_v2.register_action(AutofocusAPI) autofocus_plugin_v2.add_view(FastAutofocusAPI, "/fast_autofocus") autofocus_plugin_v2.register_action(FastAutofocusAPI) autofocus_extension_v2.add_view(FastAutofocusAPI, "/fast_autofocus") autofocus_extension_v2.register_action(FastAutofocusAPI)
openflexure_microscope/api/default_plugins/scan.py→openflexure_microscope/api/default_extensions/scan.py +9 −9 Original line number Diff line number Diff line Loading @@ -6,8 +6,8 @@ from typing import Tuple from functools import reduce from openflexure_microscope.camera.base import generate_basename from openflexure_microscope.common.flask_labthings.find import find_device, find_plugin from openflexure_microscope.common.flask_labthings.plugins import BasePlugin from openflexure_microscope.common.flask_labthings.find import find_device, find_extension from openflexure_microscope.common.flask_labthings.extensions import BaseExtension from openflexure_microscope.devel import ( JsonResponse, Loading Loading @@ -169,10 +169,10 @@ def tile( ) # Check if autofocus is enabled autofocus_plugin = find_plugin("autofocus") autofocus_extension = find_extension("autofocus") if ( autofocus_dz and autofocus_plugin and autofocus_extension and microscope.has_real_stage() and microscope.has_real_camera() ): Loading Loading @@ -211,7 +211,7 @@ def tile( # Refocus if autofocus_enabled: if fast_autofocus: autofocus_plugin.fast_autofocus( autofocus_extension.fast_autofocus( dz=autofocus_dz, target_z=-z_stack_dz / 2.0, # Finish below the focus initial_move_up=False, # We're already at the top of the scan Loading @@ -219,7 +219,7 @@ def tile( # TODO: save the focus data for future reference? Use it for diagnostics? else: logging.debug("Running autofocus") autofocus_plugin.autofocus( autofocus_extension.autofocus( range(-3 * autofocus_dz, 4 * autofocus_dz, autofocus_dz) ) logging.debug("Finished autofocus") Loading Loading @@ -398,7 +398,7 @@ class TileScanAPI(Resource): return jsonify(task.state), 201 scan_plugin_v2 = BasePlugin("scan") scan_extension_v2 = BaseExtension("scan") scan_plugin_v2.add_view(TileScanAPI, "/tile") scan_plugin_v2.register_action(TileScanAPI) scan_extension_v2.add_view(TileScanAPI, "/tile") scan_extension_v2.register_action(TileScanAPI)
openflexure_microscope/api/utilities.py +13 −13 Original line number Diff line number Diff line Loading @@ -108,22 +108,22 @@ def create_file(config_path): raise def init_default_plugins(plugin_path): global _DEFAULT_PLUGIN_INIT os.makedirs(os.path.dirname(plugin_path), exist_ok=True) def init_default_extensions(extension_path): global _DEFAULT_extension_INIT os.makedirs(os.path.dirname(extension_path), exist_ok=True) if not os.path.exists(plugin_path): # If user plugins file doesn't exist logging.warning("No plugin file found at {}. Creating...".format(plugin_path)) create_file(plugin_path) if not os.path.exists(extension_path): # If user extensions file doesn't exist logging.warning("No extension file found at {}. Creating...".format(extension_path)) create_file(extension_path) logging.info("Populating {}...".format(plugin_path)) with open(plugin_path, "w") as outfile: outfile.write(_DEFAULT_PLUGIN_INIT) logging.info("Populating {}...".format(extension_path)) with open(extension_path, "w") as outfile: outfile.write(_DEFAULT_extension_INIT) _DEFAULT_PLUGIN_INIT = """ from openflexure_microscope.api.default_plugins.autofocus import autofocus_plugin_v2 from openflexure_microscope.api.default_plugins.scan import scan_plugin_v2 _DEFAULT_extension_INIT = """ from openflexure_microscope.api.default_extensions.autofocus import autofocus_extension_v2 from openflexure_microscope.api.default_extensions.scan import scan_extension_v2 __plugins__ = [autofocus_plugin_v2, scan_plugin_v2] __extensions__ = [autofocus_extension_v2, scan_extension_v2] """