Source code for dgenies

#!/usr/bin/env python3

import os
from flask import Flask
from .config_reader import AppConfigReader
from .lib.crons import Crons

VERSION = "1.3.1"

app = None
app_title = None
config_reader = None
mailer = None
app_folder = None
MODE = "webserver"
DEBUG = False

[docs]def launch(mode="webserver", debug=False): """ Launch the application :param mode: webserver or standalone :type mode: str :param debug: True to enable debug mode :type debug: bool :return: flask app object :rtype: Flask """ global app, app_title, app_folder, APP_DATA, config_reader, mailer, MODE, DEBUG app_folder = os.path.dirname(os.path.realpath(__file__)) MODE = mode DEBUG = debug # Init config reader: config_reader = AppConfigReader() UPLOAD_FOLDER = config_reader.upload_folder APP_DATA = config_reader.app_data app_title = "D-GENIES - Dotplot large Genomes in an Interactive, Efficient and Simple way" # Init Flask: app = Flask(__name__, static_url_path='/static') app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER app.config['MAX_CONTENT_LENGTH'] = config_reader.max_upload_file_size app.config['SECRET_KEY'] = 'dsqdsq-255sdA-fHfg52-25Asd5' # Init mail: if MODE == "webserver": from .lib.mailer import Mailer mailer = Mailer(app) # Create data dir if not exists if not os.path.exists(config_reader.app_data): os.makedirs(config_reader.app_data) if config_reader.debug and config_reader.log_dir != "stdout" and not os.path.exists(config_reader.log_dir): os.makedirs(config_reader.log_dir) # Crons: if os.getenv('DISABLE_CRONS') != "True" and MODE == "webserver": print("Starting crons...") crons = Crons(app_folder, config_reader.debug or os.getenv('LOGS') == "True") crons.start_all() from dgenies import views return app