nopaque/wsgi.py
2024-04-11 14:33:47 +02:00

62 lines
1.6 KiB
Python

# 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()