| from pydantic_settings import BaseSettings, SettingsConfigDict | |
| from pydantic import field_validator | |
| from typing import Optional | |
| class Settings(BaseSettings): | |
| bot_token: str = "" | |
| webhook_url: Optional[str] = None | |
| telegram_api_server: Optional[str] = None | |
| fx_api_key: str = "" | |
| database_url: str = "sqlite+aiosqlite:///./flyrates.db" | |
| log_level: str = "INFO" | |
| delete_webhook_on_local: bool = False | |
| def assemble_db_connection(cls, v: str) -> str: | |
| if isinstance(v, str): | |
| if v.startswith("postgres://"): | |
| return v.replace("postgres://", "postgresql+asyncpg://", 1) | |
| if v.startswith("postgresql://") and not v.startswith("postgresql+asyncpg://"): | |
| return v.replace("postgresql://", "postgresql+asyncpg://", 1) | |
| return v | |
| model_config = SettingsConfigDict(env_file=".env", env_file_encoding="utf-8", extra="ignore") | |
| settings = Settings() | |