Spaces:
Running
Running
File size: 1,189 Bytes
505bbe5 6fae15f 505bbe5 6fae15f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
"""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 |