ayaka.depend.input
1from typing import TYPE_CHECKING 2from pydantic import ValidationError, validator 3from .depend import AyakaDepend 4from ..driver import MessageSegment 5 6if TYPE_CHECKING: 7 from ..ayaka import AyakaApp 8 9 10class AyakaInput(AyakaDepend): 11 '''解析命令行参数为对应成员属性 12 13 注意:每个成员属性都必须标注类型,否则可能解析顺序出错''' 14 @classmethod 15 async def _create_by_app(cls, app: "AyakaApp"): 16 args = app.args 17 props = cls.props() 18 data = {k: v for k, v in zip(props, args)} 19 try: 20 return cls(**data) 21 except ValidationError as e: 22 await app.bot.send_group_msg(group_id=app.group_id, message=str(e)) 23 24 @classmethod 25 def help(cls): 26 props = cls.props() 27 data = {k: v.get("description", "") for k, v in props.items()} 28 return data 29 30 @validator("*", pre=True) 31 def __all_validator__(cls, v: MessageSegment): 32 if v.type == "text": 33 return v.data["text"] 34 return v
11class AyakaInput(AyakaDepend): 12 '''解析命令行参数为对应成员属性 13 14 注意:每个成员属性都必须标注类型,否则可能解析顺序出错''' 15 @classmethod 16 async def _create_by_app(cls, app: "AyakaApp"): 17 args = app.args 18 props = cls.props() 19 data = {k: v for k, v in zip(props, args)} 20 try: 21 return cls(**data) 22 except ValidationError as e: 23 await app.bot.send_group_msg(group_id=app.group_id, message=str(e)) 24 25 @classmethod 26 def help(cls): 27 props = cls.props() 28 data = {k: v.get("description", "") for k, v in props.items()} 29 return data 30 31 @validator("*", pre=True) 32 def __all_validator__(cls, v: MessageSegment): 33 if v.type == "text": 34 return v.data["text"] 35 return v
解析命令行参数为对应成员属性
注意:每个成员属性都必须标注类型,否则可能解析顺序出错
Inherited Members
- pydantic.main.BaseModel
- BaseModel
- dict
- json
- parse_obj
- parse_raw
- parse_file
- from_orm
- construct
- copy
- schema
- schema_json
- validate
- update_forward_refs