Loading openflexure_microscope/common/flask_labthings/extensions.py +14 −6 Original line number Diff line number Diff line import logging import collections import copy import traceback from importlib import util import sys Loading @@ -20,6 +21,7 @@ class BaseExtension: Handles binding route views and forms. """ # TODO: Allow adding components to extensions def __init__(self, name: str, description="", version="0.0.0"): Loading Loading @@ -113,15 +115,21 @@ def find_instances_in_module(module, class_to_find): return objs def find_extensions_in_file(extension_path: str, module_name="extensions"): def find_extensions_in_file(extension_path: str, module_name="extensions") -> list: logging.debug(f"Loading extensions from {extension_path}") spec = util.spec_from_file_location(module_name, extension_path) mod = util.module_from_spec(spec) sys.modules[spec.name] = mod try: spec.loader.exec_module(mod) except Exception as e: logging.error( f"Exception in extension path {extension_path}: \n{traceback.format_exc()}" ) return [] else: if hasattr(mod, "__extensions__"): return [getattr(mod, ext_name) for ext_name in mod.__extensions__] else: Loading Loading
openflexure_microscope/common/flask_labthings/extensions.py +14 −6 Original line number Diff line number Diff line import logging import collections import copy import traceback from importlib import util import sys Loading @@ -20,6 +21,7 @@ class BaseExtension: Handles binding route views and forms. """ # TODO: Allow adding components to extensions def __init__(self, name: str, description="", version="0.0.0"): Loading Loading @@ -113,15 +115,21 @@ def find_instances_in_module(module, class_to_find): return objs def find_extensions_in_file(extension_path: str, module_name="extensions"): def find_extensions_in_file(extension_path: str, module_name="extensions") -> list: logging.debug(f"Loading extensions from {extension_path}") spec = util.spec_from_file_location(module_name, extension_path) mod = util.module_from_spec(spec) sys.modules[spec.name] = mod try: spec.loader.exec_module(mod) except Exception as e: logging.error( f"Exception in extension path {extension_path}: \n{traceback.format_exc()}" ) return [] else: if hasattr(mod, "__extensions__"): return [getattr(mod, ext_name) for ext_name in mod.__extensions__] else: Loading