This repository was archived by the owner on Aug 26, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Alconna Pattern
Tarrailt edited this page Jan 24, 2022
·
1 revision
ArgPattern
是用来辅助参数解析工作的类, 你可以在alconna.types
中找到.
ArgPattern
有如下参数:
- pattern: 该参数的正则解析表达式
- transform: 该参数解析后是否需要类型转换
- transform_action: 该参数进行类型转换的函数(如果transform为真)
- type_mark: 针对
TemplateCommand
的Action
的类型检查 (应与解析后的最终结果的类型相符合)
例如:
test_type = ArgPattern(
r"(.+\.?.*?)",
need_transform=True,
type_mark=list,
transform_action=lambda x: x.split(".")
)
该test_type
的意思是
- 在解析时用
(.+\.?.*?)
作为正则解析 - 需要类型转换
- 若相应的
Arg
会传入Action
中, 在类型检查时该Arg
的type-hint应为list
- 针对该
Arg
的类型转换函数 (str -> list)
>>> alc = Alconna(
... command="test",
... main_args=Args["foo":test_type]
... )
>>> alc.analyse_message("test arclet.alconna").foo
['arclet', 'alconna']