1
0
forked from bot/app

📝 生成了api文档

This commit is contained in:
远野千束 2024-08-19 09:55:47 +08:00
parent 943e0c2665
commit 85a3a9ad52
26 changed files with 634 additions and 850 deletions

View File

@ -9,217 +9,177 @@ category: API
获取轻雪实例
Returns:
LiteyukiBot: 当前的轻雪实例
### ***def*** `get_config(key: str, default: Any) -> Any`
获取配置
Args:
key: 配置键
default: 默认值
Returns:
Any: 配置值
### ***def*** `get_config_with_compat(key: str, compat_keys: tuple[str], default: Any) -> Any`
获取配置,兼容旧版本
Args:
key: 配置键
compat_keys: 兼容键
default: 默认值
Returns:
Any: 配置值
### ***def*** `print_logo() -> None`
### ***def*** `run(self: Any) -> None`
启动逻辑
### ***def*** `keep_alive(self: Any) -> None`
保持轻雪运行
Returns:
### ***def*** `restart(self: Any, delay: int) -> None`
重启轻雪本体
Returns:
### ***def*** `restart_process(self: Any, name: Optional[str]) -> None`
停止轻雪
Args:
name: 进程名称, 默认为None, 所有进程
Returns:
### ***def*** `init(self: Any) -> None`
初始化轻雪, 自动调用
Returns:
### ***def*** `init_logger(self: Any) -> None`
### ***def*** `stop(self: Any) -> None`
停止轻雪
Returns:
### ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> None`
注册启动前的函数
Args:
func:
Returns:
### ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> None`
注册启动后的函数
Args:
func:
Returns:
### ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
注册停止后的函数:未实现
Args:
func:
Returns:
### ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
注册进程停止前的函数,为子进程停止时调用
Args:
func:
Returns:
### ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> None`
注册进程重启前的函数,为子进程重启时调用
Args:
func:
Returns:
### ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> None`
注册重启后的函数:未实现
Args:
func:
Returns:
### ***def*** `on_after_nonebot_init(self: Any, func: LIFESPAN_FUNC) -> None`
注册nonebot初始化后的函数
Args:
func:
Returns:
### ***class*** `LiteyukiBot`
####   ***def*** `run(self: Any) -> None`
###   ***def*** `run(self: Any) -> None`
启动逻辑
 启动逻辑
####   ***def*** `keep_alive(self: Any) -> None`
###   ***def*** `keep_alive(self: Any) -> None`
 保持轻雪运行
保持轻雪运行
Returns:
####   ***def*** `restart(self: Any, delay: int) -> None`
###   ***def*** `restart(self: Any, delay: int) -> None`
 重启轻雪本体
重启轻雪本体
Returns:
####   ***def*** `restart_process(self: Any, name: Optional[str]) -> None`
###   ***def*** `restart_process(self: Any, name: Optional[str]) -> None`
 停止轻雪
停止轻雪
Args:
name: 进程名称, 默认为None, 所有进程
Returns:
####   ***def*** `init(self: Any) -> None`
###   ***def*** `init(self: Any) -> None`
 初始化轻雪, 自动调用
初始化轻雪, 自动调用
Returns:
####   ***def*** `init_logger(self: Any) -> None`
###   ***def*** `init_logger(self: Any) -> None`
 
####   ***def*** `stop(self: Any) -> None`
###   ***def*** `stop(self: Any) -> None`
 停止轻雪
停止轻雪
Returns:
####   ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> None`
###   ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> None`
 注册启动前的函数
注册启动前的函数
Args:
func:
Returns:
####   ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> None`
###   ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> None`
 注册启动后的函数
注册启动后的函数
Args:
func:
Returns:
####   ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
###   ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
 注册停止后的函数:未实现
注册停止后的函数:未实现
Args:
func:
Returns:
####   ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
###   ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
 注册进程停止前的函数,为子进程停止时调用
注册进程停止前的函数,为子进程停止时调用
Args:
func:
Returns:
####   ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> None`
###   ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> None`
 注册进程重启前的函数,为子进程重启时调用
注册进程重启前的函数,为子进程重启时调用
Args:
func:
Returns:
####   ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> None`
###   ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> None`
 注册重启后的函数:未实现
注册重启后的函数:未实现
Args:
func:
Returns:
####   ***def*** `on_after_nonebot_init(self: Any, func: LIFESPAN_FUNC) -> None`
###   ***def*** `on_after_nonebot_init(self: Any, func: LIFESPAN_FUNC) -> None`
 注册nonebot初始化后的函数
注册nonebot初始化后的函数
Args:
func:
Returns:

View File

@ -8,194 +8,147 @@ category: API
### ***def*** `run_funcs(funcs: list[LIFESPAN_FUNC | PROCESS_LIFESPAN_FUNC]) -> None`
运行函数
Args:
funcs:
Returns:
### ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册启动时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册启动时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册停止前的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册停止后的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册重启时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册重启后的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_after_nonebot_init(self: Any, func: Any) -> None`
注册 NoneBot 初始化后的函数
Args:
func:
Returns:
### ***def*** `before_start(self: Any) -> None`
启动前
Returns:
### ***def*** `after_start(self: Any) -> None`
启动后
Returns:
### ***def*** `before_process_shutdown(self: Any) -> None`
停止前
Returns:
### ***def*** `after_shutdown(self: Any) -> None`
停止后
Returns:
### ***def*** `before_process_restart(self: Any) -> None`
重启前
Returns:
### ***def*** `after_restart(self: Any) -> None`
重启后
Returns:
### ***class*** `Lifespan`
#### `@staticmethod`
###   ***@staticmethod***
###   ***def*** `run_funcs(funcs: list[LIFESPAN_FUNC | PROCESS_LIFESPAN_FUNC]) -> None`
####   ***def*** `run_funcs(funcs: list[LIFESPAN_FUNC | PROCESS_LIFESPAN_FUNC]) -> None`
 运行函数
