nopaque/nopaque.py
2022-10-21 13:33:25 +02:00

63 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 cli, create_app, db, scheduler, socketio # noqa
from app.models import (
Corpus,
CorpusFile,
Job,
JobInput,
JobResult,
Permission,
Role,
TesseractOCRPipelineModel,
SpaCyNLPPipelineModel,
User
) # noqa
from flask import Flask # noqa
from typing import Any, Dict # noqa
app: Flask = create_app()
cli.register(app)
@app.context_processor
def make_context() -> Dict[str, Any]:
''' Adds variables to the template context. '''
return {'Permission': Permission}
@app.shell_context_processor
def make_shell_context() -> Dict[str, Any]:
''' Adds variables to the shell context. '''
return {
'Corpus': Corpus,
'CorpusFile': CorpusFile,
'db': db,
'Job': Job,
'JobInput': JobInput,
'JobResult': JobResult,
'Permission': Permission,
'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()