aboutsummaryrefslogtreecommitdiff
path: root/qc_app/__init__.py
blob: 7f423c286629339605ac17356c1bce7e4af6db58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""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