jamiya / app /config.py
jameszokah's picture
Enhance application configuration: add MongoDB settings and directory management for audio, text, and temporary files, ensuring necessary directories are created at initialization.
6fae15f
raw
history blame
1.19 kB
"""Application configuration."""
import os
from functools import lru_cache
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
"""Application settings."""
# MongoDB settings
MONGO_URI: str = os.getenv("MONGO_URI", "mongodb://localhost:27017")
DB_NAME: str = os.getenv("DB_NAME", "tts_api")
# Storage paths
STORAGE_PATH: str = os.getenv("STORAGE_PATH", "/app/storage")
AUDIO_DIR: str = os.path.join(STORAGE_PATH, "audio")
TEXT_DIR: str = os.path.join(STORAGE_PATH, "text")
TEMP_DIR: str = os.path.join(STORAGE_PATH, "temp")
# Ensure directories exist
def __init__(self, **kwargs):
super().__init__(**kwargs)
os.makedirs(self.AUDIO_DIR, exist_ok=True)
os.makedirs(self.TEXT_DIR, exist_ok=True)
os.makedirs(self.TEMP_DIR, exist_ok=True)
class Config:
"""Pydantic config."""
env_file = ".env"
@lru_cache()
def get_settings() -> Settings:
"""Get cached settings."""
return Settings()
# Create settings instance
settings = get_settings()
# Export directory paths
AUDIO_DIR = settings.AUDIO_DIR
TEXT_DIR = settings.TEXT_DIR
TEMP_DIR = settings.TEMP_DIR