import os from typing import List, Type basedir = os.path.abspath(os.path.dirname(__file__)) class BaseConfig: CONFIG_NAME = "base" USE_MOCK_EQUIVALENCY = False DEBUG = False SQLALCHEMY_TRACK_MODIFICATIONS = False class DevelopmentConfig(BaseConfig): CONFIG_NAME = "dev" SECRET_KEY = os.getenv( "DEV_SECRET_KEY", "You can't see California without Marlon Widgeto's eyes" ) DEBUG = True SQLALCHEMY_TRACK_MODIFICATIONS = False TESTING = False SQLALCHEMY_DATABASE_URI = "sqlite:///{0}/app-dev.db".format(basedir) class TestingConfig(BaseConfig): CONFIG_NAME = "test" SECRET_KEY = os.getenv("TEST_SECRET_KEY", "Thanos did nothing wrong") DEBUG = True SQLALCHEMY_TRACK_MODIFICATIONS = False TESTING = True SQLALCHEMY_DATABASE_URI = "sqlite:///{0}/app-test.db".format(basedir) class ProductionConfig(BaseConfig): CONFIG_NAME = "prod" SECRET_KEY = os.getenv("PROD_SECRET_KEY", "I'm Ron Burgundy?") DEBUG = False SQLALCHEMY_TRACK_MODIFICATIONS = False TESTING = False SQLALCHEMY_DATABASE_URI = "sqlite:///{0}/app-prod.db".format(basedir) EXPORT_CONFIGS: List[Type[BaseConfig]] = [ DevelopmentConfig, TestingConfig, ProductionConfig, ] config_by_name = {cfg.CONFIG_NAME: cfg for cfg in EXPORT_CONFIGS}