运行函数
Args:
funcs:
Returns:
####   ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
###   ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
 注册启动时的函数
注册启动时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
####   ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
###   ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
 注册启动时的函数
注册启动时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
####   ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
###   ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
 注册停止前的函数
注册停止前的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
####   ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
###   ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
 注册停止后的函数
注册停止后的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
####   ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
###   ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
 注册重启时的函数
注册重启时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
####   ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
###   ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
 注册重启后的函数
注册重启后的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
####   ***def*** `on_after_nonebot_init(self: Any, func: Any) -> None`
###   ***def*** `on_after_nonebot_init(self: Any, func: Any) -> None`
 注册 NoneBot 初始化后的函数
注册 NoneBot 初始化后的函数
Args:
func:
Returns:
####   ***def*** `before_start(self: Any) -> None`
###   ***def*** `before_start(self: Any) -> None`
 启动前
启动前
Returns:
####   ***def*** `after_start(self: Any) -> None`
###   ***def*** `after_start(self: Any) -> None`
 启动后
启动后
Returns:
####   ***def*** `before_process_shutdown(self: Any) -> None`
###   ***def*** `before_process_shutdown(self: Any) -> None`
 停止前
停止前
Returns:
####   ***def*** `after_shutdown(self: Any) -> None`
###   ***def*** `after_shutdown(self: Any) -> None`
 停止后
停止后
Returns:
####   ***def*** `before_process_restart(self: Any) -> None`
###   ***def*** `before_process_restart(self: Any) -> None`
 重启前
重启前
Returns:
####   ***def*** `after_restart(self: Any) -> None`
###   ***def*** `after_restart(self: Any) -> None`
 重启后
重启后
Returns:

View File

@ -8,51 +8,37 @@ category: API
### ***def*** `set_channel(name: str, channel: Channel) -> None`
设置通道实例
Args:
name: 通道名称
channel: 通道实例
### ***def*** `set_channels(channels: dict[str, Channel]) -> None`
设置通道实例
Args:
channels: 通道名称
### ***def*** `get_channel(name: str) -> Channel`
获取通道实例
Args:
name: 通道名称
Returns:
### ***def*** `get_channels() -> dict[str, Channel]`
获取通道实例
Returns:
### ***def*** `send(self: Any, data: T) -> None`
发送数据
Args:
data: 数据
### ***def*** `receive(self: Any) -> T`
接收数据
Args:
### ***def*** `close(self: Any) -> None`
关闭通道
### ***def*** `on_receive(self: Any, filter_func: Optional[FILTER_FUNC]) -> Callable[[Callable[[T], Any]], Callable[[T], Any]]`
接收数据并执行函数
Args:
filter_func: 过滤函数为None则不过滤
Returns:
装饰器,装饰一个函数在接收到数据后执行
### ***def*** `on_set_channel(data: tuple[str, dict[str, Any]]) -> None`
@ -76,28 +62,36 @@ Returns:
### ***class*** `Channel(Generic[T])`
通道类,可以在进程间和进程内通信,双向但同时只能有一个发送者和一个接收者
有两种接收工作方式,但是只能选择一种,主动接收和被动接收,主动接收使用 `receive` 方法,被动接收使用 `on_receive` 装饰器
####   ***def*** `send(self: Any, data: T) -> None`
###   ***def*** `send(self: Any, data: T) -> None`
 发送数据
发送数据
Args:
data: 数据
####   ***def*** `receive(self: Any) -> T`
###   ***def*** `receive(self: Any) -> T`
 接收数据
接收数据
Args:
####   ***def*** `close(self: Any) -> None`
###   ***def*** `close(self: Any) -> None`
关闭通道
 关闭通道
####   ***def*** `on_receive(self: Any, filter_func: Optional[FILTER_FUNC]) -> Callable[[Callable[[T], Any]], Callable[[T], Any]]`
###   ***def*** `on_receive(self: Any, filter_func: Optional[FILTER_FUNC]) -> Callable[[Callable[[T], Any]], Callable[[T], Any]]`
 接收数据并执行函数
接收数据并执行函数
Args:
filter_func: 过滤函数为None则不过滤
Returns:
装饰器,装饰一个函数在接收到数据后执行

View File

@ -5,42 +5,6 @@ icon: laptop-code
category: API
---
### ***def*** `set(self: Any, key: str, value: Any) -> None`
设置键值对
Args:
key: 键
value: 值
### ***def*** `get(self: Any, key: str, default: Optional[Any]) -> Optional[Any]`
获取键值对
Args:
key: 键
default: 默认值
Returns:
Any: 值
### ***def*** `delete(self: Any, key: str, ignore_key_error: bool) -> None`
删除键值对
Args:
key: 键
ignore_key_error: 是否忽略键不存在的错误
Returns:
### ***def*** `get_all(self: Any) -> dict[str, Any]`
获取所有键值对
Returns:
dict[str, Any]: 键值对
### ***def*** `get_instance(cls: Any) -> None`
### ***def*** `on_get(data: tuple[str, dict[str, Any]]) -> None`
@ -61,53 +25,64 @@ Returns:
####   ***def*** `set(self: Any, key: str, value: Any) -> None`
###   ***def*** `set(self: Any, key: str, value: Any) -> None`
 设置键值对
