From bdc1eb1d8bb800f7938c485e3c876fd06b535029 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Thu, 28 Mar 2019 11:37:05 +0000 Subject: Update configuration to use env files throughout --- config.py | 46 +++++++++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 13 deletions(-) (limited to 'config.py') diff --git a/config.py b/config.py index 6addfb2..6ddf9fb 100644 --- a/config.py +++ b/config.py @@ -1,27 +1,47 @@ # -*- coding: utf-8 -*- +"""Configuration for the AnnotateChange app + +Almost all configuration options are expected to be supplied through +environment variables. +""" + import os -from dotenv import load_dotenv +BASEDIR = os.path.abspath(os.path.dirname(__file__)) -# TODO: change these things to an instance path -basedir = os.path.abspath(os.path.dirname(__file__)) -load_dotenv(os.path.join(basedir, '.env')) class Config(object): SECRET_KEY = os.environ.get("SECRET_KEY") or "you-will-never-guess" - SQLALCHEMY_DATABASE_URI = os.environ.get( - "DATABASE_URL" - ) or "sqlite:///" + os.path.join(basedir, "app.db") + DB_TYPE = os.environ.get("DB_TYPE") or "sqlite3" + if DB_TYPE == "mysql": + SQLALCHEMY_DATABASE_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{database}".format( + username=os.environ.get("MYSQL_USER"), + password=os.environ.get("MYSQL_PASSWORD"), + host=os.environ.get("MYSQL_HOST"), + port=os.environ.get("MYSQL_PORT"), + database=os.environ.get("MYSQL_DATABASE"), + ) + else: + SQLALCHEMY_DATABASE_URI = "sqlite:///{filepath}".format( + filepath=os.path.join( + BASEDIR, os.environ.get("SQL3_FILENAME") or "app.db" + ) + ) + SQLALCHEMY_TRACK_MODIFICATIONS = False - MAIL_SERVER = os.environ.get('MAIL_SERVER') - MAIL_PORT = int(os.environ.get('MAIL_PORT') or 25) - MAIL_USE_TLS = os.environ.get('MAIL_USE_TLS') is not None - MAIL_USERNAME = os.environ.get('MAIL_USERNAME') - MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') - ADMINS = ["annotatechange@gmail.com"] + MAIL_SERVER = os.environ.get("MAIL_SERVER") + MAIL_PORT = int(os.environ.get("MAIL_PORT") or 25) + MAIL_USE_TLS = os.environ.get("MAIL_USE_TLS") is not None + MAIL_USERNAME = os.environ.get("MAIL_USERNAME") + MAIL_PASSWORD = os.environ.get("MAIL_PASSWORD") + ADMINS = [ + x.strip() + for x in os.environ.get("ADMIN_EMAILS").split(";") + if x.strip() + ] # these should be used relative to the instance path DATASET_DIR = "datasets" -- cgit v1.2.3