melobot.utils.parse.base 源代码
from abc import abstractmethod
from typing_extensions import Any
from ...typ.cls import BetterABC, abstractattr
[文档]
class AbstractParseArgs:
"""解析参数抽象类
子类需要把以下属性按 :func:`.abstractattr` 的要求实现
"""
vals: Any = abstractattr()
"""解析值
:meta hide-value:
"""
[文档]
class Parser(BetterABC):
"""解析器基类
解析器一般用作从消息文本中按规则批量提取参数
"""
def __init__(self) -> None:
super().__init__()
[文档]
@abstractmethod
async def parse(self, text: str) -> AbstractParseArgs | None:
"""解析方法
任何解析器应该实现此抽象方法
:param text: 消息文本内容
:return: 解析结果,为空代表没有有效的解析参数
"""
raise NotImplementedError