跳转到主要内容

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(),这将阻止后续阶段中的任何监听器被调用。但它会中断已经调用过的监听器,例如当前阶段的其他监听器
  • 客户端差异
    • 可以使用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 查看散列)

上传时间 Python 3

由以下赞助

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面