From 7f554fd8625fc75037c8203d955c30d1c4f6948e Mon Sep 17 00:00:00 2001 From: RockChinQ <1010553892@qq.com> Date: Fri, 8 Mar 2024 19:56:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20command=E6=94=AF=E6=8C=81=E6=89=A9?= =?UTF-8?q?=E5=B1=95=E5=91=BD=E4=BB=A4=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/command/operator.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pkg/command/operator.py b/pkg/command/operator.py index c5b0615b..641a8cf5 100644 --- a/pkg/command/operator.py +++ b/pkg/command/operator.py @@ -8,17 +8,31 @@ from . import entities preregistered_operators: list[typing.Type[CommandOperator]] = [] -"""预注册算子列表。在初始化时,所有算子类会被注册到此列表中。""" +"""预注册命令算子列表。在初始化时,所有算子类会被注册到此列表中。""" def operator_class( name: str, - help: str, + help: str = "", usage: str = None, alias: list[str] = [], privilege: int=1, # 1为普通用户,2为管理员 parent_class: typing.Type[CommandOperator] = None ) -> typing.Callable[[typing.Type[CommandOperator]], typing.Type[CommandOperator]]: + """命令类装饰器 + + Args: + name (str): 名称 + help (str, optional): 帮助信息. Defaults to "". + usage (str, optional): 使用说明. Defaults to None. + alias (list[str], optional): 别名. Defaults to []. + privilege (int, optional): 权限,1为普通用户可用,2为仅管理员可用. Defaults to 1. + parent_class (typing.Type[CommandOperator], optional): 父节点,若为None则为顶级命令. Defaults to None. + + Returns: + typing.Callable[[typing.Type[CommandOperator]], typing.Type[CommandOperator]]: 注册后的命令类 + """ + def decorator(cls: typing.Type[CommandOperator]) -> typing.Type[CommandOperator]: assert issubclass(cls, CommandOperator)