Source code for registry.factory

"""Application factory for client registry app."""

from flask import Flask

from arxiv.base import Base
from arxiv.base.middleware import wrap
from arxiv.users import auth

# from registry.routes import ui
from registry import filters
from registry.services import datastore, sessions
from registry.routes import blueprint
from . import oauth2


[docs]def create_web_app() -> Flask: """Initialize and configure the accounts application.""" app = Flask('registry') app.config.from_pyfile('config.py') # app.register_blueprint(ui.blueprint) datastore.init_app(app) sessions.init_app(app) Base(app) # Gives us access to the base UI templates and resources. auth.Auth(app) # Handless sessions and authn/z. oauth2.init_app(app) app.register_blueprint(blueprint) wrap(app, [auth.middleware.AuthMiddleware]) app.jinja_env.filters['scope_label'] = filters.scope_label if app.config['CREATE_DB']: datastore.create_all() return app