Loading openflexure_microscope/api/app.py +13 −4 Original line number Diff line number Diff line Loading @@ -15,7 +15,12 @@ from flask_cors import CORS, cross_origin from openflexure_microscope.api.utilities import list_routes, init_default_extensions from openflexure_microscope.config import JSONEncoder from openflexure_microscope.paths import EXTENSIONS_PATH, settings_file_path from openflexure_microscope.paths import ( OPENFLEXURE_ETC_PATH, OPENFLEXURE_VAR_PATH, OPENFLEXURE_EXTENSIONS_PATH, settings_file_path, ) from openflexure_microscope.common.flask_labthings.quick import create_app from openflexure_microscope.common.flask_labthings.extensions import find_extensions Loading Loading @@ -53,6 +58,10 @@ else: logger.setLevel(logging.getLogger("gunicorn.error").level) # Log server paths being used logging.info(f"Running with data path {OPENFLEXURE_VAR_PATH}") logging.info(f"Running with server path {OPENFLEXURE_ETC_PATH}") # Create flask app app, labthing = create_app( __name__, Loading @@ -72,9 +81,9 @@ app.json_encoder = JSONEncoder labthing.add_component(api_microscope, "org.openflexure.microscope") # Attach extensions if not os.path.isfile(EXTENSIONS_PATH): init_default_extensions(EXTENSIONS_PATH) for extension in find_extensions(EXTENSIONS_PATH): if not os.path.isfile(OPENFLEXURE_EXTENSIONS_PATH): init_default_extensions(OPENFLEXURE_EXTENSIONS_PATH) for extension in find_extensions(OPENFLEXURE_EXTENSIONS_PATH): labthing.register_extension(extension) # Attach captures resources Loading openflexure_microscope/paths.py +21 −34 Original line number Diff line number Diff line import os import logging # HANDLE DEFAULTS FILES STORED IN THIS APPLICATION # UTILITIES HERE = os.path.abspath(os.path.dirname(__file__)) #: Path of default (first-run) microscope settings DEFAULT_CONFIG_FILE_PATH = os.path.join(HERE, "microscope_settings.default.json") def check_rw(path): return os.access(path, os.W_OK) and os.access(path, os.R_OK) # HANDLE WINDOWS BASE PATHS """ if os.name == "nt": VAR_PATH = os.getenv("PROGRAMDATA") or "C:\\ProgramData" else: if os.access("/var", os.W_OK) and os.access("/var", os.R_OK): VAR_PATH = "/var" else: VAR_PATH = os.path.expanduser("~") OPENFLEXURE_VAR_PATH = os.path.join(VAR_PATH, "openflexure") print(f"Running with server settings directory {OPENFLEXURE_VAR_PATH}") """ def settings_file_path(filename: str): """Generate a full file path for a filename to be stored in server settings folder""" return os.path.join(OPENFLEXURE_ETC_PATH, filename) def check_rw(path): return os.access(path, os.W_OK) and os.access(path, os.R_OK) def data_file_path(filename: str): """Generate a full file path for a filename to be stored in server data folder""" return os.path.join(OPENFLEXURE_VAR_PATH, filename) # HANDLE DEFAULTS FILES STORED IN THIS APPLICATION HERE = os.path.abspath(os.path.dirname(__file__)) #: Path of default (first-run) microscope settings DEFAULT_CONFIG_FILE_PATH = os.path.join(HERE, "microscope_settings.default.json") # DATA BASE PATHS Loading @@ -48,7 +47,7 @@ else: if not os.path.exists(FALLBACK_OPENFLEXURE_VAR_PATH): os.makedirs(FALLBACK_OPENFLEXURE_VAR_PATH) OPENFLEXURE_VAR_PATH = FALLBACK_OPENFLEXURE_VAR_PATH print(f"Running with data path {OPENFLEXURE_VAR_PATH}") # SERVER BASE PATHS Loading @@ -71,7 +70,6 @@ else: if not os.path.exists(FALLBACK_OPENFLEXURE_ETC_PATH): os.makedirs(FALLBACK_OPENFLEXURE_ETC_PATH) OPENFLEXURE_ETC_PATH = FALLBACK_OPENFLEXURE_ETC_PATH print(f"Running with server path {OPENFLEXURE_ETC_PATH}") # SERVER PATHS Loading @@ -79,20 +77,9 @@ print(f"Running with server path {OPENFLEXURE_ETC_PATH}") #: Path of microscope settings directory CONFIG_FILE_PATH = os.path.join(OPENFLEXURE_ETC_PATH, "microscope_settings.json") #: Path of microscope extensions directory EXTENSIONS_PATH = os.path.join(OPENFLEXURE_ETC_PATH, "microscope_extensions") OPENFLEXURE_EXTENSIONS_PATH = os.path.join( OPENFLEXURE_ETC_PATH, "microscope_extensions" ) # DATA PATHS # UTILITIES def settings_file_path(filename: str): """Generate a full file path for a filename to be stored in server settings folder""" return os.path.join(OPENFLEXURE_ETC_PATH, filename) def data_file_path(filename: str): """Generate a full file path for a filename to be stored in server data folder""" return os.path.join(OPENFLEXURE_VAR_PATH, filename) Loading
openflexure_microscope/api/app.py +13 −4 Original line number Diff line number Diff line Loading @@ -15,7 +15,12 @@ from flask_cors import CORS, cross_origin from openflexure_microscope.api.utilities import list_routes, init_default_extensions from openflexure_microscope.config import JSONEncoder from openflexure_microscope.paths import EXTENSIONS_PATH, settings_file_path from openflexure_microscope.paths import ( OPENFLEXURE_ETC_PATH, OPENFLEXURE_VAR_PATH, OPENFLEXURE_EXTENSIONS_PATH, settings_file_path, ) from openflexure_microscope.common.flask_labthings.quick import create_app from openflexure_microscope.common.flask_labthings.extensions import find_extensions Loading Loading @@ -53,6 +58,10 @@ else: logger.setLevel(logging.getLogger("gunicorn.error").level) # Log server paths being used logging.info(f"Running with data path {OPENFLEXURE_VAR_PATH}") logging.info(f"Running with server path {OPENFLEXURE_ETC_PATH}") # Create flask app app, labthing = create_app( __name__, Loading @@ -72,9 +81,9 @@ app.json_encoder = JSONEncoder labthing.add_component(api_microscope, "org.openflexure.microscope") # Attach extensions if not os.path.isfile(EXTENSIONS_PATH): init_default_extensions(EXTENSIONS_PATH) for extension in find_extensions(EXTENSIONS_PATH): if not os.path.isfile(OPENFLEXURE_EXTENSIONS_PATH): init_default_extensions(OPENFLEXURE_EXTENSIONS_PATH) for extension in find_extensions(OPENFLEXURE_EXTENSIONS_PATH): labthing.register_extension(extension) # Attach captures resources Loading
openflexure_microscope/paths.py +21 −34 Original line number Diff line number Diff line import os import logging # HANDLE DEFAULTS FILES STORED IN THIS APPLICATION # UTILITIES HERE = os.path.abspath(os.path.dirname(__file__)) #: Path of default (first-run) microscope settings DEFAULT_CONFIG_FILE_PATH = os.path.join(HERE, "microscope_settings.default.json") def check_rw(path): return os.access(path, os.W_OK) and os.access(path, os.R_OK) # HANDLE WINDOWS BASE PATHS """ if os.name == "nt": VAR_PATH = os.getenv("PROGRAMDATA") or "C:\\ProgramData" else: if os.access("/var", os.W_OK) and os.access("/var", os.R_OK): VAR_PATH = "/var" else: VAR_PATH = os.path.expanduser("~") OPENFLEXURE_VAR_PATH = os.path.join(VAR_PATH, "openflexure") print(f"Running with server settings directory {OPENFLEXURE_VAR_PATH}") """ def settings_file_path(filename: str): """Generate a full file path for a filename to be stored in server settings folder""" return os.path.join(OPENFLEXURE_ETC_PATH, filename) def check_rw(path): return os.access(path, os.W_OK) and os.access(path, os.R_OK) def data_file_path(filename: str): """Generate a full file path for a filename to be stored in server data folder""" return os.path.join(OPENFLEXURE_VAR_PATH, filename) # HANDLE DEFAULTS FILES STORED IN THIS APPLICATION HERE = os.path.abspath(os.path.dirname(__file__)) #: Path of default (first-run) microscope settings DEFAULT_CONFIG_FILE_PATH = os.path.join(HERE, "microscope_settings.default.json") # DATA BASE PATHS Loading @@ -48,7 +47,7 @@ else: if not os.path.exists(FALLBACK_OPENFLEXURE_VAR_PATH): os.makedirs(FALLBACK_OPENFLEXURE_VAR_PATH) OPENFLEXURE_VAR_PATH = FALLBACK_OPENFLEXURE_VAR_PATH print(f"Running with data path {OPENFLEXURE_VAR_PATH}") # SERVER BASE PATHS Loading @@ -71,7 +70,6 @@ else: if not os.path.exists(FALLBACK_OPENFLEXURE_ETC_PATH): os.makedirs(FALLBACK_OPENFLEXURE_ETC_PATH) OPENFLEXURE_ETC_PATH = FALLBACK_OPENFLEXURE_ETC_PATH print(f"Running with server path {OPENFLEXURE_ETC_PATH}") # SERVER PATHS Loading @@ -79,20 +77,9 @@ print(f"Running with server path {OPENFLEXURE_ETC_PATH}") #: Path of microscope settings directory CONFIG_FILE_PATH = os.path.join(OPENFLEXURE_ETC_PATH, "microscope_settings.json") #: Path of microscope extensions directory EXTENSIONS_PATH = os.path.join(OPENFLEXURE_ETC_PATH, "microscope_extensions") OPENFLEXURE_EXTENSIONS_PATH = os.path.join( OPENFLEXURE_ETC_PATH, "microscope_extensions" ) # DATA PATHS # UTILITIES def settings_file_path(filename: str): """Generate a full file path for a filename to be stored in server settings folder""" return os.path.join(OPENFLEXURE_ETC_PATH, filename) def data_file_path(filename: str): """Generate a full file path for a filename to be stored in server data folder""" return os.path.join(OPENFLEXURE_VAR_PATH, filename)