def uri_is_valid(cls, v): if isinstance(v, AnyUrl): return v if settings.MONGO_HOST in ("localhost", "127.0.0.1"): try: return AnyUrl.build( scheme=settings.MONGO_SCHEME, host=settings.MONGO_HOST, port=settings.MONGO_PORT, user=settings.MONGO_USER, password=settings.MONGO_PASSWORD, path=f"/{settings.MONGO_DB}", query="retryWrites=true&w=majority", ) except Exception as e: raise AttributeError(v) from e try: return AnyUrl.build( scheme=settings.MONGO_SCHEME, host=settings.MONGO_HOST, user=settings.MONGO_USER, password=settings.MONGO_PASSWORD, path=f"/{settings.MONGO_DB}", query="retryWrites=true&w=majority", ) except Exception as exc: logger.error(exc) raise AttributeError(v) from exc
def _assemble_db_connection(cls, v: Optional[str], values: Dict[str, str]) -> str: if isinstance(v, str): return v return AnyUrl.build( scheme="postgres", user=values.get("POSTGRES_USER"), password=values.get("POSTGRES_PASSWORD"), host=values.get("POSTGRES_SERVER") or "localhost", port=values.get("POSTGRES_PORT"), path=f"/{values.get('POSTGRES_DB')}", )
def assemble_celery_dsn(cls, v: Optional[str], values: Dict[str, Any]) -> Any: if isinstance(v, str): return v return AnyUrl.build( scheme="amqp", user=values.get("CELERY_USER"), password=values.get("CELERY_PASSWORD"), host=values.get("CELERY_SERVER"), path=f"/{values.get('CELERY_VHOST')}", )
def build_dsn( driver: str, host: str, port: int, db: Optional[str] = None, user: Optional[str] = None, password: Optional[str] = None, **params: Any, ): if params: params = urlencode(params) return AnyUrl.build( scheme=driver, host=host, port=str(port), path=f"/{db}", user=user, password=password, query=params, )