nonebot2/website/versioned_docs/version-2.4.0/api/params.md
noneflow[bot] 5e86d53e0b 🔖 Release 2.4.0
2024-10-31 13:45:33 +00:00

7.5 KiB

mdx sidebar_position description
format
md
4 nonebot.params 模块

nonebot.params

本模块定义了依赖注入的各类参数。

def Arg(key=None)

  • 说明: Arg 参数消息

  • 参数

    • key (str | None)
  • 返回

    • Any

def ArgStr(key=None)

  • 说明: Arg 参数消息文本

  • 参数

    • key (str | None)
  • 返回

    • str

def Depends(dependency=None, *, use_cache=True, validate=False)

  • 说明: 子依赖装饰器

  • 参数

    • dependency (T_Handler | None): 依赖函数。默认为参数的类型注释。

    • use_cache (bool): 是否使用缓存。默认为 True

    • validate (bool | PydanticFieldInfo): 是否使用 Pydantic 类型校验。默认为 False

  • 返回

    • Any
  • 用法

    def depend_func() -> Any:
        return ...
    
    def depend_gen_func():
        try:
            yield ...
        finally:
            ...
    
    async def handler(
        param_name: Any = Depends(depend_func),
        gen: Any = Depends(depend_gen_func),
    ):
        ...
    

class ArgParam(*args, key, type, **kwargs)

  • 说明

    Arg 注入参数

    本注入解析事件响应器操作 got 所获取的参数。

    可以通过 ArgArgStrArgPlainText 等函数参数 key 指定获取的参数, 留空则会根据参数名称获取。

  • 参数

    • *args

    • key (str)

    • type (Literal['message', 'str', 'plaintext'])

    • **kwargs (Any)

class BotParam(*args, checker=None, **kwargs)

  • 说明

    注入参数。

    本注入解析所有类型为且仅为 Bot 及其子类或 None 的参数。

    为保证兼容性,本注入还会解析名为 bot 且没有类型注解的参数。

  • 参数

    • *args

    • checker (ModelField | None)

    • **kwargs (Any)

class EventParam(*args, checker=None, **kwargs)

  • 说明

    注入参数

    本注入解析所有类型为且仅为 Event 及其子类或 None 的参数。

    为保证兼容性,本注入还会解析名为 event 且没有类型注解的参数。

  • 参数

    • *args

    • checker (ModelField | None)

    • **kwargs (Any)

class StateParam(*args, validate=False, **kwargs)

  • 说明

    事件处理状态注入参数

    本注入解析所有类型为 T_State 的参数。

    为保证兼容性,本注入还会解析名为 state 且没有类型注解的参数。

  • 参数

    • *args

    • validate (bool)

    • **kwargs (Any)

class DependParam(*args, dependent, use_cache, **kwargs)

  • 说明

    子依赖注入参数。

    本注入解析所有子依赖注入,然后将它们的返回值作为参数值传递给父依赖。

    本注入应该具有最高优先级,因此应该在其他参数之前检查。

  • 参数

    • *args

    • dependent (Dependent[Any])

    • use_cache (bool)

    • **kwargs (Any)

def ArgPlainText(key=None)

  • 说明: Arg 参数消息纯文本

  • 参数

    • key (str | None)
  • 返回

    • str

class DefaultParam(*args, validate=False, **kwargs)

  • 说明

    默认值注入参数

    本注入解析所有剩余未能解析且具有默认值的参数。

    本注入参数应该具有最低优先级,因此应该在所有其他注入参数之后使用。

  • 参数

    • *args

    • validate (bool)

    • **kwargs (Any)

class MatcherParam(*args, checker=None, **kwargs)

  • 说明

    事件响应器实例注入参数

    本注入解析所有类型为且仅为 Matcher 及其子类或 None 的参数。

    为保证兼容性,本注入还会解析名为 matcher 且没有类型注解的参数。

  • 参数

    • *args

    • checker (ModelField | None)

    • **kwargs (Any)

class ExceptionParam(*args, validate=False, **kwargs)

  • 说明

    的异常注入参数

    本注入解析所有类型为 ExceptionNone 的参数。

    为保证兼容性,本注入还会解析名为 exception 且没有类型注解的参数。

  • 参数

    • *args

    • validate (bool)

    • **kwargs (Any)

def EventType()

  • 说明: 类型参数

  • 参数

    empty

  • 返回

    • str

def EventMessage()

  • 说明: 消息参数

  • 参数

    empty

  • 返回

    • Any

def EventPlainText()

  • 说明: 纯文本消息参数

  • 参数

    empty

  • 返回

    • str

def EventToMe()

  • 说明: to_me 参数

  • 参数

    empty

  • 返回

    • bool

def Command()

  • 说明: 消息命令元组

  • 参数

    empty

  • 返回

    • tuple[str, ...]

def RawCommand()

  • 说明: 消息命令文本

  • 参数

    empty

  • 返回

    • str

def CommandArg()

  • 说明: 消息命令参数

  • 参数

    empty

  • 返回

    • Any

def CommandStart()

  • 说明: 消息命令开头

  • 参数

    empty

  • 返回

    • str

def CommandWhitespace()

  • 说明: 消息命令与参数之间的空白

  • 参数

    empty

  • 返回

    • str

def ShellCommandArgs()

  • 说明: shell 命令解析后的参数字典

  • 参数

    empty

  • 返回

    • Any

def ShellCommandArgv()

  • 说明: shell 命令原始参数列表

  • 参数

    empty

  • 返回

    • Any

def RegexMatched()

  • 说明: 正则匹配结果

  • 参数

    empty

  • 返回

    • Match[str]

def RegexStr(*groups)

  • 说明: 正则匹配结果文本

  • 重载

    1. (__group=0) -> str

    • 参数

      • __group (Literal[0])
    • 返回

      • str

    2. (__group) -> str | Any

    • 参数

      • __group (str | int)
    • 返回

      • str | Any

    3. (__group1, __group2, *groups) -> tuple[str | Any, ...]

    • 参数

      • __group1 (str | int)

      • __group2 (str | int)

      • *groups (str | int)

    • 返回

      • tuple[str | Any, ...]

def RegexGroup()

  • 说明: 正则匹配结果 group 元组

  • 参数

    empty

  • 返回

    • tuple[Any, ...]

def RegexDict()

  • 说明: 正则匹配结果 group 字典

  • 参数

    empty

  • 返回

    • dict[str, Any]

def Startswith()

  • 说明: 响应触发前缀

  • 参数

    empty

  • 返回

    • str

def Endswith()

  • 说明: 响应触发后缀

  • 参数

    empty

  • 返回

    • str

def Fullmatch()

  • 说明: 响应触发完整消息

  • 参数

    empty

  • 返回

    • str

def Keyword()

  • 说明: 响应触发关键字

  • 参数

    empty

  • 返回

    • str

def Received(id=None, default=None)

  • 说明: receive 事件参数

  • 参数

    • id (str | None)

    • default (Any)

  • 返回

    • Any

def LastReceived(default=None)

  • 说明: last_receive 事件参数

  • 参数

    • default (Any)
  • 返回

    • Any