From 4d2d39c5fa5aa94ed55da2af27d78073bf63327c Mon Sep 17 00:00:00 2001 From: Joel Collins Date: Thu, 16 Jan 2020 16:35:10 +0000 Subject: [PATCH] Restructured for better debugging --- openflexure_microscope/api/app.py | 17 +++++++--- openflexure_microscope/paths.py | 55 ++++++++++++------------------- 2 files changed, 34 insertions(+), 38 deletions(-) diff --git a/openflexure_microscope/api/app.py b/openflexure_microscope/api/app.py index ad53c43e..dbe4c073 100644 --- a/openflexure_microscope/api/app.py +++ b/openflexure_microscope/api/app.py @@ -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 @@ -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__, @@ -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 diff --git a/openflexure_microscope/paths.py b/openflexure_microscope/paths.py index 35bc0393..6650f5a5 100644 --- a/openflexure_microscope/paths.py +++ b/openflexure_microscope/paths.py @@ -1,6 +1,23 @@ import os import logging +# UTILITIES + + +def check_rw(path): + return os.access(path, os.W_OK) and os.access(path, os.R_OK) + + +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) + + # HANDLE DEFAULTS FILES STORED IN THIS APPLICATION HERE = os.path.abspath(os.path.dirname(__file__)) @@ -9,24 +26,6 @@ HERE = os.path.abspath(os.path.dirname(__file__)) DEFAULT_CONFIG_FILE_PATH = os.path.join(HERE, "microscope_settings.default.json") -# 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 check_rw(path): - return os.access(path, os.W_OK) and os.access(path, os.R_OK) - - # DATA BASE PATHS if os.name == "nt": @@ -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 @@ -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 @@ -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)