aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author苏向夜 <fu050409@163.com>2024-03-19 21:28:45 +0800
committer苏向夜 <fu050409@163.com>2024-03-19 21:28:45 +0800
commitb1f15007a64e0a9744f4d00b2c232def56cca0ba (patch)
treee564d841b80fd26aee683afefb36d92252e5f9d2
parentacfb6d8ff8edd6a93b4f1f8de922b0f1ed94a268 (diff)
downloadinfini-b1f15007a64e0a9744f4d00b2c232def56cca0ba.tar.gz
infini-b1f15007a64e0a9744f4d00b2c232def56cca0ba.zip
feat(doc): add content field
-rw-r--r--src/infini/doc.py3
-rw-r--r--src/infini/register.py18
2 files changed, 17 insertions, 4 deletions
diff --git a/src/infini/doc.py b/src/infini/doc.py
index 0b67e54c..52a85fe2 100644
--- a/src/infini/doc.py
+++ b/src/infini/doc.py
@@ -6,9 +6,10 @@ import json
class Annotation(TypedDict, total=False):
usage: Optional[str]
description: Optional[str]
+ content: Optional[str]
epilog: Optional[str]
var_doc: Dict[str, str]
- sub_cmd: Dict[str, str]
+ sub_cmd: Dict[str, "Annotation"]
class Doc:
diff --git a/src/infini/register.py b/src/infini/register.py
index 9134983c..a64d8b01 100644
--- a/src/infini/register.py
+++ b/src/infini/register.py
@@ -1,4 +1,4 @@
-from infini.doc import Doc
+from infini.doc import Annotation, Doc
from infini.typing import List, Dict, Any, Callable, RouterType, Optional, Union, Type
from infini.input import Input
from infini.output import Output
@@ -34,11 +34,12 @@ class Register:
namespace: Optional[str] = None,
usage: Optional[str] = None,
description: Optional[str] = None,
+ content: Optional[str] = None,
epilog: Optional[str] = None,
):
"""注册一个文本输入拦截器"""
- def decorator(func):
+ def decorator(func: Callable):
@wraps(func)
def wrapper(*args, **kwargs) -> Union[Input, Output]:
return func(*args, **kwargs)
@@ -56,6 +57,7 @@ class Register:
] = {
"usage": usage,
"description": description,
+ "content": content or func.__doc__,
"epilog": epilog,
}
return wrapper
@@ -70,8 +72,9 @@ class Register:
namespace: Optional[str] = None,
usage: Optional[str] = None,
description: Optional[str] = None,
+ content: Optional[str] = None,
epilog: Optional[str] = None,
- sub_cmd: Optional[Dict[str, str]] = None,
+ sub_cmd: Optional[Dict[str, Annotation]] = None,
):
"""注册一个业务函数"""
@@ -91,6 +94,7 @@ class Register:
self.doc.handlers[namespace or _router.namespace or func.__name__] = {
"usage": usage,
"description": description,
+ "content": content or func.__doc__,
"epilog": epilog,
"sub_cmd": sub_cmd or {},
}
@@ -104,12 +108,14 @@ class Register:
text: str,
*,
description: Optional[str] = None,
+ content: Optional[str] = None,
var_doc: Optional[Dict[str, str]] = None,
):
"""注册一个文本事件"""
self.events[name] = text
self.doc.events[name] = {
"description": description,
+ "content": content,
"var_doc": var_doc or {},
}
@@ -120,12 +126,14 @@ class Register:
*,
usage: Optional[str] = None,
description: Optional[str] = None,
+ content: Optional[str] = None,
):
"""注册一个静态全局变量"""
self.global_variables[name] = data
self.doc.global_variables[name] = {
"usage": usage,
"description": description,
+ "content": content,
}
def dynamic_variable(
@@ -134,6 +142,7 @@ class Register:
*,
usage: Optional[str] = None,
description: Optional[str] = None,
+ content: Optional[str] = None,
):
"""注册一个动态全局变量"""
@@ -146,6 +155,7 @@ class Register:
self.doc.global_variables[name or func.__name__] = {
"usage": usage,
"description": description,
+ "content": content or func.__doc__,
}
return wrapper
@@ -159,6 +169,7 @@ class Register:
namespace: Optional[str] = None,
usage: Optional[str] = None,
description: Optional[str] = None,
+ content: Optional[str] = None,
epilog: Optional[str] = None,
):
"""注册一个产出文本拦截器"""
@@ -179,6 +190,7 @@ class Register:
self.doc.interceptors[namespace or _router.namespace or func.__name__] = {
"usage": usage,
"description": description,
+ "content": content or func.__doc__,
"epilog": epilog,
}
return wrapper