Spaces:
Sleeping
Sleeping
| from functools import lru_cache | |
| from pydantic import AnyHttpUrl, Field, PositiveInt, field_validator | |
| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| class Settings(BaseSettings): | |
| model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore") | |
| app_name: str | |
| log_level: str | |
| webhook_path: str | |
| ai_pipeline_url: AnyHttpUrl | |
| ai_pipeline_timeout_seconds: PositiveInt | |
| supabase_url: AnyHttpUrl | |
| supabase_service_role_key: str = Field(repr=False) | |
| supabase_table: str | |
| cloudinary_api_secret: str = Field(repr=False) | |
| cloudinary_signature_required: bool | |
| cloudinary_signature_tolerance_seconds: PositiveInt | |
| def normalize_webhook_path(cls, value: str) -> str: | |
| value = value.strip() | |
| if not value: | |
| raise ValueError("WEBHOOK_PATH cannot be empty") | |
| return value if value.startswith("/") else f"/{value}" | |
| def get_settings() -> Settings: | |
| return Settings() | |