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() | |