blob: eefe236727002c3a351ad3c0284643f1afea8234 (
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
31
32
33
34
35
36
37
|
"""The Quality-Control Web Application entry point"""
import os
from flask import Flask
from .entry import entrybp
from .parse import parsebp
from .dbinsert import dbinsertbp
from .check_connections import check_db, check_redis
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_dir):
"""The application factory"""
app = Flask(
__name__, instance_path=instance_dir, 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
# Check the connection
check_db(app.config["SQL_URI"])
check_redis(app.config["REDIS_URL"])
# setup blueprints
app.register_blueprint(entrybp, url_prefix="/")
app.register_blueprint(parsebp, url_prefix="/parse")
app.register_blueprint(dbinsertbp, url_prefix="/dbinsert")
return app
|