设置键值对
Args:
key: 键
value: 值
####   ***def*** `get(self: Any, key: str, default: Optional[Any]) -> Optional[Any]`
###   ***def*** `get(self: Any, key: str, default: Optional[Any]) -> Optional[Any]`
 获取键值对
获取键值对
Args:
key: 键
default: 默认值
Returns:
Any: 值
####   ***def*** `delete(self: Any, key: str, ignore_key_error: bool) -> None`
###   ***def*** `delete(self: Any, key: str, ignore_key_error: bool) -> None`
 删除键值对
删除键值对
Args:
key: 键
ignore_key_error: 是否忽略键不存在的错误
Returns:
####   ***def*** `get_all(self: Any) -> dict[str, Any]`
###   ***def*** `get_all(self: Any) -> dict[str, Any]`
 获取所有键值对
获取所有键值对
Returns:
dict[str, Any]: 键值对
### ***class*** `GlobalKeyValueStore`
#### `@classmethod`
###   ***@classmethod***
###   ***def*** `get_instance(cls: Any) -> None`
####   ***def*** `get_instance(cls: Any) -> None`
 
###   ***attr*** `_instance: None`
####   ***attr*** `_instance`
Type: None
####   ***attr*** `_lock`
Type: threading.Lock()
###   ***attr*** `_lock: threading.Lock()`

View File

@ -9,11 +9,18 @@ category: API
扁平化配置文件
{a:{b:{c:1}}} -> {"a.b.c": 1}
Args:
config: 配置项目
Returns:
扁平化后的配置文件,但也包含原有的键值对
### ***def*** `load_from_yaml(file: str) -> dict[str, Any]`
@ -31,18 +38,23 @@ Load config from toml file
### ***def*** `load_from_files() -> dict[str, Any]`
从指定文件加载配置项,会自动识别文件格式
默认执行扁平化选项
### ***def*** `load_configs_from_dirs() -> dict[str, Any]`
从目录下加载配置文件,不递归
按照读取文件的优先级反向覆盖
默认执行扁平化选项
### ***def*** `load_config_in_default(no_waring: bool) -> dict[str, Any]`
从一个标准的轻雪项目加载配置文件
项目目录下的config.*和config目录下的所有配置文件
项目目录下的配置文件优先
### ***class*** `SatoriNodeConfig(BaseModel)`

View File

@ -5,50 +5,6 @@ icon: laptop-code
category: API
---
### ***def*** `start(self: Any, name: str) -> None`
开启后自动监控进程,并添加到进程字典中
Args:
name:
Returns:
### ***def*** `start_all(self: Any) -> None`
启动所有进程
### ***def*** `add_target(self: Any, name: str, target: TARGET_FUNC, args: tuple, kwargs: Any) -> None`
添加进程
Args:
name: 进程名,用于获取和唯一标识
target: 进程函数
args: 进程函数参数
kwargs: 进程函数关键字参数通常会默认传入chan_active和chan_passive
### ***def*** `join_all(self: Any) -> None`
### ***def*** `terminate(self: Any, name: str) -> None`
终止进程并从进程字典中删除
Args:
name:
Returns:
### ***def*** `terminate_all(self: Any) -> None`
### ***def*** `is_process_alive(self: Any, name: str) -> bool`
检查进程是否存活
Args:
name:
Returns:
### ***class*** `ChannelDeliver`
@ -57,47 +13,63 @@ Returns:
进程管理器
####   ***def*** `start(self: Any, name: str) -> None`
###   ***def*** `start(self: Any, name: str) -> None`
 开启后自动监控进程,并添加到进程字典中
开启后自动监控进程,并添加到进程字典中
Args:
name:
Returns:
####   ***def*** `start_all(self: Any) -> None`
###   ***def*** `start_all(self: Any) -> None`
启动所有进程
 启动所有进程
####   ***def*** `add_target(self: Any, name: str, target: TARGET_FUNC, args: tuple, kwargs: Any) -> None`
###   ***def*** `add_target(self: Any, name: str, target: TARGET_FUNC, args: tuple, kwargs: Any) -> None`
 添加进程
添加进程
Args:
name: 进程名,用于获取和唯一标识
target: 进程函数
args: 进程函数参数
kwargs: 进程函数关键字参数通常会默认传入chan_active和chan_passive
####   ***def*** `join_all(self: Any) -> None`
###   ***def*** `join_all(self: Any) -> None`
 
####   ***def*** `terminate(self: Any, name: str) -> None`
###   ***def*** `terminate(self: Any, name: str) -> None`
 终止进程并从进程字典中删除
终止进程并从进程字典中删除
Args:
name:
Returns:
####   ***def*** `terminate_all(self: Any) -> None`
###   ***def*** `terminate_all(self: Any) -> None`
 
####   ***def*** `is_process_alive(self: Any, name: str) -> bool`
###   ***def*** `is_process_alive(self: Any, name: str) -> bool`
 检查进程是否存活
检查进程是否存活
Args:
name:
Returns:

View File

@ -12,37 +12,23 @@ category: API
### ***def*** `on_file_system_event(directories: tuple[str], recursive: bool, event_filter: FILTER_FUNC) -> Callable[[CALLBACK_FUNC], CALLBACK_FUNC]`
注册文件系统变化监听器
Args:
directories: 监听目录们
recursive: 是否递归监听子目录
event_filter: 事件过滤器, 返回True则执行回调函数
Returns:
装饰器,装饰一个函数在接收到数据后执行
### ***def*** `decorator(func: Any) -> None`
### ***def*** `on_modified(self: Any, event: Any) -> None`
### ***def*** `on_created(self: Any, event: Any) -> None`
### ***def*** `on_deleted(self: Any, event: Any) -> None`
### ***def*** `on_moved(self: Any, event: Any) -> None`
### ***def*** `on_any_event(self: Any, event: Any) -> None`
### ***def*** `decorator(func: CALLBACK_FUNC) -> CALLBACK_FUNC`
@ -59,23 +45,23 @@ Returns:
Handler for code file changes
####   ***def*** `on_modified(self: Any, event: Any) -> None`
###   ***def*** `on_modified(self: Any, event: Any) -> None`
 
