patch_all() def load_corpus(): mombler = Momblish(corpus=Corpus.load("support/corpus.json")) return mombler db = SQLAlchemy() migrate = Migrate() jwt = JWTManager() momblish = load_corpus() json_schema_manager = JSONSchemaManager("../support/schemas") Q = RQ() redis_client = FlaskRedis() Q.queues = ["email", "nomad"] logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) def create_app(env: str = "development"): app = Flask(__name__) app.config.from_object(settings.app_config[env]) db.init_app(app) migrate.init_app(app, db) jwt.init_app(app) json_schema_manager.init_app(app) Q.init_app(app) redis_client.init_app(app) CORS(app)
from mpcontribs.api.core import SwaggerView from mpcontribs.api.contributions.document import Contributions from mpcontribs.api.notebooks.document import Notebooks from mpcontribs.api.notebooks import run_cells logger = get_logger(__name__) templates = os.path.join(os.path.dirname(flask_mongorest.__file__), "templates") notebooks = Blueprint("notebooks", __name__, template_folder=templates) MPCONTRIBS_API_HOST = os.environ["MPCONTRIBS_API_HOST"] ADMIN_GROUP = os.environ.get("ADMIN_GROUP", "admin") rq = RQ() rq.default_queue = f"notebooks_{MPCONTRIBS_API_HOST}" rq.queues = [rq.default_queue] rq.scheduler_queue = rq.default_queue rq.scheduler_class = "mpcontribs.api.notebooks.views.NotebooksScheduler" class NotebooksScheduler(Scheduler): redis_scheduler_namespace_prefix = f'rq:scheduler_instance:{MPCONTRIBS_API_HOST}:' scheduler_key = f'rq:scheduler:{MPCONTRIBS_API_HOST}' scheduler_lock_key = f'rq:scheduler_lock:{MPCONTRIBS_API_HOST}' scheduled_jobs_key = f'rq:scheduler:scheduled_jobs:{MPCONTRIBS_API_HOST}' class NotebooksResource(Resource): document = Notebooks filters = {"id": [ops.In, ops.Exact]} fields = ["id", "nbformat", "nbformat_minor"]