nopaque/nopaque.py
2023-05-11 16:33:21 +02:00

60 lines
1.5 KiB
Python

# First things first: apply monkey patch, so that no code gets executed without
# patched libraries!
import eventlet
eventlet.monkey_patch()
from app import create_app, db, scheduler, socketio # noqa
from app.models import (
Avatar,
Corpus,
CorpusFile,
CorpusFollowerAssociation,
CorpusFollowerRole,
Job,
JobInput,
JobResult,
Role,
TesseractOCRPipelineModel,
SpaCyNLPPipelineModel,
User
) # noqa
from flask import Flask # noqa
from typing import Any, Dict # 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': Avatar,
'Corpus': Corpus,
'CorpusFile': CorpusFile,
'CorpusFollowerAssociation': CorpusFollowerAssociation,
'CorpusFollowerRole': CorpusFollowerRole,
'Job': Job,
'JobInput': JobInput,
'JobResult': JobResult,
'Role': Role,
'TesseractOCRPipelineModel': TesseractOCRPipelineModel,
'SpaCyNLPPipelineModel': SpaCyNLPPipelineModel,
'User': User
}
def main():
with app.app_context():
if app.config['NOPAQUE_IS_PRIMARY_INSTANCE']:
for corpus in Corpus.query.filter(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()