Source code for ores.wsgi.server
import os
import flask_swaggerui
import flask_wikimediaui
[docs]def configure(config):
from flask import Blueprint, Flask
from . import routes
from ..scoring_systems import ScoringSystem
directory = os.path.dirname(os.path.realpath(__file__))
app = Flask(__name__,
static_url_path="/BASE_STATIC",
template_folder=os.path.join(directory, 'templates'))
app.config['APPLICATION_ROOT'] = config['ores']['wsgi']['application_root']
app.url_map.strict_slashes = False
# Configure routes
bp = Blueprint('ores', __name__,
static_folder=os.path.join(directory, 'static'),
url_prefix=config['ores']['wsgi']['url_prefix'])
ss_name = config['ores']['scoring_system']
scoring_system = ScoringSystem.from_config(config, ss_name)
bp = routes.configure(config, bp, scoring_system)
app.register_blueprint(bp)
# Configure swagger-ui routes
swagger_bp = flask_swaggerui.build_static_blueprint(
'ores-swaggerui', __name__,
url_prefix=config['ores']['wsgi']['url_prefix'])
app.register_blueprint(swagger_bp)
# Configure WikimediaUI routes
wikimedia_bp = flask_wikimediaui.build_static_blueprint(
'ores-wikimediaui', __name__,
url_prefix=config['ores']['wsgi']['url_prefix'])
app.register_blueprint(wikimedia_bp)
return app