####   ***def*** `on_created(self: Any, event: Any) -> None`
###   ***def*** `on_created(self: Any, event: Any) -> None`
 
####   ***def*** `on_deleted(self: Any, event: Any) -> None`
###   ***def*** `on_deleted(self: Any, event: Any) -> None`
 
####   ***def*** `on_moved(self: Any, event: Any) -> None`
###   ***def*** `on_moved(self: Any, event: Any) -> None`
 
####   ***def*** `on_any_event(self: Any, event: Any) -> None`
###   ***def*** `on_any_event(self: Any, event: Any) -> None`
 

View File

@ -8,6 +8,8 @@ category: API
### ***def*** `run_plugins() -> None`
运行插件无需手动初始化bot
Args:
module_path: 插件路径,参考`liteyuki.load_plugin`的函数签名

View File

@ -12,5 +12,6 @@ category: API
### ***def*** `init_log(config: dict) -> None`
在语言加载完成后执行
Returns:

View File

@ -8,6 +8,8 @@ category: API
### ***def*** `get_loaded_plugins() -> dict[str, Plugin]`
获取已加载的插件
Returns:
dict[str, Plugin]: 插件字典

View File

@ -9,25 +9,39 @@ category: API
加载单个插件,可以是本地插件或是通过 `pip` 安装的插件。
参数:
module_path: 插件名称 `path.to.your.plugin`
或插件路径 `pathlib.Path(path/to/your/plugin)`
### ***def*** `load_plugins() -> set[Plugin]`
导入文件夹下多个插件
参数:
plugin_dir: 文件夹路径
ignore_warning: 是否忽略警告,通常是目录不存在或目录为空
### ***def*** `format_display_name(display_name: str, plugin_type: PluginType) -> str`
设置插件名称颜色,根据不同类型插件设置颜色
Args:
display_name: 插件名称
plugin_type: 插件类型
Returns:
str: 设置后的插件名称 <y>name</y>

View File

@ -9,52 +9,57 @@ category: API
插件类型枚举值
#### &emsp; ***attr*** `APPLICATION`
### &emsp; ***attr*** `APPLICATION: 'application'`
Type: 'application'
### &emsp; ***attr*** `SERVICE: 'service'`
#### &emsp; ***attr*** `SERVICE`
### &emsp; ***attr*** `IMPLEMENTATION: 'implementation'`
Type: 'service'
### &emsp; ***attr*** `MODULE: 'module'`
#### &emsp; ***attr*** `IMPLEMENTATION`
Type: 'implementation'
#### &emsp; ***attr*** `MODULE`
Type: 'module'
#### &emsp; ***attr*** `UNCLASSIFIED`
Type: 'unclassified'
### &emsp; ***attr*** `UNCLASSIFIED: 'unclassified'`
### ***class*** `PluginMetadata(BaseModel)`
轻雪插件元数据由插件编写者提供name为必填项
Attributes:
----------
name: str
插件名称
description: str
插件描述
usage: str
插件使用方法
type: str
插件类型
author: str
插件作者
homepage: str
插件主页
extra: dict[str, Any]
额外信息
### ***class*** `Plugin(BaseModel)`
存储插件信息
#### &emsp; ***attr*** `model_config`
Type: {'arbitrary_types_allowed': True}
### &emsp; ***attr*** `model_config: {'arbitrary_types_allowed': True}`

View File

@ -8,33 +8,49 @@ category: API
### ***def*** `is_coroutine_callable(call: Callable[..., Any]) -> bool`
判断是否为协程可调用对象
Args:
call: 可调用对象
Returns:
bool: 是否为协程可调用对象
### ***def*** `run_coroutine() -> None`
运行协程
Args:
coro:
Returns:
### ***def*** `path_to_module_name(path: Path) -> str`
转换路径为模块名
Args:
path: 路径a/b/c/d -> a.b.c.d
Returns:
str: 模块名
### ***def*** `async_wrapper(func: Callable[..., Any]) -> Callable[..., Coroutine]`
异步包装器
Args:
func: Sync Callable
Returns:
Coroutine: Asynchronous Callable
### ***async def*** `wrapper() -> None`

View File

