mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2024-11-14 16:55:42 +00:00
63 lines
1.5 KiB
Python
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()
|