22 lines
658 B
Python
22 lines
658 B
Python
from functools import lru_cache
|
|
from typing import Dict, Type
|
|
|
|
from app.core.settings.app import AppSettings
|
|
from app.core.settings.base import AppEnvTypes, BaseAppSettings
|
|
from app.core.settings.development import DevAppSettings
|
|
from app.core.settings.production import ProdAppSettings
|
|
from app.core.settings.test import TestAppSettings
|
|
|
|
environments: Dict[AppEnvTypes, Type[AppSettings]] = {
|
|
AppEnvTypes.dev: DevAppSettings,
|
|
AppEnvTypes.prod: ProdAppSettings,
|
|
AppEnvTypes.test: TestAppSettings,
|
|
}
|
|
|
|
|
|
@lru_cache
|
|
def get_app_settings() -> AppSettings:
|
|
app_env = BaseAppSettings().app_env
|
|
config = environments[app_env]
|
|
return config()
|