"""The Quality-Control Web Application entry point""" import os from flask import Flask from .entry import entrybp from .parse import parsebp def instance_path(): """Retrieve the `instance_path`. Raise an exception if not defined.""" path = os.getenv("QCAPP_INSTANCE_PATH", None) if path is None: raise Exception(( "Configuration Error: Set the `QCAPP_INSTANCE_PATH` environment " "variable.")) return path def create_app(instance_path): """The application factory""" app = Flask( __name__, instance_path=instance_path, instance_relative_config=True) app.config.from_pyfile(os.path.join(os.getcwd(), "etc/default_config.py")) app.config.from_pyfile("config.py") # Override defaults with instance path # setup blueprints app.register_blueprint(entrybp, url_prefix="/") app.register_blueprint(parsebp, url_prefix="/parse") return app