Renamed LabThing plugins to extensions
This commit is contained in:
parent
d96e188d16
commit
2a245185a6
10 changed files with 89 additions and 89 deletions
|
|
@ -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
|
||||
|
||||
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
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
|
||||
|
|
@ -139,7 +139,7 @@ def sharpness_edge(image):
|
|||
)
|
||||
|
||||
|
||||
### Autofocus plugin
|
||||
### Autofocus extension
|
||||
|
||||
|
||||
def measure_sharpness(microscope, metric_fn=sharpness_sum_lap2):
|
||||
|
|
@ -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)
|
||||
|
|
@ -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,
|
||||
|
|
@ -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()
|
||||
):
|
||||
|
|
@ -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
|
||||
|
|
@ -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")
|
||||
|
|
@ -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)
|
||||
|
|
@ -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…
Add table
Add a link
Reference in a new issue