2020-10-21 11:07:10 +00:00
|
|
|
# First things first: apply monkey patch, so that no code gets executed without
|
|
|
|
# patched libraries!
|
2019-08-26 12:21:06 +00:00
|
|
|
import eventlet
|
2020-10-21 11:07:10 +00:00
|
|
|
|
|
|
|
|
|
|
|
eventlet.monkey_patch()
|
|
|
|
|
|
|
|
|
|
|
|
from dotenv import load_dotenv # noqa
|
|
|
|
import os # noqa
|
|
|
|
|
|
|
|
# Load environment variables
|
|
|
|
DOTENV_FILE = os.path.join(os.path.dirname(__file__), '.env')
|
|
|
|
if os.path.exists(DOTENV_FILE):
|
|
|
|
load_dotenv(DOTENV_FILE)
|
|
|
|
|
|
|
|
|
|
|
|
from app import create_app, db, socketio # noqa
|
2020-05-18 12:47:04 +00:00
|
|
|
from app.models import (Corpus, CorpusFile, Job, JobInput, JobResult,
|
2020-07-13 13:33:00 +00:00
|
|
|
NotificationData, NotificationEmailData, QueryResult,
|
2020-10-21 11:07:10 +00:00
|
|
|
Role, User) # noqa
|
|
|
|
from flask_migrate import Migrate, upgrade # noqa
|
|
|
|
|
2019-07-03 08:31:23 +00:00
|
|
|
|
2020-10-21 11:07:10 +00:00
|
|
|
app = create_app(os.environ.get('NOPAQUE_CONFIG', 'development'))
|
2020-07-15 09:02:06 +00:00
|
|
|
migrate = Migrate(app, db, compare_type=True)
|
2019-07-05 12:47:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
@app.shell_context_processor
|
|
|
|
def make_shell_context():
|
2020-05-18 12:47:04 +00:00
|
|
|
return {'Corpus': Corpus,
|
|
|
|
'CorpusFile': CorpusFile,
|
|
|
|
'db': db,
|
2020-01-09 15:04:52 +00:00
|
|
|
'Job': Job,
|
2020-05-18 12:47:04 +00:00
|
|
|
'JobInput': JobInput,
|
|
|
|
'JobResult': JobResult,
|
|
|
|
'NotificationData': NotificationData,
|
|
|
|
'NotificationEmailData': NotificationEmailData,
|
2020-07-13 13:33:00 +00:00
|
|
|
'QueryResult': QueryResult,
|
2020-05-18 12:47:04 +00:00
|
|
|
'Role': Role,
|
2020-06-05 12:42:04 +00:00
|
|
|
'User': User}
|
2019-07-08 08:52:36 +00:00
|
|
|
|
|
|
|
|
2020-04-20 06:56:49 +00:00
|
|
|
@app.cli.command()
|
|
|
|
def deploy():
|
|
|
|
"""Run deployment tasks."""
|
|
|
|
# migrate database to latest revision
|
|
|
|
upgrade()
|
|
|
|
|
|
|
|
# create or update user roles
|
|
|
|
Role.insert_roles()
|
|
|
|
|
|
|
|
|
2020-11-09 15:14:19 +00:00
|
|
|
@app.cli.command()
|
|
|
|
def tasks():
|
|
|
|
from app.tasks import process_corpora, process_jobs
|
|
|
|
process_corpora()
|
|
|
|
process_jobs()
|
|
|
|
|
|
|
|
|
2019-07-08 08:52:36 +00:00
|
|
|
@app.cli.command()
|
|
|
|
def test():
|
|
|
|
"""Run the unit tests."""
|
|
|
|
import unittest
|
|
|
|
tests = unittest.TestLoader().discover('tests')
|
|
|
|
unittest.TextTestRunner(verbosity=2).run(tests)
|
2020-04-27 07:34:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
2020-11-06 09:28:05 +00:00
|
|
|
host = os.environ.get('NOPAQUE_HOST', '0.0.0.0')
|
|
|
|
port = int(os.environ.get('NOPAQUE_PORT', '5000'))
|
|
|
|
socketio.run(app, host=host, port=port)
|