""" automatically invoked app factory """ import logging import os from flask import Flask from brian_dashboard_manager import environment from brian_dashboard_manager import config CONFIG_KEY = 'CONFIG_PARAMS' def create_app(): """ overrides default settings with those found in the file read from env var SETTINGS_FILENAME :return: a new flask app instance """ required_env_vars = ['SETTINGS_FILENAME'] assert all([n in os.environ for n in required_env_vars]), \ 'environment variables %r must be defined' % required_env_vars app_config = config.defaults() if 'SETTINGS_FILENAME' in os.environ: with open(os.environ['SETTINGS_FILENAME']) as f: app_config.update(config.load(f)) app = Flask(__name__) app.secret_key = os.environ.get('SECRET_KEY') or 'super secret session key' app.config[CONFIG_KEY] = app_config from brian_dashboard_manager.routes import update app.register_blueprint(update.routes, url_prefix='/update') logging.info('Flask app initialized') environment.setup_logging() return app