@ -9,217 +9,177 @@ category: API
获取轻雪实例
Returns:
LiteyukiBot: 当前的轻雪实例
### ***def*** `get_config(key: str, default: Any) -> Any`
获取配置
Args:
key: 配置键
default: 默认值
Returns:
Any: 配置值
### ***def*** `get_config_with_compat(key: str, compat_keys: tuple[str], default: Any) -> Any`
获取配置,兼容旧版本
Args:
key: 配置键
compat_keys: 兼容键
default: 默认值
Returns:
Any: 配置值
### ***def*** `print_logo() -> None`
### ***def*** `run(self: Any) -> None`
启动逻辑
### ***def*** `keep_alive(self: Any) -> None`
保持轻雪运行
Returns:
### ***def*** `restart(self: Any, delay: int) -> None`
重启轻雪本体
Returns:
### ***def*** `restart_process(self: Any, name: Optional[str]) -> None`
停止轻雪
Args:
name: 进程名称, 默认为None, 所有进程
Returns:
### ***def*** `init(self: Any) -> None`
初始化轻雪, 自动调用
Returns:
### ***def*** `init_logger(self: Any) -> None`
### ***def*** `stop(self: Any) -> None`
停止轻雪
Returns:
### ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> None`
注册启动前的函数
Args:
func:
Returns:
### ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> None`
注册启动后的函数
Args:
func:
Returns:
### ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
注册停止后的函数:未实现
Args:
func:
Returns:
### ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
注册进程停止前的函数,为子进程停止时调用
Args:
func:
Returns:
### ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> None`
注册进程重启前的函数,为子进程重启时调用
Args:
func:
Returns:
### ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> None`
注册重启后的函数:未实现
Args:
func:
Returns:
### ***def*** `on_after_nonebot_init(self: Any, func: LIFESPAN_FUNC) -> None`
注册nonebot初始化后的函数
Args:
func:
Returns:
### ***class*** `LiteyukiBot`
#### &emsp; ***def*** `run(self: Any) -> None`
### &emsp; ***def*** `run(self: Any) -> None`
启动逻辑
&emsp;启动逻辑
#### &emsp; ***def*** `keep_alive(self: Any) -> None`
### &emsp; ***def*** `keep_alive(self: Any) -> None`
&emsp;保持轻雪运行
保持轻雪运行
Returns:
#### &emsp; ***def*** `restart(self: Any, delay: int) -> None`
### &emsp; ***def*** `restart(self: Any, delay: int) -> None`
&emsp;重启轻雪本体
重启轻雪本体
Returns:
#### &emsp; ***def*** `restart_process(self: Any, name: Optional[str]) -> None`
### &emsp; ***def*** `restart_process(self: Any, name: Optional[str]) -> None`
&emsp;停止轻雪
停止轻雪
Args:
name: 进程名称, 默认为None, 所有进程
Returns:
#### &emsp; ***def*** `init(self: Any) -> None`
### &emsp; ***def*** `init(self: Any) -> None`
&emsp;初始化轻雪, 自动调用
初始化轻雪, 自动调用
Returns:
#### &emsp; ***def*** `init_logger(self: Any) -> None`
### &emsp; ***def*** `init_logger(self: Any) -> None`
&emsp;
#### &emsp; ***def*** `stop(self: Any) -> None`
### &emsp; ***def*** `stop(self: Any) -> None`
&emsp;停止轻雪
停止轻雪
Returns:
#### &emsp; ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> None`
### &emsp; ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> None`
&emsp;注册启动前的函数
注册启动前的函数
Args:
func:
Returns:
#### &emsp; ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> None`
### &emsp; ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> None`
&emsp;注册启动后的函数
注册启动后的函数
Args:
func:
Returns:
#### &emsp; ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
### &emsp; ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
&emsp;注册停止后的函数:未实现
注册停止后的函数:未实现
Args:
func:
Returns:
#### &emsp; ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
### &emsp; ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> None`
&emsp;注册进程停止前的函数,为子进程停止时调用
注册进程停止前的函数,为子进程停止时调用
Args:
func:
Returns:
#### &emsp; ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> None`
### &emsp; ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> None`
&emsp;注册进程重启前的函数,为子进程重启时调用
注册进程重启前的函数,为子进程重启时调用
Args:
func:
Returns:
#### &emsp; ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> None`
### &emsp; ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> None`
&emsp;注册重启后的函数:未实现
注册重启后的函数:未实现
Args:
func:
Returns:
#### &emsp; ***def*** `on_after_nonebot_init(self: Any, func: LIFESPAN_FUNC) -> None`
### &emsp; ***def*** `on_after_nonebot_init(self: Any, func: LIFESPAN_FUNC) -> None`
&emsp;注册nonebot初始化后的函数
注册nonebot初始化后的函数
Args:
func:
Returns:

View File

