Spaces:
Runtime error
Runtime error
| import sys | |
| from typing import Any, Dict, List, Optional | |
| from pydantic import BaseSettings, HttpUrl, PostgresDsn, validator | |
| from pydantic.networks import AnyHttpUrl | |
| class Settings(BaseSettings): | |
| PROJECT_NAME: str = "QueryX" | |
| SENTRY_DSN: Optional[HttpUrl] = None | |
| API_PATH: str = "/api/v1" | |
| ACCESS_TOKEN_EXPIRE_MINUTES: int = 7 * 24 * 60 # 7 days | |
| BACKEND_CORS_ORIGINS: List[AnyHttpUrl] = [ | |
| "http://0.0.0.0:9000", | |
| "http://0.0.0.0:8000", | |
| ] | |
| # The following variables need to be defined in environment | |
| TEST_DATABASE_URL: Optional[PostgresDsn] | |
| DATABASE_URL: PostgresDsn | |
| ASYNC_DATABASE_URL: Optional[PostgresDsn] | |
| def build_test_database_url(cls, v: Optional[str], values: Dict[str, Any]): | |
| """Overrides DATABASE_URL with TEST_DATABASE_URL in test environment.""" | |
| url = v | |
| if "pytest" in sys.modules: | |
| if not values.get("TEST_DATABASE_URL"): | |
| raise Exception( | |
| "pytest detected, but TEST_DATABASE_URL is not set in environment" | |
| ) | |
| url = values["TEST_DATABASE_URL"] | |
| if url: | |
| return url.replace("postgres://", "postgresql://") | |
| return url | |
| def build_async_database_url(cls, v: Optional[str], values: Dict[str, Any]): | |
| """Builds ASYNC_DATABASE_URL from DATABASE_URL.""" | |
| v = values["DATABASE_URL"] | |
| return v.replace("postgresql", "postgresql+asyncpg", 1) if v else v | |
| SECRET_KEY: str | |
| # END: required environment variables | |
| settings = Settings() | |