from flask_apispec.extension import FlaskApiSpec from flask_static_digest import FlaskStaticDigest from flask_wtf.csrf import CSRFProtect from celery import Celery from flask_mail import Mail from flask_atlas_auth import AuthManager from core_notifications.analytics.amplitude import Amplitude from core_notifications.models import db from core_notifications.logs import logger amplitude = Amplitude() mail = Mail() docs = FlaskApiSpec(document_options=False) celery = Celery(__name__) flask_static_digest = FlaskStaticDigest() csrf = CSRFProtect() auth_manager = AuthManager(logger=logger) def register_extensions(app): amplitude.init_app(app) mail.init_app(app) docs.init_app(app) csrf.init_app(app) auth_manager.init_app(app) db.init_app(app) init_celery(app) flask_static_digest.init_app(app) def register_docs(app, namespace): for endpoint, func in app.view_functions.items(): if endpoint.startswith(namespace): docs.register(func, endpoint=endpoint) def init_celery(app): celery.conf.update(app.config["CELERY"])