@ -8,194 +8,147 @@ category: API
### ***def*** `run_funcs(funcs: list[LIFESPAN_FUNC | PROCESS_LIFESPAN_FUNC]) -> None`
运行函数
Args:
funcs:
Returns:
### ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册启动时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册启动时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册停止前的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册停止后的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册重启时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
注册重启后的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
### ***def*** `on_after_nonebot_init(self: Any, func: Any) -> None`
注册 NoneBot 初始化后的函数
Args:
func:
Returns:
### ***def*** `before_start(self: Any) -> None`
启动前
Returns:
### ***def*** `after_start(self: Any) -> None`
启动后
Returns:
### ***def*** `before_process_shutdown(self: Any) -> None`
停止前
Returns:
### ***def*** `after_shutdown(self: Any) -> None`
停止后
Returns:
### ***def*** `before_process_restart(self: Any) -> None`
重启前
Returns:
### ***def*** `after_restart(self: Any) -> None`
重启后
Returns:
### ***class*** `Lifespan`
#### `@staticmethod`
### &emsp; ***@staticmethod***
### &emsp; ***def*** `run_funcs(funcs: list[LIFESPAN_FUNC | PROCESS_LIFESPAN_FUNC]) -> None`
#### &emsp; ***def*** `run_funcs(funcs: list[LIFESPAN_FUNC | PROCESS_LIFESPAN_FUNC]) -> None`
&emsp;运行函数
运行函数
Args:
funcs:
Returns:
#### &emsp; ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
### &emsp; ***def*** `on_before_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
&emsp;注册启动时的函数
注册启动时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
#### &emsp; ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
### &emsp; ***def*** `on_after_start(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
&emsp;注册启动时的函数
注册启动时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
#### &emsp; ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
### &emsp; ***def*** `on_before_process_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
&emsp;注册停止前的函数
注册停止前的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
#### &emsp; ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
### &emsp; ***def*** `on_after_shutdown(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
&emsp;注册停止后的函数
注册停止后的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
#### &emsp; ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
### &emsp; ***def*** `on_before_process_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
&emsp;注册重启时的函数
注册重启时的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
#### &emsp; ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
### &emsp; ***def*** `on_after_restart(self: Any, func: LIFESPAN_FUNC) -> LIFESPAN_FUNC`
&emsp;注册重启后的函数
注册重启后的函数
Args:
func:
Returns:
LIFESPAN_FUNC:
#### &emsp; ***def*** `on_after_nonebot_init(self: Any, func: Any) -> None`
### &emsp; ***def*** `on_after_nonebot_init(self: Any, func: Any) -> None`
&emsp;注册 NoneBot 初始化后的函数
注册 NoneBot 初始化后的函数
Args:
func:
Returns:
#### &emsp; ***def*** `before_start(self: Any) -> None`
### &emsp; ***def*** `before_start(self: Any) -> None`
&emsp;启动前
启动前
Returns:
#### &emsp; ***def*** `after_start(self: Any) -> None`
### &emsp; ***def*** `after_start(self: Any) -> None`
&emsp;启动后
启动后
Returns:
#### &emsp; ***def*** `before_process_shutdown(self: Any) -> None`
### &emsp; ***def*** `before_process_shutdown(self: Any) -> None`
&emsp;停止前
停止前
Returns:
#### &emsp; ***def*** `after_shutdown(self: Any) -> None`
### &emsp; ***def*** `after_shutdown(self: Any) -> None`
&emsp;停止后
停止后
Returns:
#### &emsp; ***def*** `before_process_restart(self: Any) -> None`
### &emsp; ***def*** `before_process_restart(self: Any) -> None`
&emsp;重启前
重启前
Returns:
#### &emsp; ***def*** `after_restart(self: Any) -> None`
### &emsp; ***def*** `after_restart(self: Any) -> None`
&emsp;重启后
重启后
Returns:

View File

@ -8,51 +8,37 @@ category: API
### ***def*** `set_channel(name: str, channel: Channel) -> None`
设置通道实例
Args:
name: 通道名称
channel: 通道实例
### ***def*** `set_channels(channels: dict[str, Channel]) -> None`
设置通道实例
Args:
channels: 通道名称
### ***def*** `get_channel(name: str) -> Channel`
获取通道实例
Args:
name: 通道名称
Returns:
### ***def*** `get_channels() -> dict[str, Channel]`
获取通道实例
Returns:
### ***def*** `send(self: Any, data: T) -> None`
发送数据
Args:
data: 数据
### ***def*** `receive(self: Any) -> T`
接收数据
Args:
### ***def*** `close(self: Any) -> None`
关闭通道
### ***def*** `on_receive(self: Any, filter_func: Optional[FILTER_FUNC]) -> Callable[[Callable[[T], Any]], Callable[[T], Any]]`
接收数据并执行函数
Args:
filter_func: 过滤函数为None则不过滤
Returns:
装饰器,装饰一个函数在接收到数据后执行
### ***def*** `on_set_channel(data: tuple[str, dict[str, Any]]) -> None`
@ -76,28 +62,36 @@ Returns:
### ***class*** `Channel(Generic[T])`
通道类,可以在进程间和进程内通信,双向但同时只能有一个发送者和一个接收者
有两种接收工作方式,但是只能选择一种,主动接收和被动接收,主动接收使用 `receive` 方法,被动接收使用 `on_receive` 装饰器
#### &emsp; ***def*** `send(self: Any, data: T) -> None`
### &emsp; ***def*** `send(self: Any, data: T) -> None`
&emsp;发送数据
发送数据
Args:
data: 数据
#### &emsp; ***def*** `receive(self: Any) -> T`
### &emsp; ***def*** `receive(self: Any) -> T`
&emsp;接收数据
接收数据
Args:
#### &emsp; ***def*** `close(self: Any) -> None`
### &emsp; ***def*** `close(self: Any) -> None`
关闭通道
&emsp;关闭通道
#### &emsp; ***def*** `on_receive(self: Any, filter_func: Optional[FILTER_FUNC]) -> Callable[[Callable[[T], Any]], Callable[[T], Any]]`
### &emsp; ***def*** `on_receive(self: Any, filter_func: Optional[FILTER_FUNC]) -> Callable[[Callable[[T], Any]], Callable[[T], Any]]`
&emsp;接收数据并执行函数
接收数据并执行函数
Args:
filter_func: 过滤函数为None则不过滤
Returns:
装饰器,装饰一个函数在接收到数据后执行

View File

