# type: ignore # pylint: skip-file import os import sme_logger from invoke import Collection, task from delphi_slz_admin.app_entry import setup_app logger = sme_logger.get_logger('tasks', debug=True, is_json=False) @task(help={ 'host': 'Host to run server on', 'port': 'Port to run server on', }) def runserver(_, host='127.0.0.1', port=8000): """ Starts development server Usage: inv runserver --host='localhost' --port=8000 """ from werkzeug.serving import run_simple logger.info( f"{'Reloading' if 'WERKZEUG_RUN_MAIN' in os.environ else 'Starting'}" f" development server http://{host}:{port} ..." ) app = setup_app() env_files = [ os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir, 'env', 'local.env') ] template_dir = os.path.join( os.path.dirname(os.path.realpath(__file__)), os.pardir, 'delphi_slz_admin', 'templates' ) template_files = [ os.path.join(template_dir, file_name) for file_name in os.listdir(template_dir) ] extra_files = env_files + template_files run_simple(host, port, app, use_reloader=True, extra_files=extra_files) ns = Collection(runserver)