discord.py的高层次、函数式编程包装器
项目描述
Beymax API
discord.py的高层次、以功能为中心的包装器
关于
这个包最初是一个个人discord机器人,但随着其范围的扩大,我发现自己需要在GitHub用户Rapptz的奇妙discord.py之上添加自己的工具。Beymax旨在减少创建功能Discord机器人的样板代码量,同时向熟悉编写事件驱动代码的人暴露API。
与discord.py的差异
- 基本上,所有内容都以事件监听器的方式运行。这包括任务、命令和上下文菜单
- 事件现在有3个阶段:对于名为
event
的事件,首先运行订阅了before:event
的订阅者,然后是event
,最后是after:event
。 - 事件可以被取消:任何事件的监听器都可以调用
event.cancel()
,这将阻止后续阶段中的任何监听器被调用。但它会中断已经调用过的监听器,例如当前阶段的其他监听器
- 事件现在有3个阶段:对于名为
- 客户端差异
- 可以使用
Client.dispatch_future()
将事件安排在未来。这将在数据库中添加一条记录,因此计划的事件将在重启后持久化。.dispatch_future()
保证在计划时间至少30秒内的精度。 - 键值存储:减少存储/检索任意小数据点的样板代码。
Client.set_value()
和Client.get_value()
可用于在数据库中存储和检索小字符串。 - 数据库迁移:
Client.migration()
允许在代码中添加模式迁移。只有在新迁移添加后,机器人第一次启动时才会调用迁移。 - 特殊消息处理器:在
Client.wait_for()
之上提供一个小便利层,Client.add_special()
允许在任何收到满足用户定义标准的消息时调用协程。 - 原生数据库集成:Beymax原生支持SQLAlchemy,以便与机器人中的数据库进行交互。
- 可以使用
- Cogs -> Suites:discord.py的
cog
的概念本质上与Beymax的suite
相同。Suites将一组逻辑相关的命令、上下文菜单、事件监听器、数据库表等组合在一起。Suites可以定义自己的依赖关系,确保如果某个Suites被您的机器人加载,则也会加载其所有依赖项。 - UI差异:discord.py的ui库遵循命令式风格,其中UI元素通过子类化预先定义。Beymax重写了此接口,以提供一个以功能为导向的风格,其中UI元素在运行时使用函数装饰器动态定义。
- 参数解析和命令定义:Beymax主要遵循discord.py通过函数注释定义命令/上下文参数的风格。Beymax通过允许在注释中设置所有参数元数据来扩展此功能,包括参数描述。
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
beymax-1.2.0.tar.gz (38.1 kB 查看散列)
构建分布
beymax-1.2.0-py3-none-any.whl (41.0 kB 查看散列)
关闭
beymax-1.2.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7e2a4b86947747027fd427bfdeb84bd70d6bbfc35e98e9de26dd6caefbb91ecc |
|
MD5 | 26242d414e6c56dd98799db9ac7d64ff |
|
BLAKE2b-256 | 65df9e715c0e9cb05c55088774a1b03c905b51fa6a69debee323ac9fe3c3d802 |
关闭
beymax-1.2.0-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | f9181d05b8b0385fdff73a804fcefd2d71b9e78bf4b3a6267f7c8f72eadaa3cc |
|
MD5 | 1f231028f3e36562ee66385ea9707699 |
|
BLAKE2b-256 | 7f798a7e6d51b210de225275175a09367e37d99121121f8b8d04447f397e10ae |