import logging import os ROOT_DIR = os.path.abspath(os.path.dirname(__file__)) class Config: ''' # Email # ''' SMTP_DEFAULT_SENDER = os.environ.get('NOPAQUE_SMTP_DEFAULT_SENDER') SMTP_PASSWORD = os.environ.get('NOPAQUE_SMTP_PASSWORD') SMTP_PORT = int(os.environ.get('NOPAQUE_SMTP_PORT')) SMTP_SERVER = os.environ.get('NOPAQUE_SMTP_SERVER') SMTP_USERNAME = os.environ.get('NOPAQUE_SMTP_USERNAME') SMTP_USE_SSL = os.environ.get( 'NOPAQUE_SMTP_USE_SSL', 'false').lower() == 'true' SMTP_USE_TLS = os.environ.get( 'NOPAQUE_SMTP_USE_TLS', 'false').lower() == 'true' ''' # General # ''' DATA_DIR = os.environ.get('NOPAQUE_DATA_DIR', '/mnt/nopaque') DOMAIN = os.environ.get('NOPAQUE_DOMAIN', 'localhost') PROTOCOL = os.environ.get('NOPAQUE_PROTOCOL', 'http') SECRET_KEY = os.environ.get('NOPAQUE_SECRET_KEY', 'hard to guess string') ''' # Logging # ''' LOG_DATE_FORMAT = os.environ.get('NOPAQUE_LOG_DATE_FORMAT', '%Y-%m-%d %H:%M:%S') LOG_FILE = os.environ.get('NOPAQUED_LOG_FILE', os.path.join(ROOT_DIR, 'nopaqued.log')) LOG_FORMAT = os.environ.get( 'NOPAQUE_LOG_FORMAT', '[%(asctime)s] %(levelname)s in ' '%(pathname)s (function: %(funcName)s, line: %(lineno)d): %(message)s' ) LOG_LEVEL = os.environ.get('NOPAQUE_LOG_LEVEL', 'WARNING') @classmethod def init(cls): # Set up logging according to the corresponding (LOG_*) variables logging.basicConfig(datefmt=cls.LOG_DATE_FORMAT, filename=cls.LOG_FILE, format=cls.LOG_FORMAT, level=cls.LOG_LEVEL) class DevelopmentConfig(Config): ''' # Database # ''' SQLALCHEMY_DATABASE_URI = os.environ.get( 'NOPAQUE_DEV_DATABASE_URL', 'sqlite:///' + os.path.join(ROOT_DIR, 'data-dev.sqlite') ) class ProductionConfig(Config): ''' # Database # ''' SQLALCHEMY_DATABASE_URI = os.environ.get( 'NOPAQUE_DATABASE_URL', 'sqlite:///' + os.path.join(ROOT_DIR, 'data.sqlite') ) class TestingConfig(Config): ''' # Database # ''' SQLALCHEMY_DATABASE_URI = os.environ.get( 'NOPAQUE_TEST_DATABASE_URL', 'sqlite://') config = {'development': DevelopmentConfig, 'production': ProductionConfig, 'testing': TestingConfig}