Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
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"]