令用法符合格式

This commit is contained in:
hemengyang 2022-01-12 18:53:30 +08:00
parent edb20a4786
commit 6d21cbed55
11 changed files with 64 additions and 93 deletions

View File

@ -61,12 +61,10 @@ def get_driver() -> Driver:
异常: 异常:
ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用)
:用法: 用法:
```python
.. code-block:: python
driver = nonebot.get_driver() driver = nonebot.get_driver()
```
""" """
if _driver is None: if _driver is None:
raise ValueError("NoneBot has not been initialized.") raise ValueError("NoneBot has not been initialized.")
@ -83,12 +81,10 @@ def get_app() -> Any:
异常: 异常:
ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用)
:用法: 用法:
```python
.. code-block:: python
app = nonebot.get_app() app = nonebot.get_app()
```
""" """
driver = get_driver() driver = get_driver()
assert isinstance( assert isinstance(
@ -107,12 +103,10 @@ def get_asgi() -> Any:
异常: 异常:
ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用)
:用法: 用法:
```python
.. code-block:: python
asgi = nonebot.get_asgi() asgi = nonebot.get_asgi()
```
""" """
driver = get_driver() driver = get_driver()
assert isinstance( assert isinstance(
@ -136,13 +130,12 @@ def get_bot(self_id: Optional[str] = None) -> Bot:
ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用)
ValueError: 没有传入 ID 且没有 Bot 可用 ValueError: 没有传入 ID 且没有 Bot 可用
:用法: 用法:
```python
.. code-block:: python
assert nonebot.get_bot('12345') == nonebot.get_bots()['12345'] assert nonebot.get_bot('12345') == nonebot.get_bots()['12345']
another_unspecified_bot = nonebot.get_bot() another_unspecified_bot = nonebot.get_bot()
```
""" """
bots = get_bots() bots = get_bots()
if self_id is not None: if self_id is not None:
@ -164,12 +157,10 @@ def get_bots() -> Dict[str, Bot]:
异常: 异常:
ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用) ValueError: 全局 Driver 对象尚未初始化 (nonebot.init 尚未调用)
:用法: 用法:
```python
.. code-block:: python
bots = nonebot.get_bots() bots = nonebot.get_bots()
```
""" """
driver = get_driver() driver = get_driver()
return driver.bots return driver.bots
@ -218,12 +209,10 @@ def init(*, _env_file: Optional[str] = None, **kwargs):
_env_file: 配置文件名默认从 .env.{env_name} 中读取配置 _env_file: 配置文件名默认从 .env.{env_name} 中读取配置
**kwargs: 任意变量将会存储到 Config 对象里 **kwargs: 任意变量将会存储到 Config 对象里
:用法: 用法:
```python
.. code-block:: python
nonebot.init(database=Database(...)) nonebot.init(database=Database(...))
```
""" """
global _driver global _driver
if not _driver: if not _driver:
@ -255,12 +244,10 @@ def run(*args: Any, **kwargs: Any) -> None:
*args: 传入 Driver.run 的位置参数 *args: 传入 Driver.run 的位置参数
**kwargs: 传入 Driver.run 的命名参数 **kwargs: 传入 Driver.run 的命名参数
:用法: 用法:
```python
.. code-block:: python
nonebot.run(host="127.0.0.1", port=8080) nonebot.run(host="127.0.0.1", port=8080)
```
""" """
logger.success("Running NoneBot...") logger.success("Running NoneBot...")
get_driver().run(*args, **kwargs) get_driver().run(*args, **kwargs)

View File

@ -63,12 +63,11 @@ class Bot(abc.ABC):
api: API 名称 api: API 名称
**data: API 数据 **data: API 数据
:示例: 用法:
```python
.. code-block:: python
await bot.call_api("send_msg", message="hello world") await bot.call_api("send_msg", message="hello world")
await bot.send_msg(message="hello world") await bot.send_msg(message="hello world")
```
""" """
result: Any = None result: Any = None

View File

@ -117,10 +117,8 @@ class Message(List[TMS], abc.ABC):
并且提供了拓展的格式化控制符, 可以用适用于该消息类型的 `MessageSegment` 的工厂方法创建消息 并且提供了拓展的格式化控制符, 可以用适用于该消息类型的 `MessageSegment` 的工厂方法创建消息
:示例: 用法:
```python
.. code-block:: python
>>> Message.template("{} {}").format("hello", "world") # 基础演示 >>> Message.template("{} {}").format("hello", "world") # 基础演示
Message(MessageSegment(type='text', data={'text': 'hello world'})) Message(MessageSegment(type='text', data={'text': 'hello world'}))
>>> Message.template("{} {}").format(MessageSegment.image("file///..."), "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'})) MessageSegment(type='text', data={'text': 'test hello world'}))
>>> Message.template("{link:image}").format(link='https://...') # 支持拓展格式化控制符 >>> Message.template("{link:image}").format(link='https://...') # 支持拓展格式化控制符
Message(MessageSegment(type='image', data={'file': 'https://...'})) Message(MessageSegment(type='image', data={'file': 'https://...'}))
```
参数: 参数:
format_string: 格式化字符串 format_string: 格式化字符串

View File

@ -177,12 +177,11 @@ class Config(BaseConfig):
""" """
配置 NoneBot 日志输出等级可以为 `int` 类型等级或等级名称参考 `loguru 日志等级`_ 配置 NoneBot 日志输出等级可以为 `int` 类型等级或等级名称参考 `loguru 日志等级`_
:示例: 用法:
```conf
.. code-block:: default
LOG_LEVEL=25 LOG_LEVEL=25
LOG_LEVEL=INFO LOG_LEVEL=INFO
```
.. _loguru 日志等级: .. _loguru 日志等级:
https://loguru.readthedocs.io/en/stable/api/logger.html#levels https://loguru.readthedocs.io/en/stable/api/logger.html#levels
@ -199,11 +198,10 @@ class Config(BaseConfig):
""" """
机器人超级用户 机器人超级用户
:示例: 用法:
```conf
.. code-block:: default
SUPERUSERS=["12345789"] SUPERUSERS=["12345789"]
```
""" """
nickname: Set[str] = set() nickname: Set[str] = set()
""" """
@ -221,13 +219,12 @@ class Config(BaseConfig):
""" """
等待用户回复的超时时间 等待用户回复的超时时间
:示例: 用法:
```conf
.. code-block:: default
SESSION_EXPIRE_TIMEOUT=120 # 单位: 秒 SESSION_EXPIRE_TIMEOUT=120 # 单位: 秒
SESSION_EXPIRE_TIMEOUT=[DD ][HH:MM]SS[.ffffff] SESSION_EXPIRE_TIMEOUT=[DD ][HH:MM]SS[.ffffff]
SESSION_EXPIRE_TIMEOUT=P[DD]DT[HH]H[MM]M[SS]S # ISO 8601 SESSION_EXPIRE_TIMEOUT=P[DD]DT[HH]H[MM]M[SS]S # ISO 8601
```
""" """
# adapter configs # adapter configs

View File

@ -85,8 +85,7 @@ class StopPropagation(ProcessException):
""" """
指示 NoneBot 终止事件向下层传播 指示 NoneBot 终止事件向下层传播
:用法: 用法:
`Matcher.block == True` 时抛出 `Matcher.block == True` 时抛出
""" """
@ -102,8 +101,7 @@ class SkippedException(MatcherException):
""" """
指示 NoneBot 立即结束当前 `Handler` 的处理继续处理下一个 `Handler` 指示 NoneBot 立即结束当前 `Handler` 的处理继续处理下一个 `Handler`
:用法: 用法:
可以在 `Handler` 中通过 `Matcher.skip()` 抛出 可以在 `Handler` 中通过 `Matcher.skip()` 抛出
""" """
@ -129,8 +127,7 @@ class PausedException(MatcherException):
指示 NoneBot 结束当前 `Handler` 并等待下一条消息后继续下一个 `Handler` 指示 NoneBot 结束当前 `Handler` 并等待下一条消息后继续下一个 `Handler`
可用于用户输入新信息 可用于用户输入新信息
:用法: 用法:
可以在 `Handler` 中通过 `Matcher.pause()` 抛出 可以在 `Handler` 中通过 `Matcher.pause()` 抛出
""" """
@ -140,8 +137,7 @@ class RejectedException(MatcherException):
指示 NoneBot 结束当前 `Handler` 并等待下一条消息后重新运行当前 `Handler` 指示 NoneBot 结束当前 `Handler` 并等待下一条消息后重新运行当前 `Handler`
可用于用户重新输入 可用于用户重新输入
:用法: 用法:
可以在 `Handler` 中通过 `Matcher.reject()` 抛出 可以在 `Handler` 中通过 `Matcher.reject()` 抛出
""" """
@ -151,8 +147,7 @@ class FinishedException(MatcherException):
指示 NoneBot 结束当前 `Handler` 且后续 `Handler` 不再被运行 指示 NoneBot 结束当前 `Handler` 且后续 `Handler` 不再被运行
可用于结束用户会话 可用于结束用户会话
:用法: 用法:
可以在 `Handler` 中通过 `Matcher.finish()` 抛出 可以在 `Handler` 中通过 `Matcher.finish()` 抛出
""" """

View File

@ -32,11 +32,10 @@ NoneBot 日志记录器对象。
* 等级: `INFO` 根据 `config.log_level` 配置改变 * 等级: `INFO` 根据 `config.log_level` 配置改变
* 输出: 输出至 stdout * 输出: 输出至 stdout
:用法: 用法:
```python
.. code-block:: python
from nonebot.log import logger from nonebot.log import logger
```
""" """
# default_handler = logging.StreamHandler(sys.stdout) # default_handler = logging.StreamHandler(sys.stdout)

View File

@ -240,12 +240,11 @@ async def handle_event(bot: "Bot", event: "Event") -> None:
bot: Bot 对象 bot: Bot 对象
event: Event 对象 event: Event 对象
:示例: 用法:
```python
.. code-block:: python
import asyncio import asyncio
asyncio.create_task(handle_event(bot, event)) asyncio.create_task(handle_event(bot, event))
```
""" """
show_log = True show_log = True
log_msg = f"<m>{escape_tag(bot.type.upper())} {escape_tag(bot.self_id)}</m> | " log_msg = f"<m>{escape_tag(bot.type.upper())} {escape_tag(bot.self_id)}</m> | "

View File

@ -62,8 +62,8 @@ def Depends(
dependency: 依赖函数默认为参数的类型注释 dependency: 依赖函数默认为参数的类型注释
use_cache: 是否使用缓存默认为 `True` use_cache: 是否使用缓存默认为 `True`
.. code-block:: python 用法:
```python
def depend_func() -> Any: def depend_func() -> Any:
return ... return ...
@ -75,6 +75,7 @@ def Depends(
async def handler(param_name: Any = Depends(depend_func), gen: Any = Depends(depend_gen_func)): async def handler(param_name: Any = Depends(depend_func), gen: Any = Depends(depend_gen_func)):
... ...
```
""" """
return DependsInner(dependency, use_cache=use_cache) return DependsInner(dependency, use_cache=use_cache)

View File

@ -37,14 +37,13 @@ class Permission:
""" """
`Matcher` 规则类当事件传递时 `Matcher` 运行前进行检查 `Matcher` 规则类当事件传递时 `Matcher` 运行前进行检查
:示例: 用法:
```python
.. code-block:: python
Permission(async_function) | sync_function Permission(async_function) | sync_function
# 等价于 # 等价于
from nonebot.utils import run_sync from nonebot.utils import run_sync
Permission(async_function, run_sync(sync_function)) Permission(async_function, run_sync(sync_function))
```
""" """
__slots__ = ("checkers",) __slots__ = ("checkers",)

View File

@ -5,10 +5,8 @@ class Export(dict):
""" """
插件导出内容以使得其他插件可以获得 插件导出内容以使得其他插件可以获得
:示例: 用法:
```python
.. code-block:: python
nonebot.export().default = "bar" nonebot.export().default = "bar"
@nonebot.export() @nonebot.export()
@ -23,6 +21,7 @@ class Export(dict):
@nonebot.export().sub @nonebot.export().sub
def something_else(): def something_else():
pass pass
```
""" """
def __call__(self, func, **kwargs): def __call__(self, func, **kwargs):

View File

@ -65,14 +65,13 @@ class Rule:
""" """
`Matcher` 规则类当事件传递时 `Matcher` 运行前进行检查 `Matcher` 规则类当事件传递时 `Matcher` 运行前进行检查
:示例: 用法:
```python
.. code-block:: python
Rule(async_function) & sync_function Rule(async_function) & sync_function
# 等价于 # 等价于
from nonebot.utils import run_sync from nonebot.utils import run_sync
Rule(async_function, run_sync(sync_function)) Rule(async_function, run_sync(sync_function))
```
""" """
__slots__ = ("checkers",) __slots__ = ("checkers",)
@ -294,8 +293,7 @@ def command(*cmds: Union[str, Tuple[str, ...]]) -> Rule:
参数: 参数:
*cmds: 命令内容 *cmds: 命令内容
:示例: 用法:
使用默认 `command_start`, `command_sep` 配置 使用默认 `command_start`, `command_sep` 配置
命令 `("test",)` 可以匹配`/test` 开头的消息 命令 `("test",)` 可以匹配`/test` 开头的消息
@ -394,18 +392,17 @@ def shell_command(
*cmds: 命令内容 *cmds: 命令内容
parser: `nonebot.rule.ArgumentParser` 对象 parser: `nonebot.rule.ArgumentParser` 对象
:示例: 用法:
使用默认 `command_start`, `command_sep` 配置更多示例参考 `argparse` 标准库文档
使用默认 `command_start`, `command_sep` 配置更多示例参考 `argparse` 标准库文档
.. code-block:: python
```python
from nonebot.rule import ArgumentParser from nonebot.rule import ArgumentParser
parser = ArgumentParser() parser = ArgumentParser()
parser.add_argument("-a", action="store_true") parser.add_argument("-a", action="store_true")
rule = shell_command("ls", parser=parser) rule = shell_command("ls", parser=parser)
```
\:\:\:tip 提示 \:\:\:tip 提示
命令内容与后续消息间无需空格 命令内容与后续消息间无需空格