Source code for langchain_community.utilities.cassandra

from __future__ import annotations

import asyncio
from enum import Enum
from typing import TYPE_CHECKING, Any, Callable

if TYPE_CHECKING:
    from cassandra.cluster import ResponseFuture


[docs]async def wrapped_response_future( func: Callable[..., ResponseFuture], *args: Any, **kwargs: Any ) -> Any: """将Cassandra响应future包装在一个asyncio future中。 参数: func: 要调用的Cassandra函数。 *args: 要传递给Cassandra函数的参数。 **kwargs: 要传递给Cassandra函数的关键字参数。 返回: Cassandra函数的结果。 """ loop = asyncio.get_event_loop() asyncio_future = loop.create_future() response_future = func(*args, **kwargs) def success_handler(_: Any) -> None: loop.call_soon_threadsafe(asyncio_future.set_result, response_future.result()) def error_handler(exc: BaseException) -> None: loop.call_soon_threadsafe(asyncio_future.set_exception, exc) response_future.add_callbacks(success_handler, error_handler) return await asyncio_future
[docs]class SetupMode(Enum): SYNC = 1 ASYNC = 2 OFF = 3