53 lines
1.1 KiB
Python
53 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import logging
|
|
import os
|
|
from pathlib import Path
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
from src.web import app
|
|
|
|
# prepare optional local setup
|
|
env_path = Path(__file__).parent.parent / 'local.env'
|
|
load_dotenv(env_path)
|
|
|
|
# ensure env vars set
|
|
necesasary_var_list = {
|
|
'MONGO_HOST',
|
|
'MONGO_DB',
|
|
'MONGO_COLLECTION',
|
|
'MONGO_USER',
|
|
'MONGO_PASSWORD',
|
|
'DASH_AUTH_USERNAME',
|
|
'DASH_AUTH_PASSWORD',
|
|
}
|
|
for env_var in necesasary_var_list:
|
|
# ensure env var set
|
|
assert (
|
|
env_var in os.environ
|
|
), (
|
|
f"environment variable not set: {env_var}"
|
|
)
|
|
|
|
# setup logging stream handler
|
|
fmt = (
|
|
'%(asctime)s | '
|
|
'%(levelname)s | '
|
|
'%(filename)s | '
|
|
'%(funcName)s | '
|
|
'%(message)s'
|
|
)
|
|
datefmt = '%Y-%m-%d %H:%M:%S'
|
|
logging.basicConfig(format=fmt, datefmt=datefmt, level=logging.INFO)
|
|
|
|
logging.info('initialized app')
|
|
server = app.server
|
|
|
|
if __name__ == '__main__':
|
|
# prepare local env vars
|
|
os.environ['MONGO_HOST'] = 'localhost'
|
|
# run app
|
|
app.run(debug=True)
|
|
logging.info('started app')
|