@ -5,42 +5,6 @@ icon: laptop-code
category: API
---
### ***def*** `set(self: Any, key: str, value: Any) -> None`
设置键值对
Args:
key: 键
value: 值
### ***def*** `get(self: Any, key: str, default: Optional[Any]) -> Optional[Any]`
获取键值对
Args:
key: 键
default: 默认值
Returns:
Any: 值
### ***def*** `delete(self: Any, key: str, ignore_key_error: bool) -> None`
删除键值对
Args:
key: 键
ignore_key_error: 是否忽略键不存在的错误
Returns:
### ***def*** `get_all(self: Any) -> dict[str, Any]`
获取所有键值对
Returns:
dict[str, Any]: 键值对
### ***def*** `get_instance(cls: Any) -> None`
### ***def*** `on_get(data: tuple[str, dict[str, Any]]) -> None`
@ -61,53 +25,64 @@ Returns:
#### &emsp; ***def*** `set(self: Any, key: str, value: Any) -> None`
### &emsp; ***def*** `set(self: Any, key: str, value: Any) -> None`
&emsp;设置键值对
设置键值对
Args:
key: 键
value: 值
#### &emsp; ***def*** `get(self: Any, key: str, default: Optional[Any]) -> Optional[Any]`
### &emsp; ***def*** `get(self: Any, key: str, default: Optional[Any]) -> Optional[Any]`
&emsp;获取键值对
获取键值对
Args:
key: 键
default: 默认值
Returns:
Any: 值
#### &emsp; ***def*** `delete(self: Any, key: str, ignore_key_error: bool) -> None`
### &emsp; ***def*** `delete(self: Any, key: str, ignore_key_error: bool) -> None`
&emsp;删除键值对
删除键值对
Args:
key: 键
ignore_key_error: 是否忽略键不存在的错误
Returns:
#### &emsp; ***def*** `get_all(self: Any) -> dict[str, Any]`
### &emsp; ***def*** `get_all(self: Any) -> dict[str, Any]`
&emsp;获取所有键值对
获取所有键值对
Returns:
dict[str, Any]: 键值对
### ***class*** `GlobalKeyValueStore`
#### `@classmethod`
### &emsp; ***@classmethod***
### &emsp; ***def*** `get_instance(cls: Any) -> None`
#### &emsp; ***def*** `get_instance(cls: Any) -> None`
&emsp;
### &emsp; ***attr*** `_instance: None`
#### &emsp; ***attr*** `_instance`
Type: None
#### &emsp; ***attr*** `_lock`
Type: threading.Lock()
### &emsp; ***attr*** `_lock: threading.Lock()`

View File

@ -9,11 +9,18 @@ category: API
扁平化配置文件
{a:{b:{c:1}}} -> {"a.b.c": 1}
Args:
config: 配置项目
Returns:
扁平化后的配置文件,但也包含原有的键值对
### ***def*** `load_from_yaml(file: str) -> dict[str, Any]`
@ -31,18 +38,23 @@ Load config from toml file
### ***def*** `load_from_files() -> dict[str, Any]`
从指定文件加载配置项,会自动识别文件格式
默认执行扁平化选项
### ***def*** `load_configs_from_dirs() -> dict[str, Any]`
从目录下加载配置文件,不递归
按照读取文件的优先级反向覆盖
默认执行扁平化选项
### ***def*** `load_config_in_default(no_waring: bool) -> dict[str, Any]`
从一个标准的轻雪项目加载配置文件
项目目录下的config.*和config目录下的所有配置文件
项目目录下的配置文件优先
### ***class*** `SatoriNodeConfig(BaseModel)`

View File

@ -5,50 +5,6 @@ icon: laptop-code
category: API
---
### ***def*** `start(self: Any, name: str) -> None`
开启后自动监控进程,并添加到进程字典中
Args:
name:
Returns:
### ***def*** `start_all(self: Any) -> None`
启动所有进程
### ***def*** `add_target(self: Any, name: str, target: TARGET_FUNC, args: tuple, kwargs: Any) -> None`
添加进程
Args:
name: 进程名,用于获取和唯一标识
target: 进程函数
args: 进程函数参数
kwargs: 进程函数关键字参数通常会默认传入chan_active和chan_passive
### ***def*** `join_all(self: Any) -> None`
### ***def*** `terminate(self: Any, name: str) -> None`
终止进程并从进程字典中删除
Args:
name:
Returns:
### ***def*** `terminate_all(self: Any) -> None`
### ***def*** `is_process_alive(self: Any, name: str) -> bool`
检查进程是否存活
Args:
name:
Returns:
### ***class*** `ChannelDeliver`
@ -57,47 +13,63 @@ Returns:
进程管理器
#### &emsp; ***def*** `start(self: Any, name: str) -> None`
### &emsp; ***def*** `start(self: Any, name: str) -> None`
&emsp;开启后自动监控进程,并添加到进程字典中
开启后自动监控进程,并添加到进程字典中
Args:
name:
Returns:
#### &emsp; ***def*** `start_all(self: Any) -> None`
### &emsp; ***def*** `start_all(self: Any) -> None`
启动所有进程
&emsp;启动所有进程
#### &emsp; ***def*** `add_target(self: Any, name: str, target: TARGET_FUNC, args: tuple, kwargs: Any) -> None`
### &emsp; ***def*** `add_target(self: Any, name: str, target: TARGET_FUNC, args: tuple, kwargs: Any) -> None`
&emsp;添加进程
添加进程
Args:
name: 进程名,用于获取和唯一标识
target: 进程函数
args: 进程函数参数
kwargs: 进程函数关键字参数通常会默认传入chan_active和chan_passive
#### &emsp; ***def*** `join_all(self: Any) -> None`
### &emsp; ***def*** `join_all(self: Any) -> None`
&emsp;
#### &emsp; ***def*** `terminate(self: Any, name: str) -> None`
### &emsp; ***def*** `terminate(self: Any, name: str) -> None`
&emsp;终止进程并从进程字典中删除
终止进程并从进程字典中删除
Args:
name:
Returns:
#### &emsp; ***def*** `terminate_all(self: Any) -> None`
### &emsp; ***def*** `terminate_all(self: Any) -> None`
&emsp;
#### &emsp; ***def*** `is_process_alive(self: Any, name: str) -> bool`
### &emsp; ***def*** `is_process_alive(self: Any, name: str) -> bool`
&emsp;检查进程是否存活
检查进程是否存活
Args:
name:
Returns:

