Spaces:
Build error
Build error
| """ | |
| Configuraci贸n centralizada del proyecto usando Pydantic Settings. | |
| Este m贸dulo implementa el patr贸n Singleton para la configuraci贸n, | |
| cumpliendo con el principio SRP (Single Responsibility Principle). | |
| """ | |
| from typing import List | |
| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| class Settings(BaseSettings): | |
| """ | |
| Configuraci贸n centralizada de la aplicaci贸n. | |
| Todas las configuraciones se cargan desde variables de entorno | |
| o valores por defecto. Esto permite f谩cil configuraci贸n en | |
| diferentes ambientes (dev, staging, production). | |
| """ | |
| # API Configuration | |
| api_title: str = "Chronos-2 Forecasting API" | |
| api_version: str = "3.0.0" | |
| api_description: str = ( | |
| "API de pron贸sticos con Chronos-2 + Excel Add-in. " | |
| "Refactorizado con Clean Architecture y principios SOLID." | |
| ) | |
| api_port: int = 8000 | |
| # Model Configuration | |
| model_id: str = "amazon/chronos-2" | |
| device_map: str = "cpu" | |
| # CORS Configuration | |
| cors_origins: List[str] = [ | |
| "https://localhost:3000", | |
| "https://localhost:3001", | |
| "https://ttzzs-chronos2-excel-forecasting-api.hf.space", | |
| "*" # Permitir todos los or铆genes para Office Add-ins | |
| ] | |
| # Logging | |
| log_level: str = "INFO" | |
| log_format: str = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" | |
| # Static Files | |
| static_dir: str = "static" | |
| model_config = SettingsConfigDict( | |
| env_file=".env", | |
| env_file_encoding="utf-8", | |
| case_sensitive=False, | |
| extra="ignore" | |
| ) | |
| # Singleton instance | |
| _settings_instance = None | |
| def get_settings() -> Settings: | |
| """ | |
| Obtiene la instancia singleton de Settings. | |
| Returns: | |
| Settings: Instancia de configuraci贸n | |
| """ | |
| global _settings_instance | |
| if _settings_instance is None: | |
| _settings_instance = Settings() | |
| return _settings_instance | |
| # Exportar instancia por defecto para uso directo | |
| settings = get_settings() | |