import os from dotenv import load_dotenv from apscheduler.jobstores.mongodb import MongoDBJobStore from pymongo import MongoClient load_dotenv() BASE_DIR = os.path.abspath(os.path.dirname(__file__)) class Config: SECRET_KEY = os.getenv('SECRET_KEY', 'my_precious_secret_key') DEBUG = False class DevelopmentConfig(Config): DEBUG = True mongo_client = MongoClient(os.getenv('MONGODB_URL_DEV')) MONGODB_SETTINGS = { "db": os.getenv('db'), "username": os.getenv('MONGODB_USERNAME'), "password": os.getenv('MONGODB_PASSWORD'), "host": os.getenv('MONGODB_HOST'), "port": int(os.getenv('MONGODB_PORT_DEV')) } SCHEDULER_JOBSTORES = { 'default': MongoDBJobStore(database=os.getenv('MONGODB_DB'), collection='mail_scheduler', client=mongo_client) } SCHEDULER_API_ENABLED = True class TestingConfig(Config): DEBUG = True TESTING = True PRESERVE_CONTEXT_ON_EXCEPTION = False class ProductionConfig(Config): DEBUG = False mongo_client = MongoClient(os.getenv('MONGODB_URL')) MONGODB_SETTINGS = { "db": os.getenv('MONGODB_DB'), "username": os.getenv('MONGODB_USERNAME'), "password": os.getenv('MONGODB_PASSWORD'), "host": os.getenv('MONGODB_HOST'), "port": int(os.getenv('MONGODB_PORT')) } SCHEDULER_JOBSTORES = { 'default': MongoDBJobStore(database=os.getenv('MONGODB_DB'), collection='mail_scheduler', client=mongo_client) } SCHEDULER_API_ENABLED = True config_by_name = dict( dev=DevelopmentConfig, test=TestingConfig, prod=ProductionConfig ) key = Config.SECRET_KEY