Files

21 lines
616 B
Python
Raw Permalink Normal View History

from __future__ import annotations
import inspect
from typing import TYPE_CHECKING, Any, cast
if TYPE_CHECKING:
from plyngent.agent import ToolDefinition
def call_sync(definition: ToolDefinition, *args: object, **kwargs: object) -> str:
result: Any = definition.handler(*args, **kwargs)
assert not inspect.isawaitable(result)
return cast("str", result)
async def call_async(definition: ToolDefinition, *args: object, **kwargs: object) -> str:
result: Any = definition.handler(*args, **kwargs)
if inspect.isawaitable(result):
result = await result
return cast("str", result)