View File

@ -12,37 +12,23 @@ category: API
### ***def*** `on_file_system_event(directories: tuple[str], recursive: bool, event_filter: FILTER_FUNC) -> Callable[[CALLBACK_FUNC], CALLBACK_FUNC]`
注册文件系统变化监听器
Args:
directories: 监听目录们
recursive: 是否递归监听子目录
event_filter: 事件过滤器, 返回True则执行回调函数
Returns:
装饰器,装饰一个函数在接收到数据后执行
### ***def*** `decorator(func: Any) -> None`
### ***def*** `on_modified(self: Any, event: Any) -> None`
### ***def*** `on_created(self: Any, event: Any) -> None`
### ***def*** `on_deleted(self: Any, event: Any) -> None`
### ***def*** `on_moved(self: Any, event: Any) -> None`
### ***def*** `on_any_event(self: Any, event: Any) -> None`
### ***def*** `decorator(func: CALLBACK_FUNC) -> CALLBACK_FUNC`
@ -59,23 +45,23 @@ Returns:
Handler for code file changes
#### &emsp; ***def*** `on_modified(self: Any, event: Any) -> None`
### &emsp; ***def*** `on_modified(self: Any, event: Any) -> None`
&emsp;
#### &emsp; ***def*** `on_created(self: Any, event: Any) -> None`
### &emsp; ***def*** `on_created(self: Any, event: Any) -> None`
&emsp;
#### &emsp; ***def*** `on_deleted(self: Any, event: Any) -> None`
### &emsp; ***def*** `on_deleted(self: Any, event: Any) -> None`
&emsp;
#### &emsp; ***def*** `on_moved(self: Any, event: Any) -> None`
### &emsp; ***def*** `on_moved(self: Any, event: Any) -> None`
&emsp;
#### &emsp; ***def*** `on_any_event(self: Any, event: Any) -> None`
### &emsp; ***def*** `on_any_event(self: Any, event: Any) -> None`
&emsp;

View File

@ -8,6 +8,8 @@ category: API
### ***def*** `run_plugins() -> None`
运行插件无需手动初始化bot
Args:
module_path: 插件路径,参考`liteyuki.load_plugin`的函数签名

View File

@ -12,5 +12,6 @@ category: API
### ***def*** `init_log(config: dict) -> None`
在语言加载完成后执行
Returns:

View File

@ -8,6 +8,8 @@ category: API
### ***def*** `get_loaded_plugins() -> dict[str, Plugin]`
获取已加载的插件
Returns:
dict[str, Plugin]: 插件字典

View File

@ -9,25 +9,39 @@ category: API
加载单个插件,可以是本地插件或是通过 `pip` 安装的插件。
参数:
module_path: 插件名称 `path.to.your.plugin`
或插件路径 `pathlib.Path(path/to/your/plugin)`
### ***def*** `load_plugins() -> set[Plugin]`
导入文件夹下多个插件
参数:
plugin_dir: 文件夹路径
ignore_warning: 是否忽略警告,通常是目录不存在或目录为空
### ***def*** `format_display_name(display_name: str, plugin_type: PluginType) -> str`
设置插件名称颜色,根据不同类型插件设置颜色
Args:
display_name: 插件名称
plugin_type: 插件类型
Returns:
str: 设置后的插件名称 <y>name</y>

View File

@ -9,52 +9,57 @@ category: API
插件类型枚举值
#### &emsp; ***attr*** `APPLICATION`
### &emsp; ***attr*** `APPLICATION: 'application'`
Type: 'application'
### &emsp; ***attr*** `SERVICE: 'service'`
#### &emsp; ***attr*** `SERVICE`
### &emsp; ***attr*** `IMPLEMENTATION: 'implementation'`
Type: 'service'
### &emsp; ***attr*** `MODULE: 'module'`
#### &emsp; ***attr*** `IMPLEMENTATION`
Type: 'implementation'
#### &emsp; ***attr*** `MODULE`
Type: 'module'
#### &emsp; ***attr*** `UNCLASSIFIED`
Type: 'unclassified'
### &emsp; ***attr*** `UNCLASSIFIED: 'unclassified'`
### ***class*** `PluginMetadata(BaseModel)`
轻雪插件元数据由插件编写者提供name为必填项
Attributes:
----------
name: str
插件名称
description: str
插件描述
usage: str
插件使用方法
type: str
插件类型
author: str
插件作者
homepage: str
插件主页
extra: dict[str, Any]
额外信息
### ***class*** `Plugin(BaseModel)`
存储插件信息
#### &emsp; ***attr*** `model_config`
Type: {'arbitrary_types_allowed': True}
### &emsp; ***attr*** `model_config: {'arbitrary_types_allowed': True}`

View File

@ -8,33 +8,49 @@ category: API
### ***def*** `is_coroutine_callable(call: Callable[..., Any]) -> bool`
判断是否为协程可调用对象
Args:
call: 可调用对象
Returns:
bool: 是否为协程可调用对象
### ***def*** `run_coroutine() -> None`
运行协程
Args:
coro:
Returns:
### ***def*** `path_to_module_name(path: Path) -> str`
转换路径为模块名
Args:
path: 路径a/b/c/d -> a.b.c.d
Returns:
str: 模块名
### ***def*** `async_wrapper(func: Callable[..., Any]) -> Callable[..., Coroutine]`
异步包装器
Args:
func: Sync Callable
Returns:
Coroutine: Asynchronous Callable
### ***async def*** `wrapper() -> None`