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
class AyakaInput(ayaka.depend.depend.AyakaDepend):
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

解析命令行参数为对应成员属性

注意:每个成员属性都必须标注类型,否则可能解析顺序出错

@classmethod
def help(cls):
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
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
ayaka.depend.depend.AyakaDepend
props