# First things first: apply monkey patch, so that no code gets executed without # patched libraries! import eventlet eventlet.monkey_patch() from flask import Flask # noqa from typing import Any, Dict # noqa from app import create_app, db, scheduler, socketio # noqa from app import models # noqa # from app.models import ( # Avatar, # Corpus, # CorpusFile, # CorpusFollowerAssociation, # CorpusFollowerRole, # Job, # JobInput, # JobResult, # Role, # TesseractOCRPipelineModel, # SpaCyNLPPipelineModel, # User # ) # noqa app: Flask = create_app() @app.shell_context_processor def make_shell_context() -> Dict[str, Any]: ''' Adds variables to the shell context. ''' return { 'db': db, 'Avatar': models.Avatar, 'Corpus': models.Corpus, 'CorpusFile': models.CorpusFile, 'CorpusFollowerAssociation': models.CorpusFollowerAssociation, 'CorpusFollowerRole': models.CorpusFollowerRole, 'Job': models.Job, 'JobInput': models.JobInput, 'JobResult': models.JobResult, 'Role': models.Role, 'TesseractOCRPipelineModel': models.TesseractOCRPipelineModel, 'SpaCyNLPPipelineModel': models.SpaCyNLPPipelineModel, 'User': models.User } def main(): with app.app_context(): if app.config['NOPAQUE_IS_PRIMARY_INSTANCE']: for corpus in models.Corpus.query.filter(models.Corpus.num_analysis_sessions > 0).all(): corpus.num_analysis_sessions = 0 db.session.commit() scheduler.start() socketio.run(app, host='0.0.0.0') if __name__ == '__main__': main()