diff --git a/nonebot_plugin_marshoai/plugin/models.py b/nonebot_plugin_marshoai/plugin/models.py index ab96e426..260cbb55 100755 --- a/nonebot_plugin_marshoai/plugin/models.py +++ b/nonebot_plugin_marshoai/plugin/models.py @@ -3,7 +3,7 @@ from typing import Any from pydantic import BaseModel -from .typing import ASYNC_FUNCTION_CALL_FUNC +from .typing import ASYNC_FUNCTION_CALL_FUNC, FUNCTION_CALL_FUNC class PluginMetadata(BaseModel): @@ -114,7 +114,7 @@ class FunctionCall(BaseModel): """函数描述 这个函数用于获取天气信息""" arguments: dict[str, FunctionCallArgument] """函数参数信息""" - function: ASYNC_FUNCTION_CALL_FUNC + function: FUNCTION_CALL_FUNC """函数对象""" class Config: diff --git a/nonebot_plugin_marshoai/plugin/register.py b/nonebot_plugin_marshoai/plugin/register.py index 1f281332..90d79c69 100755 --- a/nonebot_plugin_marshoai/plugin/register.py +++ b/nonebot_plugin_marshoai/plugin/register.py @@ -2,17 +2,17 @@ """ import inspect -from typing import Any, Callable, Coroutine, TypeAlias from nonebot import logger +from nonebot_plugin_marshoai.plugin.utils import is_coroutine_callable + from .models import FunctionCall, FunctionCallArgument from .typing import ( ASYNC_FUNCTION_CALL_FUNC, FUNCTION_CALL_FUNC, SYNC_FUNCTION_CALL_FUNC, ) -from .utils import is_coroutine_callable _loaded_functions: dict[str, FUNCTION_CALL_FUNC] = {} @@ -42,21 +42,21 @@ def function_call(*funcs: FUNCTION_CALL_FUNC) -> None: Returns: str: 函数定义信息 """ - for func in funcs: - function_call = get_function_info(func) - # TODO: 注册函数 + # for func in funcs: + # function_call = get_function_info(func) + # # TODO: 注册函数 -def get_function_info(func: FUNCTION_CALL_FUNC): - """获取函数信息 +# def get_function_info(func: FUNCTION_CALL_FUNC) -> FunctionCall: +# """获取函数信息 - Args: - func: 函数对象 +# Args: +# func: 函数对象 - Returns: - FunctionCall: 函数信息对象模型 - """ - name = func.__name__ - description = func.__doc__ - logger.info(f"注册函数: {name} {description}") - # TODO: 获取函数参数信息 +# Returns: +# FunctionCall: 函数信息对象模型 +# """ +# description = func.__doc__ +# # TODO: 获取函数参数信息 +# parameters = {} +# pass diff --git a/pyproject.toml b/pyproject.toml index a110365b..52dde7a2 100755 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,8 @@ dependencies = [ "pyyaml>=6.0.2", "psutil>=6.1.0", "beautifulsoup4>=4.12.3", - "pydantic>=2.10.3" + "pydantic>=2.10.3", + "litedoc>=0.1.0.dev20241214103915" ] license = { text = "MIT, Mulan PSL v2" } @@ -65,3 +66,6 @@ dev = [ "black>=24.10.0", "litedoc>=0.1.0.dev20240906203154", ] +test = [ + "nonebug>=0.4.3", +] diff --git a/tests/test_none.py b/tests/test_example.py similarity index 100% rename from tests/test_none.py rename to tests/test_example.py diff --git a/tests/test_plugin.py b/tests/test_plugin.py new file mode 100644 index 00000000..7f47376d --- /dev/null +++ b/tests/test_plugin.py @@ -0,0 +1,20 @@ +def example_function(num: int, text: str, is_a: bool) -> str: + """这是一个示例描述 + + Args: + num (int): 描述整数 + text (str): 文本类型 + is_a (bool): 布尔类型 + + Returns: + str: 消息 + """ + return "-" + + +class TestPlugin: + def test_get_function_info(self): + from nonebot_plugin_marshoai.plugin import get_function_info + + func_info = get_function_info(example_function) + print(func_info)