Newer
Older
"""
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 CONFIG_FILENAME
:return: a new flask app instance
"""
required_env_vars = ['CONFIG_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 'CONFIG_FILENAME' in os.environ:
with open(os.environ['CONFIG_FILENAME']) as f:
app_config.update(config.load(f))
app = Flask(__name__)
app.secret_key = os.environ.get('SECRET_KEY', 'super secret session key')
app.config[CONFIG_KEY] = app_config
from brian_dashboard_manager.routes import update, version
app.register_blueprint(update.routes, url_prefix='/update')
app.register_blueprint(version.routes, url_prefix='/version')
logging.info('Flask app initialized')
environment.setup_logging()
return app