diff --git a/nonebot/__init__.py b/nonebot/__init__.py index a3b105a8..eb5f3805 100644 --- a/nonebot/__init__.py +++ b/nonebot/__init__.py @@ -61,12 +61,10 @@ def get_driver() -> Driver: 异常: ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) - :用法: - - .. code-block:: python - + 用法: + ```python driver = nonebot.get_driver() - + ``` """ if _driver is None: raise ValueError("NoneBot has not been initialized.") @@ -83,12 +81,10 @@ def get_app() -> Any: 异常: ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) - :用法: - - .. code-block:: python - + 用法: + ```python app = nonebot.get_app() - + ``` """ driver = get_driver() assert isinstance( @@ -107,12 +103,10 @@ def get_asgi() -> Any: 异常: ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) - :用法: - - .. code-block:: python - + 用法: + ```python asgi = nonebot.get_asgi() - + ``` """ driver = get_driver() assert isinstance( @@ -136,13 +130,12 @@ def get_bot(self_id: Optional[str] = None) -> Bot: ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) ValueError: 没有传入 ID 且没有 Bot 可用 - :用法: - - .. code-block:: python - + 用法: + ```python assert nonebot.get_bot('12345') == nonebot.get_bots()['12345'] another_unspecified_bot = nonebot.get_bot() + ``` """ bots = get_bots() if self_id is not None: @@ -164,12 +157,10 @@ def get_bots() -> Dict[str, Bot]: 异常: ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) - :用法: - - .. code-block:: python - + 用法: + ```python bots = nonebot.get_bots() - + ``` """ driver = get_driver() return driver.bots @@ -218,12 +209,10 @@ def init(*, _env_file: Optional[str] = None, **kwargs): _env_file: 配置文件名,默认从 .env.{env_name} 中读取配置 **kwargs: 任意变量,将会存储到 Config 对象里 - :用法: - - .. code-block:: python - + 用法: + ```python nonebot.init(database=Database(...)) - + ``` """ global _driver if not _driver: @@ -255,12 +244,10 @@ def run(*args: Any, **kwargs: Any) -> None: *args: 传入 Driver.run 的位置参数 **kwargs: 传入 Driver.run 的命名参数 - :用法: - - .. code-block:: python - + 用法: + ```python nonebot.run(host="127.0.0.1", port=8080) - + ``` """ logger.success("Running NoneBot...") get_driver().run(*args, **kwargs) diff --git a/nonebot/adapters/_bot.py b/nonebot/adapters/_bot.py index f6a35522..eb0cdc23 100644 --- a/nonebot/adapters/_bot.py +++ b/nonebot/adapters/_bot.py @@ -63,12 +63,11 @@ class Bot(abc.ABC): api: API 名称 **data: API 数据 - :示例: - - .. code-block:: python - + 用法: + ```python await bot.call_api("send_msg", message="hello world") await bot.send_msg(message="hello world") + ``` """ result: Any = None diff --git a/nonebot/adapters/_message.py b/nonebot/adapters/_message.py index 1b6f8980..e126e3fb 100644 --- a/nonebot/adapters/_message.py +++ b/nonebot/adapters/_message.py @@ -117,10 +117,8 @@ class Message(List[TMS], abc.ABC): 并且提供了拓展的格式化控制符, 可以用适用于该消息类型的 `MessageSegment` 的工厂方法创建消息 - :示例: - - .. code-block:: python - + 用法: + ```python >>> Message.template("{} {}").format("hello", "world") # 基础演示 Message(MessageSegment(type='text', data={'text': 'hello world'})) >>> Message.template("{} {}").format(MessageSegment.image("file///..."), "world") # 支持消息段等对象 @@ -133,6 +131,7 @@ class Message(List[TMS], abc.ABC): MessageSegment(type='text', data={'text': 'test hello world'})) >>> Message.template("{link:image}").format(link='https://...') # 支持拓展格式化控制符 Message(MessageSegment(type='image', data={'file': 'https://...'})) + ``` 参数: format_string: 格式化字符串 diff --git a/nonebot/config.py b/nonebot/config.py index b7fbfc04..2787b90b 100644 --- a/nonebot/config.py +++ b/nonebot/config.py @@ -177,12 +177,11 @@ class Config(BaseConfig): """ 配置 NoneBot 日志输出等级,可以为 `int` 类型等级或等级名称,参考 `loguru 日志等级`_。 - :示例: - - .. code-block:: default - + 用法: + ```conf LOG_LEVEL=25 LOG_LEVEL=INFO + ``` .. _loguru 日志等级: https://loguru.readthedocs.io/en/stable/api/logger.html#levels @@ -199,11 +198,10 @@ class Config(BaseConfig): """ 机器人超级用户。 - :示例: - - .. code-block:: default - + 用法: + ```conf SUPERUSERS=["12345789"] + ``` """ nickname: Set[str] = set() """ @@ -221,13 +219,12 @@ class Config(BaseConfig): """ 等待用户回复的超时时间。 - :示例: - - .. code-block:: default - + 用法: + ```conf SESSION_EXPIRE_TIMEOUT=120 # 单位: 秒 SESSION_EXPIRE_TIMEOUT=[DD ][HH:MM]SS[.ffffff] SESSION_EXPIRE_TIMEOUT=P[DD]DT[HH]H[MM]M[SS]S # ISO 8601 + ``` """ # adapter configs diff --git a/nonebot/exception.py b/nonebot/exception.py index 94e01633..e501c4fe 100644 --- a/nonebot/exception.py +++ b/nonebot/exception.py @@ -85,8 +85,7 @@ class StopPropagation(ProcessException): """ 指示 NoneBot 终止事件向下层传播。 - :用法: - + 用法: 在 `Matcher.block == True` 时抛出。 """ @@ -102,8 +101,7 @@ class SkippedException(MatcherException): """ 指示 NoneBot 立即结束当前 `Handler` 的处理,继续处理下一个 `Handler`。 - :用法: - + 用法: 可以在 `Handler` 中通过 `Matcher.skip()` 抛出。 """ @@ -129,8 +127,7 @@ class PausedException(MatcherException): 指示 NoneBot 结束当前 `Handler` 并等待下一条消息后继续下一个 `Handler`。 可用于用户输入新信息。 - :用法: - + 用法: 可以在 `Handler` 中通过 `Matcher.pause()` 抛出。 """ @@ -140,8 +137,7 @@ class RejectedException(MatcherException): 指示 NoneBot 结束当前 `Handler` 并等待下一条消息后重新运行当前 `Handler`。 可用于用户重新输入。 - :用法: - + 用法: 可以在 `Handler` 中通过 `Matcher.reject()` 抛出。 """ @@ -151,8 +147,7 @@ class FinishedException(MatcherException): 指示 NoneBot 结束当前 `Handler` 且后续 `Handler` 不再被运行。 可用于结束用户会话。 - :用法: - + 用法: 可以在 `Handler` 中通过 `Matcher.finish()` 抛出。 """ diff --git a/nonebot/log.py b/nonebot/log.py index 30ef16c6..c95d0c2c 100644 --- a/nonebot/log.py +++ b/nonebot/log.py @@ -32,11 +32,10 @@ NoneBot 日志记录器对象。 * 等级: `INFO` ,根据 `config.log_level` 配置改变 * 输出: 输出至 stdout -:用法: - -.. code-block:: python - +用法: + ```python from nonebot.log import logger + ``` """ # default_handler = logging.StreamHandler(sys.stdout) diff --git a/nonebot/message.py b/nonebot/message.py index 932156bd..f3d83de0 100644 --- a/nonebot/message.py +++ b/nonebot/message.py @@ -240,12 +240,11 @@ async def handle_event(bot: "Bot", event: "Event") -> None: bot: Bot 对象 event: Event 对象 - :示例: - - .. code-block:: python - + 用法: + ```python import asyncio asyncio.create_task(handle_event(bot, event)) + ``` """ show_log = True log_msg = f"{escape_tag(bot.type.upper())} {escape_tag(bot.self_id)} | " diff --git a/nonebot/params.py b/nonebot/params.py index 09bb0f04..a6c2cd01 100644 --- a/nonebot/params.py +++ b/nonebot/params.py @@ -62,8 +62,8 @@ def Depends( dependency: 依赖函数。默认为参数的类型注释。 use_cache: 是否使用缓存。默认为 `True`。 - .. code-block:: python - + 用法: + ```python def depend_func() -> Any: return ... @@ -75,6 +75,7 @@ def Depends( async def handler(param_name: Any = Depends(depend_func), gen: Any = Depends(depend_gen_func)): ... + ``` """ return DependsInner(dependency, use_cache=use_cache) diff --git a/nonebot/permission.py b/nonebot/permission.py index d3f662ae..c314aea9 100644 --- a/nonebot/permission.py +++ b/nonebot/permission.py @@ -37,14 +37,13 @@ class Permission: """ `Matcher` 规则类,当事件传递时,在 `Matcher` 运行前进行检查。 - :示例: - - .. code-block:: python - + 用法: + ```python Permission(async_function) | sync_function # 等价于 from nonebot.utils import run_sync Permission(async_function, run_sync(sync_function)) + ``` """ __slots__ = ("checkers",) diff --git a/nonebot/plugin/export.py b/nonebot/plugin/export.py index 7cd62e73..20b86957 100644 --- a/nonebot/plugin/export.py +++ b/nonebot/plugin/export.py @@ -5,10 +5,8 @@ class Export(dict): """ 插件导出内容以使得其他插件可以获得。 - :示例: - - .. code-block:: python - + 用法: + ```python nonebot.export().default = "bar" @nonebot.export() @@ -23,6 +21,7 @@ class Export(dict): @nonebot.export().sub def something_else(): pass + ``` """ def __call__(self, func, **kwargs): diff --git a/nonebot/rule.py b/nonebot/rule.py index b8609ad9..9a814636 100644 --- a/nonebot/rule.py +++ b/nonebot/rule.py @@ -65,14 +65,13 @@ class Rule: """ `Matcher` 规则类,当事件传递时,在 `Matcher` 运行前进行检查。 - :示例: - - .. code-block:: python - + 用法: + ```python Rule(async_function) & sync_function # 等价于 from nonebot.utils import run_sync Rule(async_function, run_sync(sync_function)) + ``` """ __slots__ = ("checkers",) @@ -294,8 +293,7 @@ def command(*cmds: Union[str, Tuple[str, ...]]) -> Rule: 参数: *cmds: 命令内容 - :示例: - + 用法: 使用默认 `command_start`, `command_sep` 配置 命令 `("test",)` 可以匹配:`/test` 开头的消息 @@ -394,18 +392,17 @@ def shell_command( *cmds: 命令内容 parser: `nonebot.rule.ArgumentParser` 对象 - :示例: - - 使用默认 `command_start`, `command_sep` 配置,更多示例参考 `argparse` 标准库文档。 - - .. code-block:: python + 用法: + 使用默认 `command_start`, `command_sep` 配置,更多示例参考 `argparse` 标准库文档。 + ```python from nonebot.rule import ArgumentParser parser = ArgumentParser() parser.add_argument("-a", action="store_true") rule = shell_command("ls", parser=parser) + ``` \:\:\:tip 提示 命令内容与后续消息间无需空格!