from __future__ import annotations from pathlib import Path from iti.config import ( DevConfig as BaseDevConfig, TestConfig as BaseTestConfig, ProdConfig as BaseProdConfig, ) BASE_DIR = Path(__file__).resolve().parent APP_NAME = "{{ project_name }}" def runtime_path(name: str) -> str: return str(BASE_DIR / "runtime" / name) def apply_project_config(config) -> None: config.app_name = APP_NAME config.base_dir = BASE_DIR config.file_storage["LOCAL"]["base_path"] = runtime_path("uploads") config.log_dir = runtime_path("logs") class DevConfig(BaseDevConfig): def __init__(self) -> None: super().__init__() apply_project_config(self) class TestConfig(BaseTestConfig): def __init__(self) -> None: super().__init__() apply_project_config(self) class ProdConfig(BaseProdConfig): def __init__(self) -> None: super().__init__() apply_project_config(self) config = { "dev": DevConfig, "test": TestConfig, "prod": ProdConfig, "default": DevConfig, }